From 7c527306af1089fb410650fe5f68047a4d0495c2 Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Thu, 19 Sep 2024 22:51:58 +0300 Subject: [PATCH] Improved popup buttons https://github.com/libredirect/browser_extension/issues/992 --- src/pages/popup_src/Buttons.svelte | 31 ++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/pages/popup_src/Buttons.svelte b/src/pages/popup_src/Buttons.svelte index d2fc5433..55d40dd2 100644 --- a/src/pages/popup_src/Buttons.svelte +++ b/src/pages/popup_src/Buttons.svelte @@ -10,7 +10,7 @@ import SettingsIcon from "../icons/SettingsIcon.svelte" import { options, config } from "./stores" import { onDestroy } from "svelte" - import servicesHelper, { computeFrontend } from "../../assets/javascripts/services" + import servicesHelper from "../../assets/javascripts/services" import Switch from "./components/Switch.svelte" import AutoPickIcon from "../icons/AutoPickIcon.svelte" import utils from "../../assets/javascripts/utils" @@ -53,14 +53,18 @@ options.set(_options) const newUrl = await servicesHelper.switchInstance(url, service) browser.tabs.update({ url: newUrl }) + window.close() } - async function autoPick() { + async function autoPickInstance() { autoPicking = true const redirects = await utils.getList(_options) - const instances = utils.randomInstances(redirects[frontend]["clearnet"], 5) + const clearnet = redirects[frontend]["clearnet"] + const i = clearnet.findIndex(instance => url.href.startsWith(instance)) + if (i >= 0) clearnet.splice(i, 1) + const randomInstances = utils.randomInstances(clearnet, 5) const pings = await Promise.all([ - ...instances.map(async instance => { + ...randomInstances.map(async instance => { return [instance, await utils.ping(instance)] }), ]) @@ -71,20 +75,21 @@ } async function addAutoPickInstance() { - await autoPick() - const newUrl = await servicesHelper.switchInstance(url) - browser.tabs.update({ url: newUrl }) + await autoPickInstance() + browser.tabs.update({ url: await servicesHelper.switchInstance(url, service) }, () => { + window.close() + }) } async function removeAndAutoPickInstance() { const i = _options[frontend].findIndex(instance => url.href.startsWith(instance)) _options[frontend].splice(i, 1) options.set(_options) - await autoPick() - const newUrl = await servicesHelper.switchInstance(url, service) - browser.tabs.update({ url: newUrl }) + await autoPickInstance() + browser.tabs.update({ url: await servicesHelper.switchInstance(url, service) }, () => { + window.close() + }) } - $: console.log("autoPicking", autoPicking)
@@ -94,7 +99,9 @@ on:click={() => { browser.tabs.query({ active: true, currentWindow: true }, tabs => { browser.runtime.sendMessage({ message: "redirect", tabId: tabs[0].id }, () => { - browser.tabs.update({ url: redirect }) + browser.tabs.update({ url: redirect }, () => { + window.close() + }) }) }) }}