diff options
| author | Haishan <[email protected]> | 2022-03-06 16:46:05 +0800 |
|---|---|---|
| committer | Haishan <[email protected]> | 2022-03-06 17:17:14 +0800 |
| commit | d87cc00fc83bb2bc5c1ffa69b4dad71d51e1cc66 (patch) | |
| tree | 9eae0c4359bbdced9afef25f67de799dcb50ac92 /src/store | |
| parent | 06428daa53029dca82d63cbf3364b3f74fce67d5 (diff) | |
Make theme switch a native select/option menu
Diffstat (limited to 'src/store')
| -rw-r--r-- | src/store/app.ts | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/src/store/app.ts b/src/store/app.ts index 2ccd960..e5594a3 100644 --- a/src/store/app.ts +++ b/src/store/app.ts @@ -105,24 +105,12 @@ function setTheme(theme: ThemeType = 'dark') { } } -export function switchTheme() { +export function switchTheme(nextTheme = 'auto') { return (dispatch: DispatchFn, getState: GetStateFn) => { const currentTheme = getTheme(getState()); - let nextTheme: ThemeType = 'auto'; - switch (currentTheme) { - case 'light': - nextTheme = 'dark'; - break; - case 'dark': - nextTheme = 'auto'; - break; - case 'auto': - nextTheme = 'light'; - break; - } - + if (currentTheme === nextTheme) return; // side effect - setTheme(nextTheme); + setTheme(nextTheme as ThemeType); dispatch('storeSwitchTheme', (s) => { s.app.theme = nextTheme; }); |
