|
|
@@ -6,7 +6,7 @@ Prend en paramètre une liste de ItemMenu et les met en forme
|
|
|
<template>
|
|
|
<v-navigation-drawer
|
|
|
v-model="displayMenu"
|
|
|
- :rail="!isOpened"
|
|
|
+ :rail="isRail"
|
|
|
:disable-resize-watcher="true"
|
|
|
class="bg-ot-dark-grey text-ot-menu-color main-menu"
|
|
|
>
|
|
|
@@ -76,18 +76,36 @@ Prend en paramètre une liste de ItemMenu et les met en forme
|
|
|
<script setup lang="ts">
|
|
|
import {useMenu} from "~/composables/layout/useMenu";
|
|
|
import {computed} from "@vue/reactivity";
|
|
|
+import { useDisplay } from 'vuetify'
|
|
|
|
|
|
const { buildMenu, hasMenu, isInternalLink, openMenu, isMenuOpened } = useMenu()
|
|
|
|
|
|
+const { mdAndUp } = useDisplay()
|
|
|
+
|
|
|
const menu = buildMenu('Main')
|
|
|
|
|
|
-const displayMenu = computed(() => hasMenu('Main'))
|
|
|
+const hasMainMenu = computed(() => hasMenu('Main'))
|
|
|
+
|
|
|
const isOpened = computed(() => isMenuOpened('Main'))
|
|
|
|
|
|
+// En vue md+, on affiche toujours le menu
|
|
|
+const isRail = computed(() => mdAndUp.value && !isOpened.value)
|
|
|
+const displayMenu = computed(() => hasMainMenu && (mdAndUp.value || isOpened.value))
|
|
|
+
|
|
|
+console.log(process.client, mdAndUp.value)
|
|
|
+
|
|
|
+const unwatch = watch(mdAndUp, (newValue, oldValue) => {
|
|
|
// Par défaut si l'écran est trop petit au chargement de la page, le menu doit rester fermé.
|
|
|
-if (process.client && window.innerWidth >= 1264) {
|
|
|
+ if (process.client && mdAndUp.value) {
|
|
|
openMenu('Main')
|
|
|
-}
|
|
|
+ }
|
|
|
+})
|
|
|
+onUnmounted(() => {
|
|
|
+ unwatch()
|
|
|
+})
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|