23 lines
679 B
TypeScript
23 lines
679 B
TypeScript
import { create } from 'zustand';
|
|
import { persist, createJSONStorage } from 'zustand/middleware';
|
|
|
|
interface UIState {
|
|
isSidebarCollapsed: boolean;
|
|
toggleSidebar: () => void;
|
|
setSidebarCollapsed: (value: boolean) => void;
|
|
}
|
|
|
|
export const useUIStore = create<UIState>()(
|
|
persist(
|
|
(set) => ({
|
|
isSidebarCollapsed: false,
|
|
toggleSidebar: () => set((state) => ({ isSidebarCollapsed: !state.isSidebarCollapsed })),
|
|
setSidebarCollapsed: (value: boolean) => set({ isSidebarCollapsed: value }),
|
|
}),
|
|
{
|
|
name: 'ui-storage',
|
|
storage: createJSONStorage(() => localStorage),
|
|
}
|
|
)
|
|
);
|