41 lines
659 B
Vue
41 lines
659 B
Vue
<script setup>
|
|
import {
|
|
HorizontalNavGroup,
|
|
HorizontalNavLink,
|
|
} from '@layouts/components'
|
|
|
|
const props = defineProps({
|
|
navItems: {
|
|
type: null,
|
|
required: true,
|
|
},
|
|
})
|
|
|
|
const resolveNavItemComponent = item => {
|
|
if ('children' in item)
|
|
return HorizontalNavGroup
|
|
|
|
return HorizontalNavLink
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<ul class="nav-items">
|
|
<Component
|
|
:is="resolveNavItemComponent(item)"
|
|
v-for="(item, index) in navItems"
|
|
:key="index"
|
|
:item="item"
|
|
/>
|
|
</ul>
|
|
</template>
|
|
|
|
<style lang="scss">
|
|
.layout-wrapper.layout-nav-type-horizontal {
|
|
.nav-items {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
}
|
|
}
|
|
</style>
|