mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-09 17:33:55 +00:00
8b3abe9d61
refactor: unify setCursor and useEventSelection
34 lines
670 B
TypeScript
34 lines
670 B
TypeScript
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;
|
|
};
|
|
|
|
export const useAppMode = create<AppModeStore>()((set) => ({
|
|
mode: getModeFromSession(),
|
|
setMode: (mode: AppMode) => {
|
|
persistModeToSession(mode);
|
|
|
|
return set(() => {
|
|
return { mode };
|
|
});
|
|
},
|
|
}));
|