feat: project editor

This commit is contained in:
2025-08-30 15:31:42 +04:00
parent 1b97739063
commit b363554c46
12 changed files with 237 additions and 53 deletions

View File

@ -1,19 +1,43 @@
"use client";
import { IconEdit, IconPlus } from "@tabler/icons-react";
import { Flex, Group } from "@mantine/core";
import CreateProjectButton from "@/app/deals/components/desktop/CreateProjectButton/CreateProjectButton";
import { modals } from "@mantine/modals";
import ProjectAction from "@/app/deals/components/desktop/ProjectAction/ProjectAction";
import ViewSelector from "@/app/deals/components/desktop/ViewSelector/ViewSelector";
import { useProjectsContext } from "@/app/deals/contexts/ProjectsContext";
import ProjectSelect from "@/components/selects/ProjectSelect/ProjectSelect";
import { useDrawersContext } from "@/drawers/DrawersContext";
import useIsMobile from "@/hooks/utils/useIsMobile";
const TopToolPanel = () => {
const { projects, setSelectedProjectId, selectedProject } =
const { projects, setSelectedProjectId, selectedProject, projectsCrud } =
useProjectsContext();
const { openDrawer } = useDrawersContext();
const isMobile = useIsMobile();
if (isMobile) return;
const onCreateClick = () => {
modals.openContextModal({
modal: "enterNameModal",
title: "Создание проекта",
withCloseButton: true,
innerProps: {
onComplete: projectsCrud.onCreate,
},
});
};
const onEditClick = () => {
if (!selectedProject) return;
openDrawer({
key: "selectedProjectEditorDrawer",
props: { project: selectedProject, projectsCrud },
});
};
return (
<Group justify={"space-between"}>
<ViewSelector />
@ -21,7 +45,12 @@ const TopToolPanel = () => {
wrap={"nowrap"}
align={"center"}
gap={"sm"}>
<CreateProjectButton />
<ProjectAction onClick={onEditClick}>
<IconEdit />
</ProjectAction>
<ProjectAction onClick={onCreateClick}>
<IconPlus />
</ProjectAction>
<ProjectSelect
data={projects}
value={selectedProject}