Files
tolaria/src/hooks/useNetworkStatus.ts
2026-04-12 19:17:49 +02:00

29 lines
688 B
TypeScript

import { useEffect, useState } from 'react'
function detectOffline(): boolean {
if (typeof navigator === 'undefined') {
return false
}
return navigator.onLine === false
}
export function useNetworkStatus() {
const [isOffline, setIsOffline] = useState(detectOffline)
useEffect(() => {
const handleOnline = () => setIsOffline(false)
const handleOffline = () => setIsOffline(true)
window.addEventListener('online', handleOnline)
window.addEventListener('offline', handleOffline)
return () => {
window.removeEventListener('online', handleOnline)
window.removeEventListener('offline', handleOffline)
}
}, [])
return { isOffline }
}