diff options
author | ManeraKai <manerakai@protonmail.com> | 2022-05-30 01:02:59 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2022-05-30 01:02:59 +0300 |
commit | c5a6623e0f320b2a789e0d2667ccfe2e1bd4335f (patch) | |
tree | dabfa0f2cecf137771f276996f9368922c5aeb64 /src/pages/options/init.js | |
parent | Fixed typo for CopyRaw #291 (diff) | |
download | libredirect-c5a6623e0f320b2a789e0d2667ccfe2e1bd4335f.zip |
Fixed settings theme and translation flashing #286
Diffstat (limited to 'src/pages/options/init.js')
-rw-r--r-- | src/pages/options/init.js | 56 |
1 files changed, 29 insertions, 27 deletions
diff --git a/src/pages/options/init.js b/src/pages/options/init.js index c9bf2f00..daea2963 100644 --- a/src/pages/options/init.js +++ b/src/pages/options/init.js @@ -1,36 +1,38 @@ window.browser = window.browser || window.chrome; -import utils from "../../assets/javascripts/helpers/utils.js"; + +import localise from "../../assets/javascripts/localise.js"; function changeTheme() { - browser.storage.local.get( - "theme", - result => { - switch (result.theme) { - case "dark": - document.body.classList.add("dark-theme"); - document.body.classList.remove("light-theme"); - break; - case "light": - document.body.classList.add("light-theme"); - document.body.classList.remove("dark-theme"); - break; - default: - if (matchMedia("(prefers-color-scheme: light)").matches) { - document.body.classList.add("light-theme"); - document.body.classList.remove("dark-theme"); - } else { + return new Promise(resolve => { + browser.storage.local.get( + "theme", + r => { + switch (r.theme) { + case "dark": document.body.classList.add("dark-theme"); document.body.classList.remove("light-theme"); - } + break; + case "light": + document.body.classList.add("light-theme"); + document.body.classList.remove("dark-theme"); + break; + default: + if (matchMedia("(prefers-color-scheme: light)").matches) { + document.body.classList.add("light-theme"); + document.body.classList.remove("dark-theme"); + } else { + document.body.classList.add("dark-theme"); + document.body.classList.remove("light-theme"); + } + } + resolve(); } - } - ) + ) + }) } -changeTheme() - -browser.storage.onChanged.addListener(changeTheme) - -window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", changeTheme) +changeTheme(); +if (["ar", "iw", "ku", "fa", "ur"].includes(browser.i18n.getUILanguage())) document.getElementsByTagName("body")[0].classList.add("rtl"); +localise.localisePage(); -if (utils.isRtl()) document.getElementsByTagName("body")[0].classList.add("rtl"); \ No newline at end of file +window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", changeTheme) \ No newline at end of file |