veza/apps/web/src/hooks/useOnlineStatus.ts
2025-12-12 21:34:34 -05:00

28 lines
717 B
TypeScript

import { useEffect, useState } from 'react';
/**
* Hook pour détecter le statut de connexion réseau
*/
export function useOnlineStatus(): boolean {
const [isOnline, setIsOnline] = useState(() => {
if (typeof navigator !== 'undefined') {
return navigator.onLine;
}
return true;
});
useEffect(() => {
const handleOnline = () => setIsOnline(true);
const handleOffline = () => setIsOnline(false);
window.addEventListener('online', handleOnline);
window.addEventListener('offline', handleOffline);
return () => {
window.removeEventListener('online', handleOnline);
window.removeEventListener('offline', handleOffline);
};
}, []);
return isOnline;
}