Folo/packages/hooks/src/useIsOnline.ts

21 lines
541 B
TypeScript

import { useEffect, useState } from "react"
export const useIsOnline = () => {
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 isOnline
}