@react-native-community/netinfo
Version:
React Native Network Info API for iOS & Android
2 lines • 1.37 kB
JavaScript
import Subscriptions from'./subscriptions';import NativeInterface from'./nativeInterface';import DeprecatedUtils from'./deprecatedUtils';var _subscriptions=new Set();var _latestState=null;var _isListening=false;function _listenerHandler(state){_latestState=DeprecatedUtils.convertState(state);for(var _iterator=_subscriptions,_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++];}else{_i=_iterator.next();if(_i.done)break;_ref=_i.value;}var _handler=_ref;_handler(_latestState);}}export function add(handler){_subscriptions.add(handler);if(_latestState){handler(_latestState);}else{NativeInterface.getCurrentState().then(function(state){_latestState=DeprecatedUtils.convertState(state);handler(_latestState);});}if(_subscriptions.size>0&&!_isListening){Subscriptions.add(_listenerHandler,false);_isListening=true;}}export function remove(handler){_subscriptions.delete(handler);if(_subscriptions.size===0&&_isListening){Subscriptions.remove(_listenerHandler);_isListening=false;}}export function clear(){_subscriptions.clear();if(_isListening){Subscriptions.remove(_listenerHandler);_isListening=false;}}export default{add:add,remove:remove,clear:clear};
//# sourceMappingURL=deprecatedSubscriptions.js.map