[ReactNative] Flow and doc formatting for NetInfo
This commit is contained in:
parent
96c63c9ac3
commit
cd81fee57c
|
@ -21,18 +21,25 @@ type ChangeEventName = $Enum<{
|
||||||
change: string;
|
change: string;
|
||||||
}>;
|
}>;
|
||||||
|
|
||||||
|
type ReachabilityStateIOS = $Enum<{
|
||||||
|
cell: string;
|
||||||
|
none: string;
|
||||||
|
unknown: string;
|
||||||
|
wifi: string;
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NetInfo exposes info about online/offline status
|
* NetInfo exposes info about online/offline status
|
||||||
*
|
*
|
||||||
* == iOS Reachability
|
* ### reachabilityIOS
|
||||||
*
|
*
|
||||||
* Asyncronously determine if the device is online and on a cellular network.
|
* Asyncronously determine if the device is online and on a cellular network.
|
||||||
*
|
*
|
||||||
* - "none" - device is offline
|
* - `none` - device is offline
|
||||||
* - "wifi" - device is online and connected via wifi, or is the iOS simulator
|
* - `wifi` - device is online and connected via wifi, or is the iOS simulator
|
||||||
* - "cell" - device is connected via Edge, 3G, WiMax, or LTE
|
* - `cell` - device is connected via Edge, 3G, WiMax, or LTE
|
||||||
* - "unknown" - error case and the network status is unknown
|
* - `unknown` - error case and the network status is unknown
|
||||||
*
|
*
|
||||||
* ```
|
* ```
|
||||||
* NetInfo.reachabilityIOS.fetch().done((reach) => {
|
* NetInfo.reachabilityIOS.fetch().done((reach) => {
|
||||||
|
@ -50,11 +57,37 @@ type ChangeEventName = $Enum<{
|
||||||
* handleFirstReachabilityChange
|
* handleFirstReachabilityChange
|
||||||
* );
|
* );
|
||||||
* ```
|
* ```
|
||||||
|
*
|
||||||
|
* ### isConnected
|
||||||
|
*
|
||||||
|
* Available on all platforms. Asyncronously fetch a boolean to determine
|
||||||
|
* internet connectivity.
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* NetInfo.isConnected.fetch().done((isConnected) => {
|
||||||
|
* console.log('First, is ' + (isConnected ? 'online' : 'offline'));
|
||||||
|
* });
|
||||||
|
* function handleFirstConnectivityChange(isConnected) {
|
||||||
|
* console.log('Then, is ' + (isConnected ? 'online' : 'offline'));
|
||||||
|
* NetInfo.isConnected.removeEventListener(
|
||||||
|
* 'change',
|
||||||
|
* handleFirstConnectivityChange
|
||||||
|
* );
|
||||||
|
* }
|
||||||
|
* NetInfo.isConnected.addEventListener(
|
||||||
|
* 'change',
|
||||||
|
* handleFirstConnectivityChange
|
||||||
|
* );
|
||||||
|
* ```
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var NetInfo = {};
|
var NetInfo = {};
|
||||||
|
|
||||||
if (RCTReachability) {
|
if (RCTReachability) {
|
||||||
|
|
||||||
|
// RCTReachability is exposed, so this is an iOS-like environment and we will
|
||||||
|
// expose reachabilityIOS
|
||||||
|
|
||||||
var _reachabilitySubscriptions = {};
|
var _reachabilitySubscriptions = {};
|
||||||
|
|
||||||
NetInfo.reachabilityIOS = {
|
NetInfo.reachabilityIOS = {
|
||||||
|
@ -84,7 +117,7 @@ if (RCTReachability) {
|
||||||
fetch: function(): Promise {
|
fetch: function(): Promise {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
RCTReachability.getCurrentReachability(
|
RCTReachability.getCurrentReachability(
|
||||||
(resp) => {
|
function(resp) {
|
||||||
resolve(resp.network_reachability);
|
resolve(resp.network_reachability);
|
||||||
},
|
},
|
||||||
reject
|
reject
|
||||||
|
@ -93,53 +126,42 @@ if (RCTReachability) {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* == NetInfo.isConnected
|
|
||||||
*
|
|
||||||
* Available on all platforms. Asyncronously fetch a boolean to determine
|
|
||||||
* internet connectivity.
|
|
||||||
*
|
|
||||||
* ```
|
|
||||||
* NetInfo.isConnected.fetch().done((isConnected) => {
|
|
||||||
* console.log('First, is ' + (isConnected ? 'online' : 'offline'));
|
|
||||||
* });
|
|
||||||
* function handleFirstConnectivityChange(isConnected) {
|
|
||||||
* console.log('Then, is ' + (isConnected ? 'online' : 'offline'));
|
|
||||||
* NetInfo.isConnected.removeEventListener(
|
|
||||||
* 'change',
|
|
||||||
* handleFirstConnectivityChange
|
|
||||||
* );
|
|
||||||
* }
|
|
||||||
* NetInfo.isConnected.addEventListener(
|
|
||||||
* 'change',
|
|
||||||
* handleFirstConnectivityChange
|
|
||||||
* );
|
|
||||||
* ```
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
var _isConnectedSubscriptions = {};
|
var _isConnectedSubscriptions = {};
|
||||||
|
|
||||||
|
var _iosReachabilityIsConnected = function(
|
||||||
|
reachability: ReachabilityStateIOS
|
||||||
|
): bool {
|
||||||
|
return reachability !== 'none' &&
|
||||||
|
reachability !== 'unknown';
|
||||||
|
};
|
||||||
|
|
||||||
NetInfo.isConnected = {
|
NetInfo.isConnected = {
|
||||||
addEventListener: function (
|
addEventListener: function (
|
||||||
eventName: ChangeEventName,
|
eventName: ChangeEventName,
|
||||||
handler: Function
|
handler: Function
|
||||||
): void {
|
): void {
|
||||||
_isConnectedSubscriptions[handler] = (reachability) => {
|
_isConnectedSubscriptions[handler] = (reachability) => {
|
||||||
handler(reachability !== 'none');
|
handler(_iosReachabilityIsConnected(reachability));
|
||||||
};
|
};
|
||||||
NetInfo.reachabilityIOS.addEventListener(eventName, _isConnectedSubscriptions[handler]);
|
NetInfo.reachabilityIOS.addEventListener(
|
||||||
|
eventName,
|
||||||
|
_isConnectedSubscriptions[handler]
|
||||||
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
removeEventListener: function(
|
removeEventListener: function(
|
||||||
eventName: ChangeEventName,
|
eventName: ChangeEventName,
|
||||||
handler: Function
|
handler: Function
|
||||||
): void {
|
): void {
|
||||||
NetInfo.reachabilityIOS.removeEventListener(eventName, _isConnectedSubscriptions[handler]);
|
NetInfo.reachabilityIOS.removeEventListener(
|
||||||
|
eventName,
|
||||||
|
_isConnectedSubscriptions[handler]
|
||||||
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
fetch: function(): Promise {
|
fetch: function(): Promise {
|
||||||
return NetInfo.reachabilityIOS.fetch().then(
|
return NetInfo.reachabilityIOS.fetch().then(
|
||||||
(reachability) => reachability !== 'none'
|
(reachability) => _iosReachabilityIsConnected(reachability)
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue