Sfoglia il codice sorgente

fix parameters menu state on mounting

Olivier Massot 6 mesi fa
parent
commit
6c6d3fce63
1 ha cambiato i file con 18 aggiunte e 8 eliminazioni
  1. 18 8
      components/Layout/Parameters/Menu.vue

+ 18 - 8
components/Layout/Parameters/Menu.vue

@@ -49,7 +49,9 @@ const { getMenu, hasMenu, isMenuOpened, setMenuState, closeMenu } = useMenu()
 
 const menu: MenuGroup | null = getMenu('Parameters')
 
-const isOpened = computed(() => isMenuOpened('Parameters'))
+const { homeUrl } = useHomeUrl()
+
+const isOpened = computed(() => isMenuOpened('Parameters', true))
 
 // En vue lg+, on affiche toujours le menu
 const displayMenu = computed(() => {
@@ -70,17 +72,25 @@ const onItemClicked = () => {
   }
 }
 
-const unwatch = watch(mdAndUp, () => {
-  // Par défaut si l'écran est trop petit au chargement de la page, le menu doit rester fermé.
-  if (import.meta.client && menu !== null) {
+const updateMenuState = () => {
+  if (menu !== null) {
     setMenuState('Parameters', mdAndUp.value)
   }
-})
+}
 
-const { homeUrl } = useHomeUrl()
+onMounted(async () => {
+  updateMenuState()
+
+  const unwatch = watch(mdAndUp, () => {
+    // Par défaut si l'écran est trop petit au chargement de la page, le menu doit rester fermé.
+    if (import.meta.client) {
+      updateMenuState()
+    }
+  })
 
-onUnmounted(() => {
-  unwatch()
+  onUnmounted(() => {
+    unwatch()
+  })
 })
 
 // TODO voir à factoriser avec LayoutMainMenu