diff options
author | ManeraKai <manerakai@protonmail.com> | 2023-01-23 12:54:45 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2023-01-23 12:54:45 +0300 |
commit | 7c2e8f08c70ef9b890ac623881847d28c7054ac7 (patch) | |
tree | 6adb3100207e20fc8a79419b22100e0f982aaa80 /src/pages/popup | |
parent | Fixed bugs (diff) | |
download | libredirect-7c2e8f08c70ef9b890ac623881847d28c7054ac7.zip |
Optimized code
Diffstat (limited to 'src/pages/popup')
-rw-r--r-- | src/pages/popup/popup.js | 135 |
1 files changed, 64 insertions, 71 deletions
diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js index 56c0c3cc..560aea9d 100644 --- a/src/pages/popup/popup.js +++ b/src/pages/popup/popup.js @@ -4,20 +4,18 @@ window.browser = window.browser || window.chrome import servicesHelper from "../../assets/javascripts/services.js" import utils from "../../assets/javascripts/utils.js" -let config, - divs = {} - -config = await utils.getConfig() - servicesHelper.switchInstance().then(r => { - if (!r) document.getElementById("change_instance_div").style.display = "none" - else document.getElementById("change_instance").addEventListener("click", async () => { - browser.tabs.update({ url: await servicesHelper.switchInstance() }) - }) + if (!r) + document.getElementById("change_instance_div").style.display = "none" + else + document.getElementById("change_instance").addEventListener("click", async () => { + browser.tabs.update({ url: await servicesHelper.switchInstance() }) + }) }) servicesHelper.copyRaw(true).then(r => { - if (!r) document.getElementById("copy_raw_div").style.display = "none" + if (!r) + document.getElementById("copy_raw_div").style.display = "none" else { const copy_raw = document.getElementById("copy_raw") copy_raw.addEventListener("click", () => servicesHelper.copyRaw(false, copy_raw)) @@ -28,78 +26,73 @@ document.getElementById("more-options").addEventListener("click", () => browser. const allSites = document.getElementsByClassName("all_sites")[0] const currSite = document.getElementsByClassName("current_site")[0] -function setDivs() { - return new Promise(resolve => { - for (const service in config.services) { - divs[service] = {} - divs[service].toggle = {} - divs[service].current = currSite.getElementsByClassName(service)[0] - divs[service].all = allSites.getElementsByClassName(service)[0] - divs[service].toggle.current = currSite.getElementsByClassName(service + "-enabled")[0] - divs[service].toggle.all = allSites.getElementsByClassName(service + "-enabled")[0] - } - resolve() - }) -} +const config = await utils.getConfig() -await setDivs() +let divs = {} +for (const service in config.services) { + divs[service] = {} + divs[service].toggle = {} + divs[service].current = currSite.getElementsByClassName(service)[0] + divs[service].all = allSites.getElementsByClassName(service)[0] + divs[service].toggle.current = currSite.getElementsByClassName(service + "-enabled")[0] + divs[service].toggle.all = allSites.getElementsByClassName(service + "-enabled")[0] +} const currentSiteIsFrontend = document.getElementById("current_site_divider") -browser.storage.local.get(["options"], r => { - browser.tabs.query({ active: true, currentWindow: true }, async tabs => { - for (const service in config.services) { - if (!r.options.popupServices.includes(service)) allSites.getElementsByClassName(service)[0].classList.add("hide") - else allSites.getElementsByClassName(service)[0].classList.remove("hide") - currSite.getElementsByClassName(service)[0].classList.add("hide") - } +browser.tabs.query({ active: true, currentWindow: true }, async tabs => { + let options = await utils.getOptions() + for (const service in config.services) { + if (!options.popupServices.includes(service)) + allSites.getElementsByClassName(service)[0].classList.add("hide") + else + allSites.getElementsByClassName(service)[0].classList.remove("hide") + currSite.getElementsByClassName(service)[0].classList.add("hide") + } - for (const service in config.services) { - divs[service].toggle.all.checked = r.options[service].enabled - divs[service].toggle.current.checked = r.options[service].enabled - } + for (const service in config.services) { + divs[service].toggle.all.checked = options[service].enabled + divs[service].toggle.current.checked = options[service].enabled + } - let url - try { - url = new URL(tabs[0].url) - } catch { - currentSiteIsFrontend.classList.add("hide") - return - } + let url + try { + url = new URL(tabs[0].url) + } catch { + currentSiteIsFrontend.classList.add("hide") + return + } - let service = await servicesHelper.computeService(url, true) - let frontend - let instance - if (service) { - if (typeof service != "string") { - instance = service[2] - frontend = service[1] - service = service[0] - let isCustom = false - for (const network in config.networks) if (r.options[frontend].indexOf(instance) > -1) isCustom = true - } - divs[service].current.classList.remove("hide") - divs[service].all.classList.add("hide") - } else { - currentSiteIsFrontend.classList.add("hide") + let service = await servicesHelper.computeService(url, true) + let frontend + let instance + if (service) { + if (typeof service != "string") { + instance = service[2] + frontend = service[1] + service = service[0] + let isCustom = false + for (const network in config.networks) + if (options[frontend].indexOf(instance) > -1) + isCustom = true } - }) + divs[service].current.classList.remove("hide") + divs[service].all.classList.add("hide") + } else { + currentSiteIsFrontend.classList.add("hide") + } }) for (const service in config.services) { - divs[service].toggle.all.addEventListener("change", () => { - browser.storage.local.get("options", r => { - let options = r.options - options[service].enabled = divs[service].toggle.all.checked - browser.storage.local.set({ options }) - }) + divs[service].toggle.all.addEventListener("change", async () => { + let options = await utils.getOptions() + options[service].enabled = divs[service].toggle.all.checked + browser.storage.local.set({ options }) }) - divs[service].toggle.current.addEventListener("change", () => { - browser.storage.local.get("options", r => { - let options = r.options - options[service].enabled = divs[service].toggle.current.checked - browser.storage.local.set({ options }) - }) + divs[service].toggle.current.addEventListener("change", async () => { + let options = await utils.getOptions() + options[service].enabled = divs[service].toggle.current.checked + browser.storage.local.set({ options }) }) } @@ -110,4 +103,4 @@ for (const a of document.getElementsByTagName("a")) { e.preventDefault() } }) -} +} \ No newline at end of file |