« get me outta code hell

"Disable everywhere for now" setting - interactive-bgm - Browser extension that adds background music based on the site you're browsing
about summary refs log tree commit diff
path: root/extension/popup/main.js
diff options
context:
space:
mode:
authorFlorrie <towerofnix@gmail.com>2019-03-22 21:20:05 -0300
committerFlorrie <towerofnix@gmail.com>2019-03-22 21:20:05 -0300
commitcbe12928f46fbea07364f46d0b15497e97ff4207 (patch)
tree26831e4c4366372a1de0381eb5fd99145eb2ecb7 /extension/popup/main.js
parentf21f158661dd66225adcd319c66f3504541e966a (diff)
"Disable everywhere for now" setting
Diffstat (limited to 'extension/popup/main.js')
-rw-r--r--extension/popup/main.js26
1 files changed, 20 insertions, 6 deletions
diff --git a/extension/popup/main.js b/extension/popup/main.js
index ad1475a..6175e36 100644
--- a/extension/popup/main.js
+++ b/extension/popup/main.js
@@ -143,12 +143,26 @@ function loadTrackList(opts) {
 }
 
 Promise.all([
-    browser.tabs.query({active: true, currentWindow: true})
-        .then(([tab]) => {
-            const url = new URL(tab.url);
-            document.getElementById('hostname').appendChild(document.createTextNode(url.hostname));
-            return url.hostname;
-        }),
+    (async function() {
+        const [[tab], {disableEverywhere: disableEverywhereStatus}] = await Promise.all([
+            browser.tabs.query({active: true, currentWindow: true}),
+            browser.storage.sync.get('disableEverywhere')
+        ]);
+
+        const {hostname} = new URL(tab.url);
+        document.getElementById('hostname').appendChild(document.createTextNode(hostname));
+
+        const disableEverywhere = document.getElementById('disable-everywhere');
+
+        disableEverywhere.checked = disableEverywhereStatus;
+
+        disableEverywhere.addEventListener('click', () => {
+            browser.storage.sync.set({disableEverywhere: disableEverywhere.checked})
+                .then(() => browser.runtime.sendMessage({hostname}));
+        });
+
+        return hostname;
+    })(),
     browser.storage.sync.get('siteSettings')
         .then(({siteSettings = {}}) => siteSettings)
 ])