@dfinity/gix-components
Version:
A UI kit developed by the GIX team
23 lines (22 loc) • 786 B
JavaScript
import { Menu } from "../types/menu";
import { applyMenu, initMenu } from "../utils/menu.utils";
import { derived, writable } from "svelte/store";
const initialMenu = initMenu();
export const initMenuStore = () => {
const { subscribe, set, update } = writable(initialMenu);
return {
subscribe,
toggle: () => {
update((state) => {
const menu = state === Menu.EXPANDED ? Menu.COLLAPSED : Menu.EXPANDED;
applyMenu({ menu, preserve: true });
return menu;
});
},
resetForTesting: () => {
set(Menu.EXPANDED);
},
};
};
export const menuStore = initMenuStore();
export const menuCollapsed = derived(menuStore, ($menuStore) => $menuStore === Menu.COLLAPSED);