about summary refs log tree commit diff stats
path: root/src/pages
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages')
-rw-r--r--src/pages/background/background.js4
-rw-r--r--src/pages/popup/popup.js135
2 files changed, 67 insertions, 72 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index dbc788f2..d5160ff2 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -15,7 +15,9 @@ browser.runtime.onInstalled.addListener(async details => {
 			}
 		}
 		else if (details.reason == "update") {
-			await servicesHelper.upgradeOptions()
+			if (details.previousVersion == '2.3.4') {
+				await servicesHelper.upgradeOptions()
+			}
 			// await servicesHelper.processUpdate()
 		}
 		browser.runtime.openOptionsPage()
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