From 3e4d2d5a12c44ada7067c022ae31e64b58480af9 Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Fri, 11 Oct 2024 14:39:44 +0200 Subject: [PATCH] feat(Accordion/Breadcrumb/ContextMenu/DropdownMenu/NavigationMenu/Tabs): add `labelKey` prop --- src/runtime/components/Accordion.vue | 11 ++- src/runtime/components/Breadcrumb.vue | 12 ++- src/runtime/components/ContextMenu.vue | 9 ++- src/runtime/components/ContextMenuContent.vue | 6 +- src/runtime/components/DropdownMenu.vue | 9 ++- .../components/DropdownMenuContent.vue | 6 +- src/runtime/components/NavigationMenu.vue | 13 +++- src/runtime/components/Tabs.vue | 11 ++- test/components/Accordion.spec.ts | 1 + test/components/Breadcrumb.spec.ts | 1 + test/components/ContextMenu.spec.ts | 1 + test/components/DropdownMenu.spec.ts | 1 + test/components/NavigationMenu.spec.ts | 1 + test/components/Tabs.spec.ts | 1 + .../__snapshots__/Accordion.spec.ts.snap | 41 ++++++++++ .../__snapshots__/Breadcrumb.spec.ts.snap | 13 ++++ .../__snapshots__/ContextMenu.spec.ts.snap | 13 ++++ .../__snapshots__/DropdownMenu.spec.ts.snap | 76 +++++++++++++++---- .../__snapshots__/NavigationMenu.spec.ts.snap | 41 ++++++++++ .../__snapshots__/Tabs.spec.ts.snap | 11 +++ 20 files changed, 247 insertions(+), 31 deletions(-) diff --git a/src/runtime/components/Accordion.vue b/src/runtime/components/Accordion.vue index d281b06107..53bda29255 100644 --- a/src/runtime/components/Accordion.vue +++ b/src/runtime/components/Accordion.vue @@ -33,6 +33,11 @@ export interface AccordionProps extends Pick } @@ -56,10 +61,12 @@ import { computed } from 'vue' import { AccordionRoot, AccordionItem, AccordionHeader, AccordionTrigger, AccordionContent, useForwardPropsEmits } from 'radix-vue' import { reactivePick } from '@vueuse/core' import { useAppConfig } from '#imports' +import { get } from '../utils' const props = withDefaults(defineProps>(), { type: 'single', - collapsible: true + collapsible: true, + labelKey: 'label' }) const emits = defineEmits() const slots = defineSlots>() @@ -89,7 +96,7 @@ const ui = computed(() => accordion({ - {{ item.label }} + {{ get(item, props.labelKey as string) }} diff --git a/src/runtime/components/Breadcrumb.vue b/src/runtime/components/Breadcrumb.vue index ae6d0d507c..41c7af7a56 100644 --- a/src/runtime/components/Breadcrumb.vue +++ b/src/runtime/components/Breadcrumb.vue @@ -30,6 +30,11 @@ export interface BreadcrumbProps { * @defaultValue appConfig.ui.icons.chevronRight */ separatorIcon?: string + /** + * The key to use to get the label from the item. + * @defaultValue 'label' + */ + labelKey?: string class?: any ui?: PartialString } @@ -49,13 +54,16 @@ export type BreadcrumbSlots = {