diff --git a/src/app/deals/components/desktop/CreateProjectButton/CreateProjectButton.module.css b/src/app/deals/components/desktop/CreateProjectButton/CreateProjectButton.module.css
new file mode 100644
index 0000000..54ea813
--- /dev/null
+++ b/src/app/deals/components/desktop/CreateProjectButton/CreateProjectButton.module.css
@@ -0,0 +1,6 @@
+.container {
+ width: min-content;
+ cursor: pointer;
+ padding: 6px;
+ height: 100%;
+}
diff --git a/src/app/deals/components/desktop/CreateProjectButton/CreateProjectButton.tsx b/src/app/deals/components/desktop/CreateProjectButton/CreateProjectButton.tsx
new file mode 100644
index 0000000..8a18d4b
--- /dev/null
+++ b/src/app/deals/components/desktop/CreateProjectButton/CreateProjectButton.tsx
@@ -0,0 +1,36 @@
+import { IconPlus } from "@tabler/icons-react";
+import { ActionIcon, Box } from "@mantine/core";
+import { modals } from "@mantine/modals";
+import { useProjectsContext } from "@/app/deals/contexts/ProjectsContext";
+import style from "./CreateProjectButton.module.css";
+
+const CreateProjectButton = () => {
+ const { projectsCrud } = useProjectsContext();
+
+ const onCreateClick = () => {
+ modals.openContextModal({
+ modal: "enterNameModal",
+ title: "Создание проекта",
+ withCloseButton: true,
+ innerProps: {
+ onComplete: (name: string) => {
+ projectsCrud.onCreate(name);
+ },
+ },
+ });
+ };
+
+ return (
+
+
+
+
+
+ );
+};
+
+export default CreateProjectButton;
diff --git a/src/app/deals/components/desktop/TopToolPanel/TopToolPanel.tsx b/src/app/deals/components/desktop/TopToolPanel/TopToolPanel.tsx
index b987c9d..d2f2707 100644
--- a/src/app/deals/components/desktop/TopToolPanel/TopToolPanel.tsx
+++ b/src/app/deals/components/desktop/TopToolPanel/TopToolPanel.tsx
@@ -1,6 +1,7 @@
"use client";
-import { Group } from "@mantine/core";
+import { Flex, Group } from "@mantine/core";
+import CreateProjectButton from "@/app/deals/components/desktop/CreateProjectButton/CreateProjectButton";
import ViewSelector from "@/app/deals/components/desktop/ViewSelector/ViewSelector";
import { useProjectsContext } from "@/app/deals/contexts/ProjectsContext";
import ProjectSelect from "@/components/selects/ProjectSelect/ProjectSelect";
@@ -16,12 +17,18 @@ const TopToolPanel = () => {
return (
- value && setSelectedProjectId(value.id)}
- style={{ width: 250 }}
- />
+
+
+ value && setSelectedProjectId(value.id)}
+ style={{ width: 250 }}
+ />
+
);
};
diff --git a/src/hooks/cruds/baseCrud/useCrudOperations.tsx b/src/hooks/cruds/baseCrud/useCrudOperations.tsx
index ea2b722..bc8049f 100644
--- a/src/hooks/cruds/baseCrud/useCrudOperations.tsx
+++ b/src/hooks/cruds/baseCrud/useCrudOperations.tsx
@@ -81,9 +81,8 @@ const useCrudOperations = <
const onSettled = () => {
queryClient.invalidateQueries({
- predicate: (query: { queryKey: any }) => {
- return query.queryKey[0]?._id === key;
- },
+ predicate: (query: { queryKey: any }) =>
+ query.queryKey[0]?._id === key,
});
};