summaryrefslogtreecommitdiff
path: root/web/src/reducers/preferences.js
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2023-05-03 00:30:33 +0000
committerGerrit Code Review <review@openstack.org>2023-05-03 00:30:33 +0000
commit51194abf561de04972996199d825613a94cd3b2f (patch)
treead759bc813af0bb716135251da1e54135748c276 /web/src/reducers/preferences.js
parentbbdbe81790f4926e5e00085309589a2c52e5230b (diff)
parent59cd5de78baa31150958e6d0d6733407c0e95805 (diff)
downloadzuul-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.js23
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 }
}