UNPKG

react-online-hook

Version:
56 lines (44 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = require("react"); /** * React hook to monitor network status. * * @since 1.0.0 * * @see https://github.com/Uzwername/react-online-hook#readme */ var useOnlineStatus = function () { // Check if required functionality is present var isNavigatorOnLinePresent = typeof window.navigator.onLine === 'boolean'; var _a = react_1.useState(!isNavigatorOnLinePresent), isAssumedStatus = _a[0], setIsAssumedStatus = _a[1]; // If no navigator.onLine, assume true var _b = react_1.useState(isNavigatorOnLinePresent ? window.navigator.onLine : true), isOnline = _b[0], setIsOnline = _b[1]; react_1.useEffect(function () { var handOnline = function () { setIsAssumedStatus(false); setIsOnline(true); }; var handleOffline = function () { setIsAssumedStatus(false); setIsOnline(false); }; window.addEventListener('online', handOnline); window.addEventListener('offline', handleOffline); return function () { window.removeEventListener('online', handOnline); window.removeEventListener('offline', handleOffline); }; }, []); return { isOnline: isOnline, isAssumedStatus: isAssumedStatus }; }; exports.default = useOnlineStatus; module.exports = exports.default;