@@ -185,7 +185,7 @@ const contentProps = toRef(() => props.content)
185
185
186
186
const appConfig = useAppConfig ()
187
187
const [DefineLinkTemplate, ReuseLinkTemplate] = createReusableTemplate <{ item: NavigationMenuItem , index: number , active? : boolean }>()
188
- const [DefineItemTemplate, ReuseItemTemplate] = createReusableTemplate <{ item: NavigationMenuItem , index: number }>()
188
+ const [DefineItemTemplate, ReuseItemTemplate] = createReusableTemplate <{ item: NavigationMenuItem , index: number , level ? : number }>()
189
189
190
190
const ui = computed (() => navigationMenu ({
191
191
orientation: props .orientation ,
@@ -237,7 +237,7 @@ const lists = computed(() => props.items?.length ? (Array.isArray(props.items[0]
237
237
</slot >
238
238
</DefineLinkTemplate >
239
239
240
- <DefineItemTemplate v-slot =" { item, index }" >
240
+ <DefineItemTemplate v-slot =" { item, index, level = 0 }" >
241
241
<component
242
242
:is =" (orientation === 'vertical' && item.children?.length) ? UCollapsible : NavigationMenuItem"
243
243
as =" li"
@@ -253,11 +253,11 @@ const lists = computed(() => props.items?.length ? (Array.isArray(props.items[0]
253
253
<component
254
254
:is =" (orientation === 'horizontal' && (item.children?.length || !!slots[item.slot ? `${item.slot}-content` : 'item-content'])) ? NavigationMenuTrigger : NavigationMenuLink"
255
255
as-child
256
- :active =" active"
256
+ :active =" active || item.active "
257
257
:disabled =" item.disabled"
258
258
@select =" item.onSelect"
259
259
>
260
- <ULinkBase v-bind =" slotProps" :class =" ui.link({ class: [props.ui?.link, item.class], active: active || item.active, disabled: !!item.disabled, level: !( orientation === 'vertical' && item.children?.length) })" >
260
+ <ULinkBase v-bind =" slotProps" :class =" ui.link({ class: [props.ui?.link, item.class], active: active || item.active, disabled: !!item.disabled, level: orientation === 'horizontal' || level > 0 })" >
261
261
<ReuseLinkTemplate :item =" (item as T)" :active =" active || item.active" :index =" index" />
262
262
</ULinkBase >
263
263
</component >
@@ -292,7 +292,14 @@ const lists = computed(() => props.items?.length ? (Array.isArray(props.items[0]
292
292
293
293
<template v-if =" orientation === ' vertical' && item .children ?.length " #content >
294
294
<ul :class =" ui.childList({ class: props.ui?.childList })" >
295
- <ReuseItemTemplate v-for =" (childItem, childIndex) in item.children" :key =" childIndex" :item =" childItem" :index =" childIndex" :class =" ui.childItem({ class: props.ui?.childItem })" />
295
+ <ReuseItemTemplate
296
+ v-for =" (childItem, childIndex) in item.children"
297
+ :key =" childIndex"
298
+ :item =" childItem"
299
+ :index =" childIndex"
300
+ :level =" level + 1"
301
+ :class =" ui.childItem({ class: props.ui?.childItem })"
302
+ />
296
303
</ul >
297
304
</template >
298
305
</component >
0 commit comments