'use client' import { create } from 'zustand' import { persist } from 'zustand/middleware' export type ViewId = | 'dashboard' | 'crm' | 'leads' | 'estimates' | 'projects' | 'support' | 'licenses' | 'contracts' | 'expenses' | 'finance' | 'accounting' | 'audit' | 'api' | 'reporting' | 'settings' | 'setup' interface AosState { view: ViewId setView: (v: ViewId) => void selectedCompanyId: string | null setSelectedCompany: (id: string | null) => void selectedLeadId: string | null setSelectedLead: (id: string | null) => void sidebarOpen: boolean setSidebarOpen: (open: boolean) => void commandOpen: boolean setCommandOpen: (open: boolean) => void } export const useAos = create()( persist( (set) => ({ view: 'dashboard', setView: (view) => set({ view }), selectedCompanyId: null, setSelectedCompany: (selectedCompanyId) => set({ selectedCompanyId }), selectedLeadId: null, setSelectedLead: (selectedLeadId) => set({ selectedLeadId }), sidebarOpen: false, setSidebarOpen: (sidebarOpen) => set({ sidebarOpen }), commandOpen: false, setCommandOpen: (commandOpen) => set({ commandOpen }), }), { name: 'aos-ui', partialize: (s) => ({ view: s.view }) } ) )