import { create } from "zustand"; import { persist } from "zustand/middleware"; import type { Team } from "@/types"; interface UIState { // Sidebar sidebarOpen: boolean; sidebarCollapsed: boolean; // Theme theme: "light" | "dark" | "system"; // Current context currentTeam: Team | null; // Actions toggleSidebar: () => void; setSidebarCollapsed: (collapsed: boolean) => void; setTheme: (theme: "light" | "dark" | "system") => void; setCurrentTeam: (team: Team | null) => void; } export const useUIStore = create()( persist( (set) => ({ sidebarOpen: true, sidebarCollapsed: false, theme: "system", currentTeam: null, toggleSidebar: () => set((state) => ({ sidebarOpen: !state.sidebarOpen })), setSidebarCollapsed: (collapsed) => set({ sidebarCollapsed: collapsed }), setTheme: (theme) => set({ theme }), setCurrentTeam: (team) => set({ currentTeam: team }), }), { name: "roboco-ui-storage", partialize: (state) => ({ sidebarCollapsed: state.sidebarCollapsed, theme: state.theme, currentTeam: state.currentTeam, }), } ) );