From 2fa8db64ddf4c92a19e73774143518d87d001b72 Mon Sep 17 00:00:00 2001 From: Vachmara Date: Tue, 17 Jun 2025 10:49:07 +0200 Subject: [PATCH] fix(NavigationMenu): nested accordion context at every level (#4363) Co-authored-by: Benjamin Canac --- src/runtime/components/NavigationMenu.vue | 32 +++++++++++------------ 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/runtime/components/NavigationMenu.vue b/src/runtime/components/NavigationMenu.vue index 87d236e7..ab81603b 100644 --- a/src/runtime/components/NavigationMenu.vue +++ b/src/runtime/components/NavigationMenu.vue @@ -236,20 +236,13 @@ const lists = computed(() => : [] ) -function getAccordionDefaultValue(list: NavigationMenuItem[]) { - function findItemsWithDefaultOpen(items: NavigationMenuItem[], level = 0): string[] { - return items.reduce((acc: string[], item, index) => { - if (item.defaultOpen || item.open) { - acc.push(item.value || (level > 0 ? `item-${level}-${index}` : `item-${index}`)) - } - if (item.children?.length) { - acc.push(...findItemsWithDefaultOpen(item.children, level + 1)) - } - return acc - }, []) - } - - const indexes = findItemsWithDefaultOpen(list) +function getAccordionDefaultValue(list: NavigationMenuItem[], level = 0) { + const indexes = list.reduce((acc: string[], item, index) => { + if (item.defaultOpen || item.open) { + acc.push(item.value || (level > 0 ? `item-${level}-${index}` : `item-${index}`)) + } + return acc + }, []) return props.type === 'single' ? indexes[0] : indexes } @@ -378,7 +371,14 @@ function getAccordionDefaultValue(list: NavigationMenuItem[]) { -
    + -
+