From 5dffd380b0ff078c3feef0a85eda24355a266e18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E5=92=B2=E6=99=BA=E5=AD=90?= Date: Tue, 3 Jan 2023 05:09:15 +0800 Subject: [PATCH] fix(settings): close dropdown after choosing icon --- components/common/dropdown/Dropdown.vue | 7 ++++++- components/settings/SettingsProfileMetadata.vue | 10 ++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/components/common/dropdown/Dropdown.vue b/components/common/dropdown/Dropdown.vue index 6ce7284e..3b122a36 100644 --- a/components/common/dropdown/Dropdown.vue +++ b/components/common/dropdown/Dropdown.vue @@ -7,8 +7,13 @@ defineProps<{ const dropdown = $ref() const colorMode = useColorMode() +const hide = () => dropdown.hide() provide(dropdownContextKey, { - hide: () => dropdown.hide(), + hide, +}) + +defineExpose({ + hide, }) diff --git a/components/settings/SettingsProfileMetadata.vue b/components/settings/SettingsProfileMetadata.vue index d2be0b30..525dbcdb 100644 --- a/components/settings/SettingsProfileMetadata.vue +++ b/components/settings/SettingsProfileMetadata.vue @@ -6,18 +6,24 @@ const { form } = defineModel<{ fieldsAttributes: NonNullable } }>() +const dropdown = $ref() const fieldIcons = computed(() => Array.from({ length: 4 }, (_, i) => getAccountFieldIcon(form.value.fieldsAttributes[i].name), ), ) + +const chooseIcon = (i: number, text: string) => { + form.value.fieldsAttributes[i].name = text + dropdown[i]?.hide() +}