From 09574f1c7511bfc1a5adb2b0d525addd9d7108f1 Mon Sep 17 00:00:00 2001 From: MaysWind Date: Sun, 9 Mar 2025 00:39:54 +0800 Subject: [PATCH] code refactor --- ...ectButtonBase.ts => LanguageSelectBase.ts} | 9 +-- src/components/desktop/LanguageSelect.vue | 67 +++++++++++++++++++ .../desktop/LanguageSelectButton.vue | 6 +- .../mobile/LanguageSelectButton.vue | 6 +- src/desktop-main.ts | 2 + src/views/base/users/UserProfilePageBase.ts | 4 -- src/views/desktop/SignupPage.vue | 32 ++------- .../settings/tabs/UserBasicSettingTab.vue | 34 ++-------- src/views/mobile/users/UserProfilePage.vue | 6 +- 9 files changed, 95 insertions(+), 71 deletions(-) rename src/components/base/{LanguageSelectButtonBase.ts => LanguageSelectBase.ts} (90%) create mode 100644 src/components/desktop/LanguageSelect.vue diff --git a/src/components/base/LanguageSelectButtonBase.ts b/src/components/base/LanguageSelectBase.ts similarity index 90% rename from src/components/base/LanguageSelectButtonBase.ts rename to src/components/base/LanguageSelectBase.ts index 0446d771..777ff7b2 100644 --- a/src/components/base/LanguageSelectButtonBase.ts +++ b/src/components/base/LanguageSelectBase.ts @@ -5,22 +5,23 @@ import { useI18n } from '@/locales/helpers.ts'; import { useSettingsStore } from '@/stores/setting.ts'; -export interface LanguageSelectButtonBaseProps { +export interface LanguageSelectBaseProps { disabled?: boolean; + includeSystemDefault?: boolean; useModelValue?: boolean; modelValue?: string; } -export interface LanguageSelectButtonBaseEmits { +export interface LanguageSelectBaseEmits { (e: 'update:modelValue', value: string): void; } -export function useLanguageSelectButtonBase(props: LanguageSelectButtonBaseProps, emit: LanguageSelectButtonBaseEmits) { +export function useLanguageSelectButtonBase(props: LanguageSelectBaseProps, emit: LanguageSelectBaseEmits) { const { getCurrentLanguageTag, getCurrentLanguageDisplayName, getAllLanguageOptions, getLanguageInfo, setLanguage } = useI18n(); const settingsStore = useSettingsStore(); - const allLanguages = computed(() => getAllLanguageOptions(false)); + const allLanguages = computed(() => getAllLanguageOptions(!!props.includeSystemDefault)); const currentLocale = computed({ get: () => getCurrentLanguageTag(), diff --git a/src/components/desktop/LanguageSelect.vue b/src/components/desktop/LanguageSelect.vue new file mode 100644 index 00000000..368dbb8d --- /dev/null +++ b/src/components/desktop/LanguageSelect.vue @@ -0,0 +1,67 @@ + + + diff --git a/src/components/desktop/LanguageSelectButton.vue b/src/components/desktop/LanguageSelectButton.vue index 13a489d9..ec4f64ee 100644 --- a/src/components/desktop/LanguageSelectButton.vue +++ b/src/components/desktop/LanguageSelectButton.vue @@ -19,14 +19,14 @@