28 lines
No EOL
792 B
TypeScript
28 lines
No EOL
792 B
TypeScript
|
|
import { create } from 'zustand';
|
|
import { persist, createJSONStorage } from 'zustand/middleware';
|
|
import { Menu } from '../const/types/types';
|
|
import { menusData } from '../const/menus/othersMenus/data';
|
|
|
|
interface MenuState {
|
|
menus: Menu[];
|
|
toggleMenu: (menuId: string) => void;
|
|
}
|
|
|
|
export const useMenuStore = create<MenuState>()(
|
|
persist(
|
|
(set) => ({
|
|
menus: menusData,
|
|
toggleMenu: (menuId) =>
|
|
set((state) => ({
|
|
menus: state.menus.map((menu) =>
|
|
menu.id === menuId ? { ...menu, isOpen: !menu.isOpen } : menu
|
|
),
|
|
})),
|
|
}),
|
|
{
|
|
name: 'menus-storage',
|
|
storage: createJSONStorage(() => localStorage)
|
|
}
|
|
)
|
|
); |