diff options
Diffstat (limited to 'apps/web/src/stores')
| -rw-r--r-- | apps/web/src/stores/project-store.ts | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/apps/web/src/stores/project-store.ts b/apps/web/src/stores/project-store.ts index 7bb38039..82f449de 100644 --- a/apps/web/src/stores/project-store.ts +++ b/apps/web/src/stores/project-store.ts @@ -11,6 +11,7 @@ interface ProjectStore { savedProjects: TProject[]; isLoading: boolean; isInitialized: boolean; + invalidProjectIds?: Set<string>; // Actions createNewProject: (name: string) => Promise<string>; @@ -32,6 +33,11 @@ interface ProjectStore { searchQuery: string, sortOption: string ) => TProject[]; + + // Global invalid project ID tracking + isInvalidProjectId: (id: string) => boolean; + markProjectIdAsInvalid: (id: string) => void; + clearInvalidProjectIds: () => void; } export const useProjectStore = create<ProjectStore>((set, get) => ({ @@ -39,6 +45,7 @@ export const useProjectStore = create<ProjectStore>((set, get) => ({ savedProjects: [], isLoading: true, isInitialized: false, + invalidProjectIds: new Set<string>(), createNewProject: async (name: string) => { const newProject: TProject = { @@ -52,14 +59,25 @@ export const useProjectStore = create<ProjectStore>((set, get) => ({ blurIntensity: 8, }; + // DEBUG: Log project creation + console.log("🆕 Creating new project:", { + id: newProject.id, + name: newProject.name, + timestamp: new Date().toISOString() + }); + set({ activeProject: newProject }); + console.log("📝 Set activeProject to new project"); try { await storageService.saveProject(newProject); + console.log("💾 Project saved to storage"); // Reload all projects to update the list await get().loadAllProjects(); + console.log("🔄 All projects reloaded"); return newProject.id; } catch (error) { + console.error("❌ Failed to save new project:", error); toast.error("Failed to save new project"); throw error; } @@ -357,4 +375,20 @@ export const useProjectStore = create<ProjectStore>((set, get) => ({ return sortedProjects; }, + + // Global invalid project ID tracking implementation + isInvalidProjectId: (id: string) => { + const invalidIds = get().invalidProjectIds || new Set(); + return invalidIds.has(id); + }, + + markProjectIdAsInvalid: (id: string) => { + set((state) => ({ + invalidProjectIds: new Set([...(state.invalidProjectIds || new Set()), id]) + })); + }, + + clearInvalidProjectIds: () => { + set({ invalidProjectIds: new Set() }); + }, })); |
