UNPKG

@wordpress/compose

Version:
58 lines (55 loc) 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useNetworkConnectivity; var _element = require("@wordpress/element"); var _reactNativeBridge = require("@wordpress/react-native-bridge"); /** * WordPress dependencies */ /** * @typedef {Object} NetworkInformation * * @property {boolean} [isConnected] Whether the device is connected to a network. */ /** * Returns the current network connectivity status provided by the native bridge. * * @example * * ```jsx * const { isConnected } = useNetworkConnectivity(); * ``` * * @return {NetworkInformation} Network information. */ function useNetworkConnectivity() { const [isConnected, setIsConnected] = (0, _element.useState)(true); (0, _element.useEffect)(() => { let isCurrent = true; (0, _reactNativeBridge.requestConnectionStatus)(isBridgeConnected => { if (!isCurrent) { return; } setIsConnected(isBridgeConnected); }); return () => { isCurrent = false; }; }, []); (0, _element.useEffect)(() => { const subscription = (0, _reactNativeBridge.subscribeConnectionStatus)(({ isConnected: isBridgeConnected }) => { setIsConnected(isBridgeConnected); }); return () => { subscription.remove(); }; }, []); return { isConnected }; } //# sourceMappingURL=index.native.js.map