import { useEffect, useState } from 'react' import { WifiOff, X } from 'lucide-react' /** * Displays a dismissible banner when the browser loses network connectivity. * Automatically hides when connectivity is restored. */ export default function OfflineBanner() { const [offline, setOffline] = useState(!navigator.onLine) const [dismissed, setDismissed] = useState(false) useEffect(() => { const goOffline = () => { setOffline(true); setDismissed(false) } const goOnline = () => { setOffline(false) } window.addEventListener('offline', goOffline) window.addEventListener('online', goOnline) return () => { window.removeEventListener('offline', goOffline) window.removeEventListener('online', goOnline) } }, []) if (!offline || dismissed) return null return (
You are offline. Cached results are still available — new predictions require a network connection.
) }