import { createContext, useContext, useState, useEffect, ReactNode } from 'react'; interface NetworkContextType { isOnline: boolean; } const NetworkContext = createContext(undefined); export function NetworkProvider({ children }: { children: ReactNode }) { const [isOnline, setIsOnline] = useState(navigator.onLine); 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 ( {children} ); } export function useNetwork() { const context = useContext(NetworkContext); if (context === undefined) { throw new Error('useNetwork must be used within a NetworkProvider'); } return context; }