From 96e45076298d85ab4dac8eb0b1679dd89f13686e Mon Sep 17 00:00:00 2001 From: Qijia Liu Date: Fri, 6 Sep 2024 16:39:27 +0800 Subject: [PATCH] EntryOption; unify toComponent --- src/BasicConfig.vue | 37 +----------------------------- src/option/EntryOption.vue | 31 ++++++++++++++++++++++++++ src/option/ExternalOption.vue | 16 ++++++++++--- src/option/ListOption.vue | 18 +++------------ src/util.ts | 42 +++++++++++++++++++++++++++++++++++ 5 files changed, 90 insertions(+), 54 deletions(-) create mode 100644 src/option/EntryOption.vue diff --git a/src/BasicConfig.vue b/src/BasicConfig.vue index a87ab4e..cf2a7b8 100644 --- a/src/BasicConfig.vue +++ b/src/BasicConfig.vue @@ -3,16 +3,7 @@ import { computed } from 'vue' import { NAlert, NDialogProvider, NForm, NFormItem } from 'naive-ui' import type { Config } from 'fcitx5-js' import TooltipButton from './TooltipButton.vue' -import IntegerOption from './option/IntegerOption.vue' -import BooleanOption from './option/BooleanOption.vue' -import EnumOption from './option/EnumOption.vue' -import KeyOption from './option/KeyOption.vue' -import StringOption from './option/StringOption.vue' -import ExternalOption from './option/ExternalOption.vue' -import ListOption from './option/ListOption.vue' -import GroupOption from './option/GroupOption.vue' -import UnknownOption from './option/UnknownOption.vue' -import { isMobile } from './util' +import { isMobile, toComponent } from './util' defineProps<{ path: string @@ -22,32 +13,6 @@ defineProps<{ }>() const labelPlacement = computed(() => isMobile.value ? 'top' : 'left') - -function toComponent(child: { Type: string, Children: any[] | null }) { - switch (child.Type) { - case 'Integer': - return IntegerOption - case 'Boolean': - return BooleanOption - case 'Enum': - return EnumOption - case 'Key': - return KeyOption - case 'String': - return StringOption - case 'External': - return ExternalOption - default: { - if (child.Type.startsWith('List|')) { - return ListOption - } - if (child.Children) { - return GroupOption - } - return UnknownOption - } - } -}