import { useEffect, useState } from "react"; /** * Reactive online/offline status hook. * Returns true when navigator.onLine is true (and updates reactively). */ export function useOnlineStatus(): boolean { const [isOnline, setIsOnline] = useState(() => typeof navigator !== "undefined" ? navigator.onLine : 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; }