import { create } from 'zustand'; import { persist } from 'zustand/middleware'; interface UiState { sidebarOpen: boolean; darkMode: boolean; toggleSidebar: () => void; setSidebarOpen: (open: boolean) => void; toggleDarkMode: () => void; } export const useUiStore = create()( persist( (set, get) => ({ sidebarOpen: true, darkMode: false, toggleSidebar: () => set((s) => ({ sidebarOpen: !s.sidebarOpen })), setSidebarOpen: (open) => set({ sidebarOpen: open }), toggleDarkMode: () => { const next = !get().darkMode; set({ darkMode: next }); document.documentElement.classList.toggle('dark', next); }, }), { name: 'clinicpro-ui', onRehydrateStorage: () => (state) => { if (state?.darkMode) { document.documentElement.classList.add('dark'); } }, }, ), );