diff options
Diffstat (limited to 'subprojects/frontend/src/theme/ThemeStore.ts')
-rw-r--r-- | subprojects/frontend/src/theme/ThemeStore.ts | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/subprojects/frontend/src/theme/ThemeStore.ts b/subprojects/frontend/src/theme/ThemeStore.ts index ded1f29a..11391b06 100644 --- a/subprojects/frontend/src/theme/ThemeStore.ts +++ b/subprojects/frontend/src/theme/ThemeStore.ts | |||
@@ -1,28 +1,16 @@ | |||
1 | import { makeAutoObservable } from 'mobx'; | 1 | import { action, makeObservable, observable } from 'mobx'; |
2 | |||
3 | import EditorTheme from './EditorTheme'; | ||
4 | 2 | ||
5 | export default class ThemeStore { | 3 | export default class ThemeStore { |
6 | currentTheme: EditorTheme = EditorTheme.Default; | 4 | darkMode = true; |
7 | 5 | ||
8 | constructor() { | 6 | constructor() { |
9 | makeAutoObservable(this); | 7 | makeObservable(this, { |
8 | darkMode: observable, | ||
9 | toggleDarkMode: action, | ||
10 | }); | ||
10 | } | 11 | } |
11 | 12 | ||
12 | toggleDarkMode(): void { | 13 | toggleDarkMode(): void { |
13 | switch (this.currentTheme) { | 14 | this.darkMode = !this.darkMode; |
14 | case EditorTheme.Light: | ||
15 | this.currentTheme = EditorTheme.Dark; | ||
16 | break; | ||
17 | case EditorTheme.Dark: | ||
18 | this.currentTheme = EditorTheme.Light; | ||
19 | break; | ||
20 | default: | ||
21 | throw new Error(`Unknown theme: ${this.currentTheme}`); | ||
22 | } | ||
23 | } | ||
24 | |||
25 | get darkMode(): boolean { | ||
26 | return this.currentTheme === EditorTheme.Dark; | ||
27 | } | 15 | } |
28 | } | 16 | } |