diff --git a/package.json b/package.json index 234dd5e1..cff52274 100644 --- a/package.json +++ b/package.json @@ -25,16 +25,16 @@ }, "homepage": "https://libredirect.github.io", "devDependencies": { - "prettier": "3.3.3", - "pug-cli": "^1.0.0-alpha6", - "web-ext": "^7.2.0", "@rollup/plugin-commonjs": "^24.0.0", "@rollup/plugin-node-resolve": "^15.0.0", "@rollup/plugin-terser": "^0.4.0", + "prettier": "3.3.3", + "pug-cli": "^1.0.0-alpha6", "rollup": "^3.15.0", "rollup-plugin-css-only": "^4.3.0", "rollup-plugin-svelte": "^7.1.2", - "svelte": "^3.55.0" + "svelte": "^3.55.0", + "web-ext": "^7.2.0" }, "webExt": { "sourceDir": "./src/", @@ -44,5 +44,8 @@ "build": { "overwriteDest": true } + }, + "dependencies": { + "svelte-select": "^5.8.3" } } diff --git a/src/pages/src/App.svelte b/src/pages/src/App.svelte index 8cceb5d1..f24b43e0 100644 --- a/src/pages/src/App.svelte +++ b/src/pages/src/App.svelte @@ -29,7 +29,6 @@ onMount(async () => { let opts = await utils.getOptions() if (!opts) { - console.log("init defulats") await servicesHelper.initDefaults() opts = await utils.getOptions() } diff --git a/src/pages/src/Services/Instances.svelte b/src/pages/src/Services/Instances.svelte index 3c9b1ccf..39d61f26 100644 --- a/src/pages/src/Services/Instances.svelte +++ b/src/pages/src/Services/Instances.svelte @@ -13,6 +13,7 @@ import utils from "../../../assets/javascripts/utils" export let selectedService + export let selectedFrontend let _options let _config @@ -34,10 +35,10 @@ $: { allInstances = [] - if (_options[serviceOptions.frontend]) allInstances.push(..._options[serviceOptions.frontend]) - if (redirects && redirects[serviceOptions.frontend]) { - for (const network in redirects[serviceOptions.frontend]) { - allInstances.push(...redirects[serviceOptions.frontend][network]) + if (_options[selectedFrontend]) allInstances.push(..._options[selectedFrontend]) + if (redirects && redirects[selectedFrontend]) { + for (const network in redirects[selectedFrontend]) { + allInstances.push(...redirects[selectedFrontend][network]) } } } @@ -48,12 +49,12 @@ } function isCustomInstance(instance) { - if (redirects[serviceOptions.frontend]) { - for (const network in redirects[serviceOptions.frontend]) { - if (redirects[serviceOptions.frontend][network].includes(instance)) return true + if (redirects[selectedFrontend]) { + for (const network in redirects[selectedFrontend]) { + if (redirects[selectedFrontend][network].includes(instance)) return false } } - return false + return true } async function pingInstances() { @@ -92,15 +93,15 @@ let addInstanceValue function addInstance() { const instance = utils.protocolHost(new URL(addInstanceValue)) - if (!_options[serviceOptions.frontend].includes(instance)) { - _options[serviceOptions.frontend].push(instance) + if (!_options[selectedFrontend].includes(instance)) { + _options[selectedFrontend].push(instance) addInstanceValue = "" options.set(_options) } } -{#if serviceConf.frontends[serviceOptions.frontend].instanceList && redirects && blacklist} +{#if serviceConf.frontends[selectedFrontend].instanceList && redirects && blacklist}
@@ -120,16 +121,14 @@ type="url" placeholder="https://instance.com" aria-label="Add instance input" - on:keydown={e => { - if (e.key === "Enter") addInstance() - }} + on:keydown={e => e.key === "Enter" && addInstance()} /> - {#each _options[serviceOptions.frontend] as instance} + {#each _options[selectedFrontend] as instance} {instance} @@ -144,9 +143,9 @@ class="add" aria-label="Remove Instance" on:click={() => { - const index = _options[serviceOptions.frontend].indexOf(instance) + const index = _options[selectedFrontend].indexOf(instance) if (index > -1) { - _options[serviceOptions.frontend].splice(index, 1) + _options[selectedFrontend].splice(index, 1) options.set(_options) } }} @@ -156,15 +155,15 @@
{/each} - {#if redirects !== "disabled" && blacklist !== "disabled"} - {#if redirects[serviceOptions.frontend] && redirects[serviceOptions.frontend]["clearnet"]} + {#if redirects[selectedFrontend] && redirects[selectedFrontend]["clearnet"]} {#each Object.entries(_config.networks) as [networkName, network]} - {#if redirects[serviceOptions.frontend] && redirects[serviceOptions.frontend][networkName]} + {#if redirects[selectedFrontend] && redirects[selectedFrontend][networkName] && redirects[selectedFrontend][networkName].length > 0} +
- {#each redirects[serviceOptions.frontend][networkName] as instance} + {#each redirects[selectedFrontend][networkName] as instance} {instance} @@ -178,7 +177,7 @@ cloudflare {/if} - {#if _options[serviceOptions.frontend].includes(instance)} + {#if _options[selectedFrontend].includes(instance)} chosen {/if} {#if pingCache && pingCache[instance]} @@ -189,9 +188,9 @@ class="add" aria-label="Add instance" on:click={() => { - if (_options[serviceOptions.frontend]) { - if (!_options[serviceOptions.frontend].includes(instance)) { - _options[serviceOptions.frontend].push(instance) + if (_options[selectedFrontend]) { + if (!_options[selectedFrontend].includes(instance)) { + _options[selectedFrontend].push(instance) options.set(_options) } } diff --git a/src/pages/src/Services/RedirectType.svelte b/src/pages/src/Services/RedirectType.svelte index 92b8c6d1..8cddeafb 100644 --- a/src/pages/src/Services/RedirectType.svelte +++ b/src/pages/src/Services/RedirectType.svelte @@ -46,19 +46,17 @@ } let embeddableFrontends = [] - $: (() => { - if (serviceConf) { - embeddableFrontends = [] - for (const [frontendId, frontendConf] of Object.entries(serviceConf.frontends)) { - if (frontendConf.embeddable && frontendConf.instanceList) { - embeddableFrontends.push({ - value: frontendId, - name: frontendConf.name, - }) - } + $: if (serviceConf) { + embeddableFrontends = [] + for (const [frontendId, frontendConf] of Object.entries(serviceConf.frontends)) { + if (frontendConf.embeddable && frontendConf.instanceList) { + embeddableFrontends.push({ + value: frontendId, + name: frontendConf.name, + }) } } - })() + } + import { onDestroy } from "svelte" + export let details + import { config, options } from "../stores" + let _options + let _config + + const unsubscribeOptions = options.subscribe(val => (_options = val)) + const unsubscribeConfig = config.subscribe(val => (_config = val)) + onDestroy(() => { + unsubscribeOptions() + unsubscribeConfig() + }) + + let theme + $: if (_options) { + if (_options.theme == "dark") { + theme = "dark" + } else if (_options.theme == "light") { + theme = "light" + } else if (window.matchMedia("(prefers-color-scheme: dark)").matches) { + theme = "dark" + } else { + theme = "light" + } + } + + +{#if _config.services[details.value].imageType == "svgMono"} + {#if theme == "dark"} + {details.label} + {:else} + {details.label} + {/if} +{:else} + {details.label} +{/if} diff --git a/src/pages/src/Services/Services.svelte b/src/pages/src/Services/Services.svelte index b5d9285c..7ce12ac6 100644 --- a/src/pages/src/Services/Services.svelte +++ b/src/pages/src/Services/Services.svelte @@ -1,6 +1,4 @@
@@ -33,15 +33,26 @@ Service: {serviceConf.url} - { serviceOptions.unsupportedUrls = e.target.options[e.target.options.selectedIndex].value @@ -108,12 +119,55 @@ /> {#if selectedService == "search"} -
- Set LibRedirect as Default Search Engine. For how to do in chromium browsers, click - here. -
+ + + {/if} - + + +
+ + diff --git a/src/pages/src/Sidebar.svelte b/src/pages/src/Sidebar.svelte index be59a731..a05ac631 100644 --- a/src/pages/src/Sidebar.svelte +++ b/src/pages/src/Sidebar.svelte @@ -12,7 +12,7 @@ page.set("services")} style={$page == "services" && "color: var(--active);"}> - Services + Services diff --git a/src/pages/src/components/Select.svelte b/src/pages/src/components/Select.svelte index a0939d1f..7829c53e 100644 --- a/src/pages/src/components/Select.svelte +++ b/src/pages/src/components/Select.svelte @@ -5,7 +5,7 @@ export let ariaLabel - {#each values as option} {/each}