UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

51 lines (48 loc) • 1.32 kB
import { useEffect, useState } from "react"; import { NitroModules } from "react-native-nitro-modules"; import { rethrowNativeError } from "../nativeError.native.js"; import { assertStateListener } from "./validate.native.js"; var hybrid; function native() { hybrid !== null && hybrid !== void 0 ? hybrid : hybrid = NitroModules.createHybridObject("OneNetwork"); return hybrid; } function getState() { return native().getState().catch(rethrowNativeError); } function addStateListener(listener) { assertStateListener(listener); var remove = native().addStateListener(listener); return { remove: function remove1() { return remove(); } }; } function useNetworkState() { var [state, setState] = useState({ type: "unknown", isConnected: false, isInternetReachable: false }); useEffect(function() { var active = true; var sawEvent = false; getState().then(function(next) { if (active && !sawEvent) setState(next); }).catch(function() {}); var subscription = addStateListener(function(next) { sawEvent = true; if (active) setState(next); }); return function() { active = false; subscription.remove(); }; }, []); return state; } var Network = Object.freeze({ getState, addStateListener }); export { Network, useNetworkState }; //# sourceMappingURL=index.native.js.map