about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2023-02-14 20:03:17 +0300
committerManeraKai <manerakai@protonmail.com>2023-02-14 20:03:17 +0300
commit357f97b6a4ca929b6b89d078cac5ce1447e8e0a0 (patch)
treea90a668ef48baa40f669cc2c39b914592d680aa9 /src
parentAdded Tent https://codeberg.org/LibRedirect/libredirect/issues/76 (diff)
parentsmall tweak (diff)
downloadlibredirect-357f97b6a4ca929b6b89d078cac5ce1447e8e0a0.zip
Merge branch 'kirizdev-master'
Diffstat (limited to 'src')
-rw-r--r--src/pages/options/index.js116
1 files changed, 57 insertions, 59 deletions
diff --git a/src/pages/options/index.js b/src/pages/options/index.js
index f122f3fc..1256c9b1 100644
--- a/src/pages/options/index.js
+++ b/src/pages/options/index.js
@@ -1,5 +1,4 @@
 import utils from "../../assets/javascripts/utils.js"
-import localise from "../../assets/javascripts/localise.js"
 
 let config,
 	options,
@@ -182,66 +181,65 @@ async function processCustomInstances(frontend, document) {
 
 function createList(frontend, networks, document, redirects, blacklist) {
 	for (const network in networks) {
-		if (redirects[frontend]) {
-			if (redirects[frontend][network].length > 0) {
-				document.getElementById(frontend).getElementsByClassName("custom-instance")[0].placeholder = redirects[frontend].clearnet[0]
-				document.getElementById(frontend)
-					.getElementsByClassName(network)[0]
-					.getElementsByClassName("checklist")[0]
-					.innerHTML = [
-						`<div class="some-block option-block">
-						<h4>${utils.camelCase(network)}</h4>
-					</div>`,
-						...redirects[frontend][network]
-							.sort((a, b) =>
-								(blacklist.cloudflare.includes(a) && !blacklist.cloudflare.includes(b))
-							)
-							.map(x => {
-								const cloudflare = blacklist.cloudflare.includes(x) ?
-									` <a target="_blank" href="https://libredirect.github.io/docs.html#instances">
-							 		<span style="color:red;">cloudflare</span>
-								</a>` : ""
-
-								const warnings = [cloudflare].join(" ")
-								return `<div>
-										<x>
-											<a href="${x}" target="_blank">${x}</a>${warnings}
-										</x>
-										<button class="add add-${x}">
-											<svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor">
-												<path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z" />
-											</svg>
-										</button>
-						  			</div>`
-							}),
-						'<br>'
-					].join("\n<hr>\n")
-
-				for (const x of redirects[frontend][network]) {
-					document.getElementById(frontend)
-						.getElementsByClassName(network)[0]
-						.getElementsByClassName("checklist")[0]
-						.getElementsByClassName(`add-${x}`)[0]
-						.addEventListener("click", async () => {
-							let options = await utils.getOptions()
-							let customInstances = options[frontend]
-							if (!customInstances.includes(x)) {
-								customInstances.push(x)
-								options = await utils.getOptions()
-								options[frontend] = customInstances
-								browser.storage.local.set({ options }, () => {
-									calcCustomInstances(frontend)
-								})
-							}
-						})
-				}
-			}
-		} else {
-			document.getElementById(frontend).getElementsByClassName(network)[0].getElementsByClassName("checklist")[0].innerHTML =
-				`<div class="some-block option-block">No instances found.</div>`
+		const checklist = document.getElementById(frontend)
+			.getElementsByClassName(network)[0]
+			.getElementsByClassName("checklist")[0]
+
+		if (!redirects[frontend]) {
+			checklist.innerHTML = '<div class="some-block option-block">No instances found.</div>'
 			break
 		}
 
+		const instances = redirects[frontend][network]
+		if (!instances || instances.length === 0) continue
+
+		document.getElementById(frontend)
+			.getElementsByClassName("custom-instance")[0]
+			.placeholder = redirects[frontend].clearnet[0]
+
+		const sortedInstances = instances
+			.sort((a, b) => {
+				return (blacklist.cloudflare.includes(a) && !blacklist.cloudflare.includes(b))
+			})
+
+		const content = sortedInstances
+			.map(x => {
+				const cloudflare = blacklist.cloudflare.includes(x) ?
+					`<a target="_blank" href="https://libredirect.github.io/docs.html#instances">
+                        <span style="color:red;">cloudflare</span>
+                    </a>` : ""
+
+				const warnings = [cloudflare].join(" ")
+				return `<div class="frontend">
+                            <x>
+                                <a href="${x}" target="_blank">${x}</a>${warnings}
+                            </x>
+                            <button class="add add-${x}">
+                                <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor">
+                                    <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z" />
+                                </svg>
+                            </button>
+                        </div>`
+			})
+
+		checklist.innerHTML = [
+			`<div class="some-block option-block">
+                <h4>${utils.camelCase(network)}</h4>
+            </div>`,
+			...content,
+			"<br>"
+		].join("\n<hr>\n")
+
+		for (const instance of instances) {
+			checklist.getElementsByClassName(`add-${instance}`)[0]
+				.addEventListener("click", async () => {
+					let options = await utils.getOptions()
+					if (!options[frontend].includes(instance)) {
+						options[frontend].push(instance)
+						browser.storage.local.set({ options }, () => calcCustomInstances(frontend))
+					}
+				})
+		}
 	}
 }
 
@@ -288,4 +286,4 @@ async function ping(frontend) {
 		span.innerHTML = `<span style="color:${color};">${text}</span>`
 
 	}
-}
\ No newline at end of file
+}