about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/pages/popup_src/Buttons.svelte31
1 files 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)
 </script>
 
 <div class={document.body.dir}>
@@ -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()
+            })
           })
         })
       }}