28 lines
717 B
TypeScript
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;
|
|
}
|