Добавлено восстановление дефолтных настроек в объекте settings при их отсутствии

This commit is contained in:
Book Pauk
2020-11-03 00:00:31 +07:00
parent fdf5009999
commit 8b66fd522d
3 changed files with 37 additions and 12 deletions

View File

@@ -1,3 +1,5 @@
import * as utils from '../../share/utils';
const readerActions = {
'help': 'Вызвать cправку',
'loader': 'На страницу загрузки',
@@ -256,6 +258,25 @@ const settingDefaults = {
userHotKeys: {},
};
for (const font of fonts)
settingDefaults.fontShifts[font.name] = font.fontVertShift;
for (const font of webFonts)
settingDefaults.fontShifts[font.name] = font.fontVertShift;
for (const button of toolButtons)
settingDefaults.showToolButton[button.name] = button.show;
for (const hotKey of hotKeys)
settingDefaults.userHotKeys[hotKey.name] = hotKey.codes;
function addDefaultsToSettings(settings) {
const diff = utils.getObjDiff(settings, settingDefaults);
if (!utils.isEmptyObjDiffDeep(diff, {isApplyChange: false})) {
return utils.applyObjDiff(settings, diff, {isApplyChange: false});
}
return false;
}
const libsDefaults = {
startLink: 'http://flibusta.is',
comment: 'Флибуста | Книжное братство',
@@ -279,15 +300,6 @@ const libsDefaults = {
]
};
for (const font of fonts)
settingDefaults.fontShifts[font.name] = font.fontVertShift;
for (const font of webFonts)
settingDefaults.fontShifts[font.name] = font.fontVertShift;
for (const button of toolButtons)
settingDefaults.showToolButton[button.name] = button.show;
for (const hotKey of hotKeys)
settingDefaults.userHotKeys[hotKey.name] = hotKey.codes;
// initial state
const state = {
toolBarActive: true,
@@ -341,7 +353,13 @@ const mutations = {
state.currentProfile = value;
},
setSettings(state, value) {
state.settings = Object.assign({}, state.settings, value);
const newSettings = Object.assign({}, state.settings, value);
const added = addDefaultsToSettings(newSettings);
if (added) {
state.settings = added;
} else {
state.settings = newSettings;
}
},
setSettingsRev(state, value) {
state.settingsRev = Object.assign({}, state.settingsRev, value);
@@ -361,6 +379,7 @@ export default {
fonts,
webFonts,
settingDefaults,
addDefaultsToSettings,
libsDefaults,
namespaced: true,