2026-03-06 20:14:50 +07:00
|
|
|
import { create } from 'zustand';
|
|
|
|
|
|
|
|
|
|
interface CurrentProject {
|
|
|
|
|
id: string;
|
|
|
|
|
slug: string;
|
|
|
|
|
ownerUsername: string;
|
|
|
|
|
isPublic: boolean;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
interface ProjectState {
|
|
|
|
|
currentProject: CurrentProject | null;
|
|
|
|
|
setCurrentProject: (project: CurrentProject) => void;
|
|
|
|
|
clearCurrentProject: () => void;
|
2026-03-31 05:00:33 +07:00
|
|
|
setVisibility: (isPublic: boolean) => void;
|
2026-03-06 20:14:50 +07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const useProjectStore = create<ProjectState>((set) => ({
|
|
|
|
|
currentProject: null,
|
|
|
|
|
setCurrentProject: (project) => set({ currentProject: project }),
|
|
|
|
|
clearCurrentProject: () => set({ currentProject: null }),
|
2026-03-31 05:00:33 +07:00
|
|
|
setVisibility: (isPublic) =>
|
2026-04-22 02:45:45 +07:00
|
|
|
set((s) => (s.currentProject ? { currentProject: { ...s.currentProject, isPublic } } : s)),
|
2026-03-06 20:14:50 +07:00
|
|
|
}));
|