generated from thegrind/laravel-dockerized
27 lines
719 B
Vue
27 lines
719 B
Vue
<script lang="ts" setup>
|
|
import { useData } from '../composables/data'
|
|
import VPNavScreenMenuLink from './VPNavScreenMenuLink.vue'
|
|
import VPNavScreenMenuGroup from './VPNavScreenMenuGroup.vue'
|
|
|
|
const { theme } = useData()
|
|
</script>
|
|
|
|
<template>
|
|
<nav v-if="theme.nav" class="VPNavScreenMenu">
|
|
<template v-for="item in theme.nav" :key="JSON.stringify(item)">
|
|
<VPNavScreenMenuLink v-if="'link' in item" :item="item" />
|
|
<component
|
|
v-else-if="'component' in item"
|
|
:is="item.component"
|
|
v-bind="item.props"
|
|
screen-menu
|
|
/>
|
|
<VPNavScreenMenuGroup
|
|
v-else
|
|
:text="item.text || ''"
|
|
:items="item.items"
|
|
/>
|
|
</template>
|
|
</nav>
|
|
</template>
|