Skip to content

Commit

Permalink
feat(settings): Settings store can be reset, merge more consistent
Browse files Browse the repository at this point in the history
The merge mutation will reset the settings before adding in the new ones
  • Loading branch information
Hanziness committed Dec 30, 2020
1 parent dc1aae9 commit 73de8c8
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions store/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -144,17 +144,20 @@ export const mutations = {
}
},

mergeSettings (state, newSettings) {
mergeSettings (currentState, newSettings) {
// reset settings before merging new ones
Object.assign(currentState, state())

for (const key in newSettings) {
if (Object.hasOwnProperty.call(newSettings, key)) {
if (typeof newSettings[key] === 'object') {
// perform merge
state[key] = {
...state[key],
currentState[key] = {
...currentState[key],
...newSettings[key]
}
} else {
state[key] = newSettings[key]
currentState[key] = newSettings[key]
}
}
}
Expand Down Expand Up @@ -204,5 +207,13 @@ export const actions = {
commit('timer/changeTickDelta', { newTickDelta: chosenPreset.tickRate.normal, immediate: true }, { root: true })
commit('changeClockStyle', chosenPreset.clockStyle)
commit('applyPreset', chosenPreset.timerPreset)
},

resetSettings (store) {
const defaults = state()
defaults.lang = store.state.lang // keep language preference

// defaults.lang = store.state.lang
store.commit('mergeSettings', defaults)
}
}

0 comments on commit 73de8c8

Please sign in to comment.