Explorar el Código

prebuild navigation according to screen size

Olivier Massot hace 1 año
padre
commit
1cfe5dfabf
Se han modificado 1 ficheros con 10 adiciones y 3 borrados
  1. 10 3
      components/Layout/Navigation.vue

+ 10 - 3
components/Layout/Navigation.vue

@@ -4,7 +4,7 @@ Menu Navigation
 <template>
 <template>
   <div v-intersect="onIntersect">
   <div v-intersect="onIntersect">
     <!-- Navigation (écran large) -->
     <!-- Navigation (écran large) -->
-    <div v-if="lgAndUp || !nuxtReady">
+    <div v-if="lgAndUp || (isLargeScreen && !nuxtReady)">
       <LayoutNavigationLg :menu="menu" />
       <LayoutNavigationLg :menu="menu" />
     </div>
     </div>
 
 
@@ -20,14 +20,21 @@ import { useDisplay } from 'vuetify'
 import type { MainMenuItem } from '~/types/interface'
 import type { MainMenuItem } from '~/types/interface'
 import { useLayoutStore } from '~/stores/layoutStore'
 import { useLayoutStore } from '~/stores/layoutStore'
 
 
-const { lgAndUp } = useDisplay()
+// Get the initial width (useDisplay won't work during SSR)
+const isLargeScreen =
+  ((typeof window === 'undefined' && 1024) ||
+    window.innerWidth ||
+    document.documentElement.clientWidth ||
+    document.body.clientWidth) >= 1280
 
 
-// On force la version écran large au build côté serveur
+// On force la version écran large au build côté serveur si l'écran fait plus de 1280px de large
 const nuxtReady = ref(false)
 const nuxtReady = ref(false)
 onNuxtReady(() => {
 onNuxtReady(() => {
   nuxtReady.value = true
   nuxtReady.value = true
 })
 })
 
 
+const { lgAndUp } = useDisplay()
+
 const menu: Array<MainMenuItem> = [
 const menu: Array<MainMenuItem> = [
   {
   {
     label: 'Nos logiciels',
     label: 'Nos logiciels',