- Move `isSidebarOpen` state from local component (`useState`) to global Zustand store (`ui-store.ts`). - Fix an issue where the sidebar would incorrectly reset to its default closed state when navigating between routes (e.g., to the Telemetry page) due to component remounting. - Ensure consistent sidebar toggle behavior across the entire dashboard application.
19 lines
482 B
TypeScript
19 lines
482 B
TypeScript
import { create } from "zustand";
|
|
|
|
type UiState = {
|
|
dashboardCompact: boolean;
|
|
toggleDashboardCompact: () => void;
|
|
|
|
isSidebarOpen: boolean;
|
|
setIsSidebarOpen: (isOpen: boolean) => void;
|
|
};
|
|
|
|
export const useUiStore = create<UiState>((set) => ({
|
|
dashboardCompact: false,
|
|
toggleDashboardCompact: () =>
|
|
set((state) => ({ dashboardCompact: !state.dashboardCompact })),
|
|
|
|
isSidebarOpen: false,
|
|
setIsSidebarOpen: (isOpen: boolean) => set({ isSidebarOpen: isOpen }),
|
|
}));
|