Fix SSR error with navigator.onLine in index page
Use reactive ref with onMounted to safely access navigator.onLine only on client-side, preventing server-side rendering errors.
This commit is contained in:
@@ -1,5 +1,25 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
const { loggedIn, user } = useUserSession()
|
const { loggedIn, user } = useUserSession()
|
||||||
|
|
||||||
|
// Estado de conexión (solo en cliente)
|
||||||
|
const isOnline = ref(true)
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
// Inicializar estado de conexión
|
||||||
|
isOnline.value = navigator.onLine
|
||||||
|
|
||||||
|
// Escuchar cambios de conexión
|
||||||
|
const handleOnline = () => { isOnline.value = true }
|
||||||
|
const handleOffline = () => { isOnline.value = false }
|
||||||
|
|
||||||
|
window.addEventListener('online', handleOnline)
|
||||||
|
window.addEventListener('offline', handleOffline)
|
||||||
|
|
||||||
|
onUnmounted(() => {
|
||||||
|
window.removeEventListener('online', handleOnline)
|
||||||
|
window.removeEventListener('offline', handleOffline)
|
||||||
|
})
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -48,8 +68,8 @@ const { loggedIn, user } = useUserSession()
|
|||||||
</template>
|
</template>
|
||||||
<div class="space-y-2 text-sm">
|
<div class="space-y-2 text-sm">
|
||||||
<div class="flex items-center gap-2">
|
<div class="flex items-center gap-2">
|
||||||
<div class="w-2 h-2 rounded-full" :class="navigator.onLine ? 'bg-green-500' : 'bg-red-500'"></div>
|
<div class="w-2 h-2 rounded-full" :class="isOnline ? 'bg-green-500' : 'bg-red-500'"></div>
|
||||||
<span>{{ navigator.onLine ? 'En línea' : 'Sin conexión' }}</span>
|
<span>{{ isOnline ? 'En línea' : 'Sin conexión' }}</span>
|
||||||
</div>
|
</div>
|
||||||
<p class="text-gray-600 dark:text-gray-400">
|
<p class="text-gray-600 dark:text-gray-400">
|
||||||
La aplicación funciona offline gracias al service worker
|
La aplicación funciona offline gracias al service worker
|
||||||
|
|||||||
Reference in New Issue
Block a user