From 0ecf11417f8c97a6e8531f906939e8169c38c9a0 Mon Sep 17 00:00:00 2001 From: Qijia Liu Date: Fri, 6 Sep 2024 13:20:23 +0800 Subject: [PATCH] initial ExternalOption --- src/BasicConfig.vue | 19 +++++++---- src/FooterButtons.vue | 45 +++++++++++++++++++++++++ src/GearButton.vue | 14 ++++++++ src/GearIcon.vue | 9 +++++ src/InputMethodConfig.vue | 60 ++++----------------------------- src/index.ts | 1 + src/option/EnumOption.vue | 4 +-- src/option/ExternalOption.vue | 63 +++++++++++++++++++++++++++++++++++ src/option/GroupOption.vue | 4 --- src/util.ts | 15 +++++++++ 10 files changed, 168 insertions(+), 66 deletions(-) create mode 100644 src/FooterButtons.vue create mode 100644 src/GearButton.vue create mode 100644 src/GearIcon.vue create mode 100644 src/option/ExternalOption.vue diff --git a/src/BasicConfig.vue b/src/BasicConfig.vue index 49ba138..a87ab4e 100644 --- a/src/BasicConfig.vue +++ b/src/BasicConfig.vue @@ -1,6 +1,6 @@ + + diff --git a/src/GearButton.vue b/src/GearButton.vue new file mode 100644 index 0000000..c600606 --- /dev/null +++ b/src/GearButton.vue @@ -0,0 +1,14 @@ + + + diff --git a/src/GearIcon.vue b/src/GearIcon.vue new file mode 100644 index 0000000..179058e --- /dev/null +++ b/src/GearIcon.vue @@ -0,0 +1,9 @@ + + + diff --git a/src/InputMethodConfig.vue b/src/InputMethodConfig.vue index 7e06d18..3bec2fe 100644 --- a/src/InputMethodConfig.vue +++ b/src/InputMethodConfig.vue @@ -1,11 +1,12 @@ @@ -137,20 +138,6 @@ const filteredLanguageOptions = computed(() => { const form = ref({}) -function extractValue(config: Config, reset: boolean) { - const value: { [key: string]: any } = {} - if ('Children' in config) { - for (const child of config.Children) { - value[child.Option] = reset - ? ( - 'DefaultValue' in child ? child.DefaultValue : extractValue(child, true) - ) - : child.Value - } - } - return value -} - watchEffect(() => { form.value = extractValue(config.value, false) }) @@ -162,11 +149,6 @@ function reset() { function apply() { window.fcitx.setConfig(uri.value, form.value) } - -function confirm() { - apply() - props.onClose() -} diff --git a/src/index.ts b/src/index.ts index a6066c7..137b645 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1 +1,2 @@ export { default as InputMethodConfig } from './InputMethodConfig.vue' +export { default as GearButton } from './GearButton.vue' diff --git a/src/option/EnumOption.vue b/src/option/EnumOption.vue index abc26c1..35db0c2 100644 --- a/src/option/EnumOption.vue +++ b/src/option/EnumOption.vue @@ -5,14 +5,14 @@ import { NSelect } from 'naive-ui' const props = defineProps<{ config: { Enum: { [key: string]: string } - EnumI18n: { [key: string]: string } + EnumI18n?: { [key: string]: string } } value: string onUpdate: (value: string) => void }>() const options = computed(() => Object.entries(props.config.Enum).map(([key, value]) => ({ - label: props.config.EnumI18n[key], + label: (props.config.EnumI18n || props.config.Enum)[key], value, }))) diff --git a/src/option/ExternalOption.vue b/src/option/ExternalOption.vue new file mode 100644 index 0000000..f161d5d --- /dev/null +++ b/src/option/ExternalOption.vue @@ -0,0 +1,63 @@ + + + diff --git a/src/option/GroupOption.vue b/src/option/GroupOption.vue index aca18ad..f8ec8e6 100644 --- a/src/option/GroupOption.vue +++ b/src/option/GroupOption.vue @@ -1,5 +1,4 @@