From c6de68c4c4bda3edcf6cf012bd98adea3baf866b Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Thu, 25 Jul 2024 15:17:57 +0300 Subject: Migrating popup to svelte --- src/pages/components/Checkbox.svelte | 52 ++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/pages/components/Checkbox.svelte (limited to 'src/pages/components/Checkbox.svelte') diff --git a/src/pages/components/Checkbox.svelte b/src/pages/components/Checkbox.svelte new file mode 100644 index 00000000..dbefd7e9 --- /dev/null +++ b/src/pages/components/Checkbox.svelte @@ -0,0 +1,52 @@ + + + + + -- cgit 1.4.1 From e97b618660094491013d9d4999ac4802429f3dc7 Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Fri, 26 Jul 2024 23:53:31 +0300 Subject: Added translation support to Svelte --- package.json | 1 + src/assets/javascripts/localise.js | 34 ------ src/pages/components/Checkbox.svelte | 19 ++-- src/pages/icons/ExportIcon.svelte | 9 +- src/pages/icons/ImportIcon.svelte | 17 ++- src/pages/icons/PingIcon.svelte | 9 +- src/pages/icons/ResetIcon.svelte | 1 + src/pages/options/init.js | 8 -- src/pages/options_src/App.svelte | 9 +- src/pages/options_src/General/Exceptions.svelte | 10 +- src/pages/options_src/General/General.svelte | 18 ++-- .../options_src/General/SettingsButtons.svelte | 31 ++++-- src/pages/options_src/Services/Instances.svelte | 32 +++--- src/pages/options_src/Services/RedirectType.svelte | 12 ++- src/pages/options_src/Services/Services.svelte | 115 +++++++++++---------- src/pages/options_src/Sidebar.svelte | 23 +++-- src/pages/popup_src/App.svelte | 2 +- src/pages/popup_src/Buttons.svelte | 94 +++++++++-------- src/pages/popup_src/components/Switch.svelte | 13 ++- 19 files changed, 251 insertions(+), 206 deletions(-) delete mode 100644 src/assets/javascripts/localise.js delete mode 100644 src/pages/options/init.js (limited to 'src/pages/components/Checkbox.svelte') diff --git a/package.json b/package.json index 0f89cbdb..2a79b660 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "scripts": { "start": "web-ext run", "nightly": "web-ext run --firefox=/home/esmail/software/firefox_nightly/firefox", + "start_ar": "web-ext run --firefox=/home/esmail/software/firefox_ar/firefox", "android": "web-ext run -t firefox-android --adb-device emulator-5554 --firefox-apk org.mozilla.fenix ", "build": "web-ext build", "test": "web-ext lint", diff --git a/src/assets/javascripts/localise.js b/src/assets/javascripts/localise.js deleted file mode 100644 index d26d07d4..00000000 --- a/src/assets/javascripts/localise.js +++ /dev/null @@ -1,34 +0,0 @@ -window.browser = window.browser || window.chrome - -function localisePage() { - /** - * @param {string} tag - */ - function getMessage(tag) { - return tag.replace(/__MSG_(\w+)__/g, (_match, v1) => { - return v1 ? browser.i18n.getMessage(v1) : null - }) - } - - const elements = document.querySelectorAll("[data-localise]") - for (let i in elements) - if (elements.hasOwnProperty(i)) { - const obj = elements[i] - const tag = obj.getAttribute("data-localise").toString() - const msg = getMessage(tag) - if (msg && msg !== tag) obj.textContent = msg - } - - const placeholders = document.querySelectorAll("[data-localise-placeholder]") - for (let i in placeholders) - if (placeholders.hasOwnProperty(i)) { - const obj = placeholders[i] - const tag = obj.getAttribute("data-localise-placeholder").toString() - const msg = getMessage(tag) - if (msg && msg !== tag) obj.placeholder = msg - } -} - -export default { - localisePage, -} diff --git a/src/pages/components/Checkbox.svelte b/src/pages/components/Checkbox.svelte index dbefd7e9..9ba9c56c 100644 --- a/src/pages/components/Checkbox.svelte +++ b/src/pages/components/Checkbox.svelte @@ -1,9 +1,10 @@ - + diff --git a/src/pages/icons/ExportIcon.svelte b/src/pages/icons/ExportIcon.svelte index 196726a8..d155e5c5 100644 --- a/src/pages/icons/ExportIcon.svelte +++ b/src/pages/icons/ExportIcon.svelte @@ -1,4 +1,11 @@ - + diff --git a/src/pages/icons/ImportIcon.svelte b/src/pages/icons/ImportIcon.svelte index f022b4f0..f64d0ff6 100644 --- a/src/pages/icons/ImportIcon.svelte +++ b/src/pages/icons/ImportIcon.svelte @@ -1,5 +1,12 @@ - - - \ No newline at end of file + + + diff --git a/src/pages/icons/PingIcon.svelte b/src/pages/icons/PingIcon.svelte index 8fcfe27b..34c4a37d 100644 --- a/src/pages/icons/PingIcon.svelte +++ b/src/pages/icons/PingIcon.svelte @@ -1,4 +1,11 @@ - + - let browser = window.browser || window.chrome + const browser = window.browser || window.chrome import General from "./General/General.svelte" import utils from "../../assets/javascripts/utils.js" @@ -67,12 +67,15 @@ cssVariables = light } } + + const dir = ["ar", "iw", "ku", "fa", "ur"].includes(browser.i18n.getUILanguage()) ? "rtl" : "ltr" + document.body.dir = dir {#if _options && _config}
-
- - - + + + +
- let browser = window.browser || window.chrome + const browser = window.browser || window.chrome import Exceptions from "./Exceptions.svelte" import SettingsButtons from "./SettingsButtons.svelte" @@ -26,12 +26,12 @@
- + { _options.fetchInstances = e.target.options[e.target.options.selectedIndex].value @@ -60,7 +60,7 @@ - + { @@ -71,7 +71,7 @@ - + diff --git a/src/pages/options_src/General/SettingsButtons.svelte b/src/pages/options_src/General/SettingsButtons.svelte index c37a3702..3ea46a2d 100644 --- a/src/pages/options_src/General/SettingsButtons.svelte +++ b/src/pages/options_src/General/SettingsButtons.svelte @@ -1,5 +1,5 @@ - + { @@ -130,8 +136,8 @@ options.set(_options) }} values={[ - { value: "bypass", name: "Bypass" }, - { value: "block", name: "Block" }, + { value: "bypass", name: browser.i18n.getMessage("bypass") || "Bypass" }, + { value: "block", name: browser.i18n.getMessage("block") || "Block" }, ]} /> @@ -139,13 +145,14 @@ {#if selectedService == "search"} {/if} @@ -184,8 +191,10 @@ justify-content: start; align-items: center; } + :global(.svelte_select img, .svelte_select svg) { margin-right: 10px; + margin-left: 0; height: 26px; width: 26px; color: var(--text); diff --git a/src/pages/options_src/Sidebar.svelte b/src/pages/options_src/Sidebar.svelte index 4a808268..fb515f53 100644 --- a/src/pages/options_src/Sidebar.svelte +++ b/src/pages/options_src/Sidebar.svelte @@ -1,4 +1,6 @@ -{#if redirect} - browser.runtime.sendMessage("redirectTab")}> - - - -{/if} - -{#if switchInstance} - browser.tabs.update({ url: await servicesHelper.switchInstance(url) })} - > - - - -{/if} +
+ {#if redirect} + browser.runtime.sendMessage("redirectTab")}> + + + + {/if} -{#if redirectToOriginal} - servicesHelper.copyRaw(url)}> - - - - browser.runtime.sendMessage("reverseTab")}> - - - -{/if} + {#if switchInstance} + browser.tabs.update({ url: await servicesHelper.switchInstance(url) })} + > + + + + {/if} -{#if redirect || switchInstance || redirectToOriginal} -
-{/if} + {#if redirectToOriginal} + servicesHelper.copyRaw(url)}> + + + + browser.runtime.sendMessage("reverseTab")}> + + + + {/if} -{#if currentService} - -
-{/if} + {#if redirect || switchInstance || redirectToOriginal} +
+ {/if} -{#each _options.popupServices as serviceKey} - {#if currentService !== serviceKey} - + {#if currentService} + +
{/if} -{/each} -
+ {#each _options.popupServices as serviceKey} + {#if currentService !== serviceKey} + + {/if} + {/each} + +
- window.open(browser.runtime.getURL("pages/options/index.html"), "_blank")}> - - - + window.open(browser.runtime.getURL("pages/options/index.html"), "_blank")}> + + + +
diff --git a/src/pages/popup_src/components/Switch.svelte b/src/pages/popup_src/components/Switch.svelte index f420caa1..e581e5f4 100644 --- a/src/pages/popup_src/components/Switch.svelte +++ b/src/pages/popup_src/components/Switch.svelte @@ -1,5 +1,5 @@ diff --git a/src/pages/options_src/General/General.svelte b/src/pages/options_src/General/General.svelte index 37c38a0a..b6ed1b46 100644 --- a/src/pages/options_src/General/General.svelte +++ b/src/pages/options_src/General/General.svelte @@ -14,13 +14,30 @@ const unsubscribe = options.subscribe(val => (_options = val)) onDestroy(unsubscribe) + let disableBookmarks = null + browser.runtime.getPlatformInfo(r => { + switch (r.os) { + case "fuchsia": + case "ios": + case "android": + disableBookmarks = true + break + default: + disableBookmarks = false + } + if (!disableBookmarks) { + browser.permissions.contains({ permissions: ["bookmarks"] }, r => (bookmarksPermission = r)) + } + }) + let bookmarksPermission - browser.permissions.contains({ permissions: ["bookmarks"] }, r => (bookmarksPermission = r)) - $: if (bookmarksPermission) { - browser.permissions.request({ permissions: ["bookmarks"] }, r => (bookmarksPermission = r)) - } else { - browser.permissions.remove({ permissions: ["bookmarks"] }) - bookmarksPermission = false + $: if (disableBookmarks !== null && disableBookmarks === false) { + if (bookmarksPermission) { + browser.permissions.request({ permissions: ["bookmarks"] }, r => (bookmarksPermission = r)) + } else { + browser.permissions.remove({ permissions: ["bookmarks"] }) + bookmarksPermission = false + } } @@ -68,10 +85,12 @@ /> - - - - + {#if disableBookmarks === false} + + + + + {/if} diff --git a/src/pages/options_src/Services/Instances.svelte b/src/pages/options_src/Services/Instances.svelte index 862bbf7e..3b870c4b 100644 --- a/src/pages/options_src/Services/Instances.svelte +++ b/src/pages/options_src/Services/Instances.svelte @@ -59,7 +59,6 @@ async function pingInstances() { pingCache = {} for (const instance of allInstances) { - console.log("pinging...", instance) pingCache[instance] = { color: "lightblue", value: "pinging..." } const time = await utils.ping(instance) pingCache[instance] = colorTime(time) diff --git a/src/pages/options_src/Services/Services.svelte b/src/pages/options_src/Services/Services.svelte index 4e719447..b0f0d5e3 100644 --- a/src/pages/options_src/Services/Services.svelte +++ b/src/pages/options_src/Services/Services.svelte @@ -32,8 +32,9 @@
diff --git a/src/pages/popup_src/Buttons.svelte b/src/pages/popup_src/Buttons.svelte index bfa162f8..0b454675 100644 --- a/src/pages/popup_src/Buttons.svelte +++ b/src/pages/popup_src/Buttons.svelte @@ -41,7 +41,14 @@
{#if redirect} - browser.runtime.sendMessage("redirectTab")}> + { + browser.runtime.sendMessage("redirectTab", () => { + window.close() + }) + }} + > @@ -50,7 +57,10 @@ {#if switchInstance} browser.tabs.update({ url: await servicesHelper.switchInstance(url) })} + on:click={async () => + browser.tabs.update({ url: await servicesHelper.switchInstance(url) }, () => { + window.close() + })} > @@ -62,7 +72,13 @@ - browser.runtime.sendMessage("reverseTab")}> + + browser.runtime.sendMessage("reverseTab", () => { + window.close() + })} + > @@ -85,7 +101,13 @@
- window.open(browser.runtime.getURL("pages/options/index.html"), "_blank")}> + + browser.tabs.create({ url: browser.runtime.getURL("pages/options/index.html") }, () => { + window.close() + })} + > diff --git a/src/pages/popup_src/components/Switch.svelte b/src/pages/popup_src/components/Switch.svelte index e581e5f4..42a86403 100644 --- a/src/pages/popup_src/components/Switch.svelte +++ b/src/pages/popup_src/components/Switch.svelte @@ -28,7 +28,10 @@
window.open(browser.runtime.getURL(_config.services[serviceKey].url), "_blank")} + on:click={() => + browser.tabs.create({ url: browser.runtime.getURL(_config.services[serviceKey].url) }, () => { + window.close() + })} > -- cgit 1.4.1