|
|
@@ -20,7 +20,7 @@ Prend en paramètre une liste de ItemMenu et les met en forme
|
|
|
class="left-menu"
|
|
|
>
|
|
|
<!-- TODO: que se passe-t-il si le menu ne comprend qu'un seul MenuItem? -->
|
|
|
- <div v-for="(item, i) in menu.children" :key="i">
|
|
|
+ <div v-for="(item, i) in items" :key="i">
|
|
|
|
|
|
<!-- Cas 1 : l'item n'a pas d'enfants, c'est un lien -->
|
|
|
<v-list-item
|
|
|
@@ -76,6 +76,7 @@ Prend en paramètre une liste de ItemMenu et les met en forme
|
|
|
import {useMenu} from "~/composables/layout/useMenu";
|
|
|
import {computed} from "@vue/reactivity";
|
|
|
import { useDisplay } from 'vuetify'
|
|
|
+import {MenuGroup} from "~/types/layout";
|
|
|
|
|
|
const { getMenu, hasMenu, isInternalLink, setMenuState, isMenuOpened } = useMenu()
|
|
|
|
|
|
@@ -87,6 +88,15 @@ const hasMainMenu = computed(() => hasMenu('Main'))
|
|
|
|
|
|
const isOpened = computed(() => isMenuOpened('Main'))
|
|
|
|
|
|
+let items
|
|
|
+if (menu === null) {
|
|
|
+ items = []
|
|
|
+} else if (menu.hasOwnProperty('children')) {
|
|
|
+ items = (menu as MenuGroup).children ?? []
|
|
|
+} else {
|
|
|
+ items = [menu]
|
|
|
+}
|
|
|
+
|
|
|
// En vue lg+, on affiche toujours le menu
|
|
|
const displayMenu = computed(() => {
|
|
|
return menu !== null && hasMenu('Main') && (lgAndUp.value || isOpened.value)
|