From 8a86ffaf43d6b57e7fd230bf12e6726a07ef0974 Mon Sep 17 00:00:00 2001 From: Hakadao Date: Thu, 23 Mar 2023 02:13:04 +0800 Subject: [PATCH] feat: add dock position setting * refactor(storage.ts): move `language` and `isShowTopbar` to `setting` variable * refactor: rename `BewSelect.vue` to `Select.vue` --- src/components/{BewSelect.vue => Select.vue} | 0 src/components/Settings.vue | 59 +++++++++++++++----- src/components/Topbar/TopbarMomentsPop.vue | 2 - src/contentScripts/index.ts | 11 ++-- src/contentScripts/views/App.vue | 50 +++++++++++++---- src/logic/storage.ts | 9 ++- src/models/models.ts | 5 ++ src/utils/dataFormatter.ts | 6 +- 8 files changed, 104 insertions(+), 38 deletions(-) rename src/components/{BewSelect.vue => Select.vue} (100%) create mode 100644 src/models/models.ts diff --git a/src/components/BewSelect.vue b/src/components/Select.vue similarity index 100% rename from src/components/BewSelect.vue rename to src/components/Select.vue diff --git a/src/components/Settings.vue b/src/components/Settings.vue index b465fc10..f5eb0f42 100644 --- a/src/components/Settings.vue +++ b/src/components/Settings.vue @@ -1,14 +1,14 @@ diff --git a/src/components/Topbar/TopbarMomentsPop.vue b/src/components/Topbar/TopbarMomentsPop.vue index 66570d4f..3205001a 100644 --- a/src/components/Topbar/TopbarMomentsPop.vue +++ b/src/components/Topbar/TopbarMomentsPop.vue @@ -5,9 +5,7 @@ import { onMounted, reactive, ref, watch } from 'vue' import { isNewArticle, isNewVideo, setLastestOffsetID } from './notify' import { MomentType } from './types' import type { MomentItem } from './types' -import { language } from '~/logic' import { calcTimeSince, getUserID } from '~/utils' -import { LanguageType } from '~/enums/appEnums' const { t } = useI18n() const moments = reactive>([]) as UnwrapNestedRefs< diff --git a/src/contentScripts/index.ts b/src/contentScripts/index.ts index 6f4acda1..a588c8d5 100644 --- a/src/contentScripts/index.ts +++ b/src/contentScripts/index.ts @@ -51,14 +51,15 @@ import { SVG_ICONS, getCookie, i18n, setCookie } from '~/utils' styleEl.setAttribute('href', browser.runtime.getURL('dist/contentScripts/style.css')) shadowDOM.appendChild(styleEl) shadowDOM.appendChild(root) - document.body.appendChild(container) - const app = createApp(App) - setupApp(app) - app.use(i18n).mount(root) // inject svg icons const svgDiv = document.createElement('div') svgDiv.innerHTML = SVG_ICONS - document.body.appendChild(svgDiv) + shadowDOM.appendChild(svgDiv) + + document.body.appendChild(container) + const app = createApp(App) + setupApp(app) + app.use(i18n).mount(root) } })() diff --git a/src/contentScripts/views/App.vue b/src/contentScripts/views/App.vue index b44b6d24..e0beab61 100644 --- a/src/contentScripts/views/App.vue +++ b/src/contentScripts/views/App.vue @@ -9,8 +9,7 @@ import Anime from './Anime/Anime.vue' import History from './History/History.vue' import Favorites from './Favorites/Favorites.vue' import Video from './Video/Video.vue' -import { activatedPage, isShowTopbar } from '~/logic/storage' -import { language } from '~/logic' +import { activatedPage, settings } from '~/logic' import '~/styles/index.ts' import { AppPage, LanguageType } from '~/enums/appEnums' @@ -49,7 +48,7 @@ watch(() => isDark.value, (newValue, oldValue) => { setAppAppearance() }) -watch(() => language.value, (newValue, oldValue) => { +watch(() => settings.value.language, (newValue, oldValue) => { setAppLanguage() }) @@ -65,24 +64,24 @@ function changeActivatePage(pageName: AppPage) { async function setAppLanguage() { // if there is first-time load extension, set the default language by browser display language - if (!language.value) { + if (!settings.value.language) { if (browser.i18n.getUILanguage() === 'zh-CN') { - language.value = LanguageType.Mandarin_CN + settings.value.language = LanguageType.Mandarin_CN } else if (browser.i18n.getUILanguage() === 'zh-TW') { // Since getUILanguage() cannot get the zh-HK language code // use getAcceptLanguages() to get the language code const languages: string[] = await browser.i18n.getAcceptLanguages() if (languages.includes('zh-HK')) - language.value = LanguageType.Cantonese - else language.value = LanguageType.Mandarin_TW + settings.value.language = LanguageType.Cantonese + else settings.value.language = LanguageType.Mandarin_TW } else { - language.value = LanguageType.English + settings.value.language = LanguageType.English } } - locale.value = language.value + locale.value = settings.value.language } /** @@ -103,17 +102,26 @@ function setAppAppearance() {
-