33 lines
682 B
TypeScript
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 });
|
|
},
|
|
}));
|