import { create } from "zustand"; import { persist, createJSONStorage } from 'zustand/middleware'; export interface SidenavState { open: boolean; pinned: boolean; toggleSidenav: () => void; togglePinned: () => void; } export const useSidenavStore = create()( persist( (set) => ({ open: false, pinned: false, toggleSidenav: () => set((state) => ({ open: !state.open })), togglePinned: () => set((state) => ({ pinned: !state.pinned })), }), { name: 'sidenav-storage', // name of the item in the storage (must be unique) storage: createJSONStorage(() => localStorage), // (optional) by default, 'localStorage' is used } ) )