type ClosableMenu = 'settings'
type SolidStoreState = {
user?: User
needsLogin: boolean
openMenus: Record<ClosableMenu, boolean> & { menuCount: number }
onLoad?: number
}
export const [solidStore, setSolidStore] = createStore<SolidStoreState>({
needsLogin: true,
openMenus: {
menuCount: 0,
settings: false
}
})
export const openMenu = (menu: ClosableMenu) => {
setSolidStore('openMenus', (openMenus) => ({
...openMenus,
menuCount: openMenus.menuCount + 1,
[menu]: true
}))
}
export const closeMenu = (menu: ClosableMenu) => {
setSolidStore('openMenus', (openMenus) => ({
...openMenus,
menuCount: openMenus.menuCount - 1,
[menu]: false
}))
}
export const toggleMenu = (menu: ClosableMenu) => (solidStore.openMenus[menu] ? closeMenu(menu) : openMenu(menu))
type ClosableMenu = 'settings'
type SolidStoreState = {
user?: User
needsLogin: boolean
openMenus: Record<ClosableMenu, boolean> & { menuCount: number }
onLoad?: number
}
export const [solidStore, setSolidStore] = createStore<SolidStoreState>({
needsLogin: true,
openMenus: {
menuCount: 0,
settings: false
}
})
export const openMenu = (menu: ClosableMenu) => {
setSolidStore('openMenus', (openMenus) => ({
...openMenus,
menuCount: openMenus.menuCount + 1,
[menu]: true
}))
}
export const closeMenu = (menu: ClosableMenu) => {
setSolidStore('openMenus', (openMenus) => ({
...openMenus,
menuCount: openMenus.menuCount - 1,
[menu]: false
}))
}
export const toggleMenu = (menu: ClosableMenu) => (solidStore.openMenus[menu] ? closeMenu(menu) : openMenu(menu))