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, }); };