import { create } from 'zustand'; export enum AppMode { Run = 'run', Edit = 'edit', Freeze = 'freeze', } const appModeKey = 'ontime-app-mode'; function getModeFromSession() { return sessionStorage.getItem(appModeKey) === AppMode.Run ? AppMode.Run : AppMode.Edit; } function persistModeToSession(mode: AppMode) { sessionStorage.setItem(appModeKey, mode); } type AppModeStore = { mode: AppMode; setMode: (mode: AppMode) => void; cursor: string | null; setCursor: (cursor: string | null) => void; }; export const useAppMode = create()((set) => ({ mode: getModeFromSession(), cursor: null, setMode: (mode: AppMode) => { persistModeToSession(mode); return set(() => { return { mode }; }); }, setCursor: (cursor: string | null) => set(() => ({ cursor })), }));