one
Version:
One is a React framework for web, iOS, and Android apps.
51 lines (48 loc) • 1.32 kB
JavaScript
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