diff options
Diffstat (limited to 'src/state/models/shell-ui.ts')
-rw-r--r-- | src/state/models/shell-ui.ts | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/state/models/shell-ui.ts b/src/state/models/shell-ui.ts index 6b3134ff2..52d081680 100644 --- a/src/state/models/shell-ui.ts +++ b/src/state/models/shell-ui.ts @@ -1,5 +1,6 @@ import {makeAutoObservable} from 'mobx' import {ProfileViewModel} from './profile-view' +import {isObj, hasProp} from '../lib/type-guards' export class ConfirmModal { name = 'confirm' @@ -135,6 +136,7 @@ export interface ComposerOpts { } export class ShellUiModel { + darkMode = false minimalShellMode = false isMainMenuOpen = false isModalActive = false @@ -156,7 +158,25 @@ export class ShellUiModel { composerOpts: ComposerOpts | undefined constructor() { - makeAutoObservable(this) + makeAutoObservable(this, {serialize: false, hydrate: false}) + } + + serialize(): unknown { + return { + darkMode: this.darkMode, + } + } + + hydrate(v: unknown) { + if (isObj(v)) { + if (hasProp(v, 'darkMode') && typeof v.darkMode === 'boolean') { + this.darkMode = v.darkMode + } + } + } + + setDarkMode(v: boolean) { + this.darkMode = v } setMinimalShellMode(v: boolean) { |