added network status

This commit is contained in:
Ren Amamiya
2023-04-14 14:56:01 +07:00
parent cb35c70351
commit 4ad5cdbe3d
3 changed files with 51 additions and 17 deletions

23
src/utils/network.tsx Normal file
View File

@@ -0,0 +1,23 @@
import { useEffect, useState } from 'react';
const getOnLineStatus = () =>
typeof navigator !== 'undefined' && typeof navigator.onLine === 'boolean' ? navigator.onLine : true;
export const useNavigatorOnLine = () => {
const [status, setStatus] = useState(getOnLineStatus());
const setOnline = () => setStatus(true);
const setOffline = () => setStatus(false);
useEffect(() => {
window.addEventListener('online', setOnline);
window.addEventListener('offline', setOffline);
return () => {
window.removeEventListener('online', setOnline);
window.removeEventListener('offline', setOffline);
};
}, []);
return status;
};