import create from 'zustand'; import { persist } from 'zustand/middleware'; import { keyBuilder } from '@/react/hooks/useLocalStorage'; interface UIState { dismissedInfoPanels: Record; dismissInfoPanel(id: string): void; dismissedInfoHash: string; dismissMotd(hash: string): void; dismissedUpdateVersion: string; dismissUpdateVersion(version: string): void; } export const useUIState = create()( persist( (set) => ({ dismissedInfoPanels: {}, dismissInfoPanel(id: string) { set((state) => ({ dismissedInfoPanels: { ...state.dismissedInfoPanels, [id]: true }, })); }, dismissedInfoHash: '', dismissMotd(hash: string) { set({ dismissedInfoHash: hash }); }, dismissedUpdateVersion: '', dismissUpdateVersion(version: string) { set({ dismissedUpdateVersion: version }); }, }), { name: keyBuilder('NEW_UI_STATE') } ) );