"use client"; import { createContext, useContext, useEffect, useMemo, useState } from "react"; const STORAGE_KEY = "selectedProjectId"; type ProjectContextValue = { selectedProjectId: string | null; setSelectedProjectId: (id: string | null) => void; }; const ProjectContext = createContext(null); export function ProjectProvider({ children }: { children: React.ReactNode }) { const [selectedProjectId, setSelectedProjectId] = useState(null); useEffect(() => { const stored = window.localStorage.getItem(STORAGE_KEY); if (stored) { setSelectedProjectId(stored); } }, []); useEffect(() => { if (selectedProjectId) { window.localStorage.setItem(STORAGE_KEY, selectedProjectId); } else { window.localStorage.removeItem(STORAGE_KEY); } }, [selectedProjectId]); const value = useMemo( () => ({ selectedProjectId, setSelectedProjectId }), [selectedProjectId] ); return {children}; } export function useProject() { const context = useContext(ProjectContext); if (!context) { throw new Error("useProject must be used within a ProjectProvider."); } return context; }