@react-native-community/netinfo
Version:
React Native Network Info API for iOS & Android
2 lines • 2.69 kB
JavaScript
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{useState,useEffect}from'react';import DeprecatedUtils from'./internal/deprecatedUtils';import DeprecatedState from'./internal/deprecatedState';import*as DeprecatedTypes from'./internal/deprecatedTypes';import State from'./internal/state';import*as Types from'./internal/types';State.setup();DeprecatedState.setup();var _isConnectedListeners=new Map();export function fetch(){return State.latest();}export function addEventListener(listenerOrType){var deprecatedHandler=arguments.length>1&&arguments[1]!==undefined?arguments[1]:undefined;if(typeof listenerOrType==='string'){DeprecatedUtils.warnOnce();if(listenerOrType===DeprecatedTypes.CHANGE_EVENT_NAME&&deprecatedHandler){DeprecatedState.add(deprecatedHandler);return{remove:function remove(){DeprecatedState.remove(deprecatedHandler);}};}else{return{remove:function remove(){}};}}else{var _listener=listenerOrType;State.add(_listener);return function(){State.remove(_listener);};}}export function useNetInfo(){var _useState=useState({type:Types.NetInfoStateType.unknown,isConnected:false,isInternetReachable:false,details:null}),_useState2=_slicedToArray(_useState,2),netInfo=_useState2[0],setNetInfo=_useState2[1];useEffect(function(){return addEventListener(setNetInfo);},[]);return netInfo;}export function removeEventListener(type,handler){DeprecatedUtils.warnOnce();if(type===DeprecatedTypes.CHANGE_EVENT_NAME){DeprecatedState.remove(handler);}}export function getConnectionInfo(){DeprecatedUtils.warnOnce();return DeprecatedState.latest();}export function isConnectionExpensive(){DeprecatedUtils.warnOnce();return State.latest().then(DeprecatedUtils.isConnectionExpensive);}export var isConnected={addEventListener:function addEventListener(eventName,handler){if(eventName!==DeprecatedTypes.CHANGE_EVENT_NAME){return{remove:function remove(){}};}var listener=function listener(state){handler(DeprecatedUtils.isConnected(state));};_isConnectedListeners.set(handler,listener);State.add(listener);return{remove:function remove(){State.remove(listener);}};},removeEventListener:function removeEventListener(_eventName,handler){var listener=_isConnectedListeners.get(handler);listener&&State.remove(listener);_isConnectedListeners.delete(handler);},fetch:function fetch(){return State.latest().then(DeprecatedUtils.isConnected);}};export*from'./internal/types';export*from'./internal/deprecatedTypes';export default{fetch:fetch,addEventListener:addEventListener,useNetInfo:useNetInfo,removeEventListener:removeEventListener,getConnectionInfo:getConnectionInfo,isConnectionExpensive:isConnectionExpensive,isConnected:isConnected};
//# sourceMappingURL=index.js.map