@wener/ui
Version:
18 lines (14 loc) • 512 B
text/typescript
import { useEffect, useState } from 'react';
export function useOnlineEffect(): null | boolean {
const [online, setOnline] = useState(window?.navigator?.onLine);
useEffect(() => {
const handler = (e: Event) => setOnline(e.type === 'online');
window.addEventListener('online', handler);
window.addEventListener('offline', handler);
return () => {
window.removeEventListener('online', handler);
window.removeEventListener('offline', handler);
};
}, []);
return online;
}