import { create } from 'zustand'; import { listWorkspaces, type MobileWorkspace } from '../api/workspaces'; export type WorkspaceState = { workspaces: MobileWorkspace[]; activeWorkspaceId: string | null; hydrate: () => Promise; setActiveWorkspace: (id: string | null) => void; }; export const useWorkspaceStore = create((set, get) => ({ workspaces: [], activeWorkspaceId: null, async hydrate() { const workspaces = await listWorkspaces(); const currentActiveWorkspaceId = get().activeWorkspaceId; set({ workspaces, activeWorkspaceId: currentActiveWorkspaceId === null ? null : workspaces.some((workspace) => workspace.id === currentActiveWorkspaceId) ? currentActiveWorkspaceId : workspaces[0]?.id ?? null, }); }, setActiveWorkspace(id: string | null) { set({ activeWorkspaceId: id }); }, }));