Saltar al contenido principal

Inicio rápido para web

Renderiza <OfflineDetector> una vez, cerca de la raíz. No necesita provider ni adapter.

import { OfflineDetector } from '@rogeriodocarmo/offline-detector-web';

export function Root() {
return (
<OfflineDetector>
<App />
</OfflineDetector>
);
}

Esa es toda la configuración. La app arranca en línea y no muestra nada. Cuando la conexión se cae, aparecen un snackbar ("Sin internet", con Reintentar), un banner y un indicador. Cuando regresa, un snackbar "Conexión restablecida" se muestra durante cuatro segundos.

Pruébalo en la demo en vivo o abre las DevTools del navegador, pestaña Network, y elige Offline.

Lee el estado en cualquier lugar​

Los hooks funcionan en cualquier punto dentro de <OfflineDetector>, y el paquete web los exporta:

import { useNetworkStatus } from '@rogeriodocarmo/offline-detector-web';

function SaveButton() {
const { isOnline, reason, checkNow } = useNetworkStatus();
return (
<button disabled={!isOnline} onClick={() => void checkNow()}>
{isOnline ? 'Guardar' : `Sin conexión (${reason})`}
</button>
);
}

El paquete web reexporta los hooks de la capa React, así que es el único paquete que hay que instalar y desde el que importar. Consulta la referencia de react para ver todos los hooks.

Opciones comunes​

<OfflineDetector
locale="es"
distinguishReason
fullScreen={{ continueOffline: true }}
probe={{ urls: ['https://example.com/health'], intervalMs: 60000 }}
onOffline={(state) => console.log('offline', state.reason)}
>
<App />
</OfflineDetector>
OpciónQué hace
localeen, pt-BR o es. Variantes como pt y es-MX se resuelven.
distinguishReasonDice el motivo: "Sin conexión de red" o "Conectado, pero sin internet".
fullScreenUn estado de pantalla completa opcional, con Intentar de nuevo y, si quieres, una salida.
probeURL de la sonda, tiempo de espera, intervalo, método y modo. Consulta Privacidad.
onContinueOfflineSe llama cuando el usuario pulsa "Continuar sin conexión" (o Escape) en la pantalla completa.
nonceNonce de CSP del elemento <style> en línea. Consulta Renderizado en el servidor.
dismissibleApaga el deslizar y el Cerrar en todas las piezas. Consulta Descartar.

La lista completa está en la referencia web. En Next.js, lee las notas sobre renderizado en el servidor: el componente debe vivir en un componente de cliente.