diff --git a/src/js/ConfigStorage.js b/src/js/ConfigStorage.js index 21b3f73b27..8cda5bd121 100644 --- a/src/js/ConfigStorage.js +++ b/src/js/ConfigStorage.js @@ -3,7 +3,7 @@ * @param {string | string[]} key string or array of strings * @returns {object} */ -export function get(key) { +export function get(key, defaultValue = null) { let result = {}; if (Array.isArray(key)) { key.forEach(function (element) { @@ -24,6 +24,12 @@ export function get(key) { } } + // if default value is set and key is not found in localStorage, set default value + if (!Object.keys(result).length && defaultValue !== null) { + console.log('setting default value for', key, defaultValue); + result[key] = defaultValue; + } + return result; } diff --git a/src/js/main.js b/src/js/main.js index e5df0c5c9b..dbfa56865d 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -66,7 +66,7 @@ function readConfiguratorVersionMetadata() { } function cleanupLocalStorage() { - + // storage quota is 5MB, we need to clean up some stuff (more info see PR #2937) const cleanupLocalStorageList = [ 'cache', 'firmware', @@ -74,6 +74,7 @@ function cleanupLocalStorage() { 'selected_board', 'unifiedConfigLast', 'unifiedSourceCache', + 'erase_chip', ]; for (const key in localStorage) { diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 3ff24b7318..73d7adfb98 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -574,12 +574,8 @@ firmware_flasher.initialize = function (callback) { self.isFlashing = false; } - let result = getConfig('erase_chip'); - if (result.erase_chip) { - $('input.erase_chip').prop('checked', true); - } else { - $('input.erase_chip').prop('checked', false); - } + let result = getConfig('erase_chip', true); + $('input.erase_chip').prop('checked', result.erase_chip); $('input.erase_chip').change(function () { setConfig({'erase_chip': $(this).is(':checked')});