From 31fc4ac0c67b87287538c0ce233601909571a149 Mon Sep 17 00:00:00 2001 From: Lawrence Hook Date: Wed, 24 Aug 2022 17:11:50 -0400 Subject: [PATCH] Fix bug in header settings --- src/js/background.js | 10 +++++++--- src/js/options.js | 10 +++++----- src/manifest.json | 2 +- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/js/background.js b/src/js/background.js index d41882f..4c5d0fe 100644 --- a/src/js/background.js +++ b/src/js/background.js @@ -207,7 +207,7 @@ const FIELDSETS = [ } ]; -const HEADER_SETTINGS = { +const DEFAULT_HEADER_SETTINGS = { global_enable: true, dark_mode: false }; @@ -215,7 +215,7 @@ const HEADER_SETTINGS = { const DEFAULT_SETTINGS = FIELDSETS.reduce((acc, fieldset) => { fieldset.options.forEach(option => acc[option.id] = option.defaultValue); return acc; -}, { ...HEADER_SETTINGS }); +}, { ...DEFAULT_HEADER_SETTINGS }); // Respond to requests browser.runtime.onMessage.addListener((data, sender) => { @@ -237,8 +237,12 @@ browser.runtime.onMessage.addListener((data, sender) => { const { frameId, tab } = sender; browser.storage.local.get(localSettings => { const settings = { ...DEFAULT_SETTINGS, ...localSettings }; + const headerSettings = Object.entries(DEFAULT_HEADER_SETTINGS).reduce((acc, [id, value]) => { + acc[id] = id in localSettings ? localSettings[id] : value; + return acc; + }, {}); if (tab) browser.tabs.sendMessage(tab.id, { FIELDSETS, settings }, { frameId }); - if (!tab) browser.runtime.sendMessage({ FIELDSETS, HEADER_SETTINGS, settings }); + if (!tab) browser.runtime.sendMessage({ FIELDSETS, headerSettings, settings }); }); } diff --git a/src/js/options.js b/src/js/options.js index 6bacdb7..a5ab2a3 100644 --- a/src/js/options.js +++ b/src/js/options.js @@ -18,11 +18,11 @@ document.addEventListener("DOMContentLoaded", () => { // Receive messages browser.runtime.onMessage.addListener((data, sender) => { try { - const { FIELDSETS, HEADER_SETTINGS, settings } = data; + const { FIELDSETS, headerSettings, settings } = data; // Initial page load. if (FIELDSETS) { - populateOptions(FIELDSETS, HEADER_SETTINGS, settings); + populateOptions(FIELDSETS, headerSettings, settings); HTML.setAttribute('loaded', true); } @@ -34,7 +34,7 @@ browser.runtime.onMessage.addListener((data, sender) => { }); -function populateOptions(FIELDSETS, HEADER_SETTINGS, SETTING_VALUES) { +function populateOptions(FIELDSETS, headerSettings, SETTING_VALUES) { // Clear the options list OPTIONS_LIST.innerHTML = ''; @@ -83,8 +83,8 @@ function populateOptions(FIELDSETS, HEADER_SETTINGS, SETTING_VALUES) { OPTIONS_LIST.append(fieldset); }); - if (HEADER_SETTINGS) { - Object.entries(HEADER_SETTINGS).forEach(([ id, value ]) => { + if (headerSettings) { + Object.entries(headerSettings).forEach(([ id, value ]) => { updateSetting(id, value); const svg = document.querySelector(`div#${id} svg`); diff --git a/src/manifest.json b/src/manifest.json index 4099c63..8d28aad 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -3,7 +3,7 @@ "description": "Spend less time on YouTube. Customize YouTube's user interface to be less engaging.", "homepage_url": "https://github.com/lawrencehook/remove-youtube-suggestions", "manifest_version": 2, - "version": "4.3.1", + "version": "4.3.2", "icons": { "16": "images/16.png",