Add 'apps/mobile/' from commit '5fa30f365f21531094cd4d2045042bb4f1370ac3'
git-subtree-dir: apps/mobile git-subtree-mainline:86f8987dffgit-subtree-split:5fa30f365f
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
import * as Network from "expo-network";
|
||||
import { onlineManager } from "@tanstack/react-query";
|
||||
|
||||
function isOnline({
|
||||
isConnected,
|
||||
isInternetReachable,
|
||||
}: Pick<Network.NetworkState, "isConnected" | "isInternetReachable">) {
|
||||
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();
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user