UNPKG

@react-native-community/netinfo

Version:
2 lines 4.75 kB
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _privateTypes=require("./privateTypes");var _types=require("./types");var connection=window.navigator.connection||window.navigator.mozConnection||window.navigator.webkitConnection;var typeMapping={bluetooth:_types.NetInfoStateType.bluetooth,cellular:_types.NetInfoStateType.cellular,ethernet:_types.NetInfoStateType.ethernet,none:_types.NetInfoStateType.none,other:_types.NetInfoStateType.other,unknown:_types.NetInfoStateType.unknown,wifi:_types.NetInfoStateType.wifi,wimax:_types.NetInfoStateType.wimax,mixed:_types.NetInfoStateType.other};var effectiveTypeMapping={'2g':_types.NetInfoCellularGeneration['2g'],'3g':_types.NetInfoCellularGeneration['3g'],'4g':_types.NetInfoCellularGeneration['4g'],'slow-2g':_types.NetInfoCellularGeneration['2g']};var _getCurrentState=function getCurrentState(_requestedInterface){var isConnected=navigator.onLine;var baseState={isInternetReachable:null};if(!connection){if(isConnected){var _state2=(0,_objectSpread2.default)({},baseState,{isConnected:true,type:_types.NetInfoStateType.other,details:{isConnectionExpensive:false}});return _state2;}var _state=(0,_objectSpread2.default)({},baseState,{isConnected:false,isInternetReachable:false,type:_types.NetInfoStateType.none,details:null});return _state;}var isConnectionExpensive=connection.saveData;var type=connection.type?typeMapping[connection.type]:isConnected?_types.NetInfoStateType.other:_types.NetInfoStateType.unknown;if(type===_types.NetInfoStateType.bluetooth){var _state3=(0,_objectSpread2.default)({},baseState,{isConnected:true,type:type,details:{isConnectionExpensive:isConnectionExpensive}});return _state3;}else if(type===_types.NetInfoStateType.cellular){var _state4=(0,_objectSpread2.default)({},baseState,{isConnected:true,type:type,details:{isConnectionExpensive:isConnectionExpensive,cellularGeneration:effectiveTypeMapping[connection.effectiveType]||null,carrier:null}});return _state4;}else if(type===_types.NetInfoStateType.ethernet){var _state5=(0,_objectSpread2.default)({},baseState,{isConnected:true,type:type,details:{isConnectionExpensive:isConnectionExpensive,ipAddress:null,subnet:null}});return _state5;}else if(type===_types.NetInfoStateType.wifi){var _state6=(0,_objectSpread2.default)({},baseState,{isConnected:true,type:type,details:{isConnectionExpensive:isConnectionExpensive,ipAddress:null,subnet:null}});return _state6;}else if(type===_types.NetInfoStateType.wimax){var _state7=(0,_objectSpread2.default)({},baseState,{isConnected:true,type:type,details:{isConnectionExpensive:isConnectionExpensive}});return _state7;}else if(type===_types.NetInfoStateType.none){var _state8=(0,_objectSpread2.default)({},baseState,{isConnected:false,isInternetReachable:false,type:type,details:null});return _state8;}else if(type===_types.NetInfoStateType.unknown){var _state9=(0,_objectSpread2.default)({},baseState,{isConnected:false,isInternetReachable:false,type:type,details:null});return _state9;}var state=(0,_objectSpread2.default)({},baseState,{isConnected:true,type:_types.NetInfoStateType.other,details:{isConnectionExpensive:isConnectionExpensive}});return state;};var handlers=[];var nativeHandlers=[];var RNCNetInfo={addListener:function addListener(type,handler){switch(type){case _privateTypes.DEVICE_CONNECTIVITY_EVENT:{var nativeHandler=function nativeHandler(){handler(_getCurrentState());};if(connection){connection.addEventListener('change',nativeHandler);}else{window.addEventListener('online',nativeHandler,false);window.addEventListener('offline',nativeHandler,false);}handlers.push(handler);nativeHandlers.push(nativeHandler);break;}}},removeListeners:function removeListeners(type,handler){switch(type){case _privateTypes.DEVICE_CONNECTIVITY_EVENT:{var index=handlers.indexOf(handler);var nativeHandler=nativeHandlers[index];if(connection){connection.removeEventListener('change',nativeHandler);}else{window.addEventListener('online',nativeHandler);window.addEventListener('offline',nativeHandler);}handlers.splice(index,1);nativeHandlers.splice(index,1);break;}}},getCurrentState:function getCurrentState(requestedInterface){return _regenerator.default.async(function getCurrentState$(_context){while(1){switch(_context.prev=_context.next){case 0:return _context.abrupt("return",_getCurrentState(requestedInterface));case 1:case"end":return _context.stop();}}},null,this);}};var _default=RNCNetInfo;exports.default=_default; //# sourceMappingURL=nativeModule.web.js.map