Files
xiaoxia-saas/apps/web/src/store/uiStore.ts
T

33 lines
682 B
TypeScript

/**
* UI 状态管理
* 管理全局 UI 状态(侧边栏、加载状态等)
*/
import { create } from 'zustand';
interface UIState {
sidebarCollapsed: boolean;
loading: boolean;
// Actions
toggleSidebar: () => void;
setSidebarCollapsed: (collapsed: boolean) => void;
setLoading: (loading: boolean) => void;
}
export const useUIStore = create<UIState>((set) => ({
sidebarCollapsed: false,
loading: false,
toggleSidebar: () => {
set((state) => ({ sidebarCollapsed: !state.sidebarCollapsed }));
},
setSidebarCollapsed: (collapsed) => {
set({ sidebarCollapsed: collapsed });
},
setLoading: (loading) => {
set({ loading });
},
}));