feat: projects create, update, delete

This commit is contained in:
2025-08-13 15:03:09 +04:00
parent f2bba7e469
commit 90582b329e
27 changed files with 2310 additions and 1219 deletions

View File

@ -7,8 +7,9 @@ import React, {
useEffect,
useState,
} from "react";
import { ProjectSchema } from "@/lib/client";
import useProjectsList from "@/hooks/useProjectsList";
import { useProjectsOperations } from "@/hooks/useProjectsOperations";
import { ProjectSchema, UpdateProjectSchema } from "@/lib/client";
type ProjectsContextState = {
selectedProject: ProjectSchema | null;
@ -16,6 +17,11 @@ type ProjectsContextState = {
React.SetStateAction<ProjectSchema | null>
>;
projects: ProjectSchema[];
onCreateProject: (name: string) => void;
onUpdateProject: (projectId: number, project: UpdateProjectSchema) => void;
onDeleteProject: (project: ProjectSchema) => void;
isEditorDrawerOpened: boolean;
setIsEditorDrawerOpened: React.Dispatch<React.SetStateAction<boolean>>;
};
const ProjectsContext = createContext<ProjectsContextState | undefined>(
@ -23,7 +29,13 @@ const ProjectsContext = createContext<ProjectsContextState | undefined>(
);
const useProjectsContextState = () => {
const { projects } = useProjectsList();
const [isEditorDrawerOpened, setIsEditorDrawerOpened] =
useState<boolean>(false);
const {
projects,
setProjects,
refetch: refetchProjects,
} = useProjectsList();
const [selectedProject, setSelectedProject] =
useState<ProjectSchema | null>(null);
@ -43,10 +55,22 @@ const useProjectsContextState = () => {
setSelectedProject(null);
}, [projects]);
const { onCreateProject, onUpdateProject, onDeleteProject } =
useProjectsOperations({
projects,
setProjects,
refetchProjects,
});
return {
projects,
selectedProject,
setSelectedProject,
onCreateProject,
onUpdateProject,
onDeleteProject,
isEditorDrawerOpened,
setIsEditorDrawerOpened,
};
};