diff --git a/src/pages/options/index.js b/src/pages/options/index.js index f122f3f..1256c9b 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 = [ - `
-

${utils.camelCase(network)}

-
`, - ...redirects[frontend][network] - .sort((a, b) => - (blacklist.cloudflare.includes(a) && !blacklist.cloudflare.includes(b)) - ) - .map(x => { - const cloudflare = blacklist.cloudflare.includes(x) ? - ` - cloudflare - ` : "" + const checklist = document.getElementById(frontend) + .getElementsByClassName(network)[0] + .getElementsByClassName("checklist")[0] - const warnings = [cloudflare].join(" ") - return `
- - ${x}${warnings} - - -
` - }), - '
' - ].join("\n
\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 = - `
No instances found.
` + if (!redirects[frontend]) { + checklist.innerHTML = '
No instances found.
' 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) ? + ` + cloudflare + ` : "" + + const warnings = [cloudflare].join(" ") + return `
+ + ${x}${warnings} + + +
` + }) + + checklist.innerHTML = [ + `
+

${utils.camelCase(network)}

+
`, + ...content, + "
" + ].join("\n
\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 = `${text}` } -} \ No newline at end of file +}