@react-native-community/netinfo
Version:
React Native Network Info API for iOS & Android
2 lines • 2.88 kB
JavaScript
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{useState,useEffect}from'react';import DeprecatedUtils from'./internal/deprecatedUtils';import DeprecatedSubscriptions from'./internal/deprecatedSubscriptions';import*as DeprecatedTypes from'./internal/deprecatedTypes';import Subscriptions from'./internal/subscriptions';import*as Types from'./internal/types';import NativeInterface from'./internal/nativeInterface';var _isConnectedListeners=new Map();export function fetch(){return NativeInterface.getCurrentState();}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){DeprecatedSubscriptions.add(deprecatedHandler);return{remove:function remove(){DeprecatedSubscriptions.remove(deprecatedHandler);}};}else{return{remove:function remove(){}};}}else{var _listener=listenerOrType;Subscriptions.add(_listener);return function(){Subscriptions.remove(_listener);};}}export function useNetInfo(){var _useState=useState({type:Types.NetInfoStateType.unknown,isConnected: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){DeprecatedSubscriptions.remove(handler);}}export function getConnectionInfo(){DeprecatedUtils.warnOnce();return NativeInterface.getCurrentState().then(DeprecatedUtils.convertState);}export function isConnectionExpensive(){DeprecatedUtils.warnOnce();return NativeInterface.getCurrentState().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);Subscriptions.add(listener);return{remove:function remove(){Subscriptions.remove(listener);}};},removeEventListener:function removeEventListener(_eventName,handler){var listener=_isConnectedListeners.get(handler);listener&&Subscriptions.remove(listener);_isConnectedListeners.delete(handler);},fetch:function fetch(){return NativeInterface.getCurrentState().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