UNPKG

@applicaster/quick-brick-core

Version:

Core package for Applicaster's Quick Brick App

44 lines (36 loc) 1.12 kB
import { logger } from "@applicaster/zapp-react-native-utils/logger"; import { platformSelect } from "@applicaster/zapp-react-native-utils/reactUtils"; import NetInfo from "@react-native-community/netinfo"; import { isConnectionInfoReady } from "./utils"; function platformShouldSkipOfflineSetup(env: string) { return ( env === "test" || platformSelect({ ios: false, android: false, default: true, }) ); } export function networkStatusReady(env = process.env.NODE_ENV) { return new Promise<void>((resolve) => { if (platformShouldSkipOfflineSetup(env)) { logger.info("skip waiting for network ready"); resolve(); return; } // eslint-disable-next-line prefer-const let unsubscribe; const listener = (netInfoState) => { if (isConnectionInfoReady(netInfoState)) { logger.info({ message: "net info ready", data: { timestamp: new Date(Date.now()).toISOString() }, }); resolve(netInfoState); unsubscribe?.(); } }; unsubscribe = NetInfo.addEventListener(listener); }); }