'use client'; import { useOnlineStatus } from '@/lib/pwa'; import { WifiOff, Wifi } from 'lucide-react'; import { cn } from '@/lib/utils'; import { useState, useEffect } from 'react'; export default function OfflineIndicator() { const isOnline = useOnlineStatus(); const [showBanner, setShowBanner] = useState(false); const [wasOffline, setWasOffline] = useState(false); useEffect(() => { if (!isOnline) { setShowBanner(true); setWasOffline(true); } else if (wasOffline) { setShowBanner(true); const timer = setTimeout(() => { setShowBanner(false); setWasOffline(false); }, 3000); return () => clearTimeout(timer); } }, [isOnline, wasOffline]); if (!showBanner) return null; return (
{isOnline ? ( <> Back online ) : ( <> You're offline — changes will sync when reconnected )}
); }