summaryrefslogtreecommitdiffstats
path: root/webapp
diff options
context:
space:
mode:
authorUdo Walter2018-07-20 16:43:25 +0200
committerUdo Walter2018-07-20 16:43:25 +0200
commit8bd1e1fd8abeea47440c55b329028b75905ebb8f (patch)
tree493fdb49039db5a62dcc61700f47336b2fa5ff57 /webapp
parent[webapp] small bugfix (diff)
downloadbas-8bd1e1fd8abeea47440c55b329028b75905ebb8f.tar.gz
bas-8bd1e1fd8abeea47440c55b329028b75905ebb8f.tar.xz
bas-8bd1e1fd8abeea47440c55b329028b75905ebb8f.zip
[store/global] simplified settings loading
Diffstat (limited to 'webapp')
-rw-r--r--webapp/src/store/global.js24
1 files changed, 18 insertions, 6 deletions
diff --git a/webapp/src/store/global.js b/webapp/src/store/global.js
index 7c2cb7a..a636cd6 100644
--- a/webapp/src/store/global.js
+++ b/webapp/src/store/global.js
@@ -1,11 +1,23 @@
+function loadSetting(name, defaultValue) {
+ const value = localStorage.getItem('settings.' + name)
+ switch (typeof defaultValue) {
+ case 'boolean':
+ return value === 'true' ? true : (value === 'false' ? false : defaultValue)
+ case 'number':
+ return value === null || isNaN(value) ? defaultValue : Number(value)
+ default:
+ return value === null ? defaultValue : value
+ }
+}
+
export default {
state: {
settings: {
- locale: localStorage.getItem('locale') || 'en',
- dark: localStorage.getItem('dark') !== 'false',
- coloredTabs: localStorage.getItem('coloredTabs') === 'true',
- clipped: localStorage.getItem('clipped') !== 'false',
- mini: localStorage.getItem('mini') !== 'false',
+ locale: loadSetting('locale', 'en'),
+ dark: loadSetting('dark', true),
+ coloredTabs: loadSetting('coloredTabs', false),
+ clipped: loadSetting('clipped', true),
+ mini: loadSetting('mini', true),
},
snackbars: []
},
@@ -19,7 +31,7 @@ export default {
}
},
mutations: {
- saveSetting (state, { name, value }) { if (name in state.settings) state.settings[name] = value; localStorage.setItem(name, value) },
+ saveSetting (state, { name, value }) { if (name in state.settings) state.settings[name] = value; localStorage.setItem('settings.' + name, value) },
shiftSnackbars (state) {
state.snackbars.shift()
},