@react-native-community/netinfo
Version:
React Native Network Info API for iOS & Android
42 lines (35 loc) • 1.48 kB
text/typescript
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
import {NativeEventEmitter, NativeModules} from 'react-native';
import {NetInfoNativeModule} from './privateTypes';
const RNCNetInfo: NetInfoNativeModule | undefined = NativeModules.RNCNetInfo;
// Produce an error if we don't have the native module
if (!RNCNetInfo) {
throw new Error(`@react-native-community/netinfo: NativeModule.RNCNetInfo is null. To fix this issue try these steps:
• Run \`react-native link @react-native-community/netinfo\` in the project root.
• Rebuild and re-run the app.
• If you are using CocoaPods on iOS, run \`pod install\` in the \`ios\` directory and then rebuild and re-run the app. You may also need to re-open Xcode to get the new pods.
If none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-community/react-native-netinfo`);
}
/**
* We export the native interface in this way to give easy shared access to it between the
* JavaScript code and the tests
*/
let nativeEventEmitter: NativeEventEmitter | null = null;
export default {
...RNCNetInfo,
get eventEmitter(): NativeEventEmitter {
if (!nativeEventEmitter) {
/// @ts-ignore
nativeEventEmitter = new NativeEventEmitter(RNCNetInfo);
}
/// @ts-ignore
return nativeEventEmitter;
},
};