import * as Network from "expo-network"; import { onlineManager } from "@tanstack/react-query"; function isOnline({ isConnected, isInternetReachable, }: Pick) { if (isConnected === false) return false; if (isInternetReachable === false) return false; return true; } let configured = false; export function configureReactQueryOnlineManager() { if (configured) return; configured = true; void Network.getNetworkStateAsync() .then((state) => { onlineManager.setOnline(isOnline(state)); }) .catch(() => { onlineManager.setOnline(true); }); onlineManager.setEventListener((setOnline) => { const subscription = Network.addNetworkStateListener((state) => { setOnline(isOnline(state)); }); return () => subscription.remove(); }); }