diff options
author | Zuul <zuul@review.opendev.org> | 2023-05-03 00:30:33 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2023-05-03 00:30:33 +0000 |
commit | 51194abf561de04972996199d825613a94cd3b2f (patch) | |
tree | ad759bc813af0bb716135251da1e54135748c276 /web/src/reducers/preferences.js | |
parent | bbdbe81790f4926e5e00085309589a2c52e5230b (diff) | |
parent | 59cd5de78baa31150958e6d0d6733407c0e95805 (diff) | |
download | zuul-51194abf561de04972996199d825613a94cd3b2f.tar.gz |
Merge "web: add dark mode and theme selection"
Diffstat (limited to 'web/src/reducers/preferences.js')
-rw-r--r-- | web/src/reducers/preferences.js | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/web/src/reducers/preferences.js b/web/src/reducers/preferences.js index 1fba8eacf..0a2755257 100644 --- a/web/src/reducers/preferences.js +++ b/web/src/reducers/preferences.js @@ -15,13 +15,14 @@ import { PREFERENCE_SET, } from '../actions/preferences' - +import { resolveDarkMode, setDarkMode } from '../Misc' const stored_prefs = localStorage.getItem('preferences') let default_prefs if (stored_prefs === null) { default_prefs = { - autoReload: true + autoReload: true, + theme: 'Auto' } } else { default_prefs = JSON.parse(stored_prefs) @@ -30,13 +31,15 @@ if (stored_prefs === null) { export default (state = { ...default_prefs }, action) => { - let newstate - switch (action.type) { - case PREFERENCE_SET: - newstate = { ...state, [action.key]: action.value } - localStorage.setItem('preferences', JSON.stringify(newstate)) - return newstate - default: - return state + if (action.type === PREFERENCE_SET) { + let newstate = { ...state, [action.key]: action.value } + delete newstate.darkMode + localStorage.setItem('preferences', JSON.stringify(newstate)) + let darkMode = resolveDarkMode(newstate.theme) + setDarkMode(darkMode) + return { ...newstate, darkMode: darkMode } } + let darkMode = resolveDarkMode(state.theme) + setDarkMode(darkMode) + return { ...state, darkMode: darkMode } } |