From 411d9ea456a0a8e8588ce6bcc4de6bc2e97676cd Mon Sep 17 00:00:00 2001 From: MaysWind Date: Sat, 6 Feb 2021 21:33:25 +0800 Subject: [PATCH] fix cannot get default sub option value when sub option does not exist in local storage --- src/lib/settings.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/lib/settings.js b/src/lib/settings.js index 63a26616..2736ef89 100644 --- a/src/lib/settings.js +++ b/src/lib/settings.js @@ -38,7 +38,19 @@ function getOriginalSettings() { } function getFinalSettings() { - return Object.assign({}, defaultSettings, getOriginalSettings()); + const originalSettings = getOriginalSettings(); + + for (let key in originalSettings) { + if (!Object.prototype.hasOwnProperty.call(originalSettings, key)) { + continue; + } + + if (typeof(defaultSettings[key]) === 'object') { + originalSettings[key] = Object.assign({}, defaultSettings[key], originalSettings[key]); + } + } + + return Object.assign({}, defaultSettings, originalSettings); } function setSettings(settings) {