Fix SSR error with navigator.onLine in index page
All checks were successful
build-and-deploy / build (push) Successful in 30s
build-and-deploy / deploy (push) Successful in 3s

Use reactive ref with onMounted to safely access navigator.onLine
only on client-side, preventing server-side rendering errors.
This commit is contained in:
2025-10-11 19:02:23 -06:00
parent db4a79e617
commit 1269b2e489

View File

@@ -1,5 +1,25 @@
<script setup lang="ts">
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>
<template>
@@ -48,8 +68,8 @@ const { loggedIn, user } = useUserSession()
</template>
<div class="space-y-2 text-sm">
<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>
<span>{{ navigator.onLine ? 'En línea' : 'Sin conexión' }}</span>
<div class="w-2 h-2 rounded-full" :class="isOnline ? 'bg-green-500' : 'bg-red-500'"></div>
<span>{{ isOnline ? 'En línea' : 'Sin conexión' }}</span>
</div>
<p class="text-gray-600 dark:text-gray-400">
La aplicación funciona offline gracias al service worker