import { persister } from "@/lib/mmkv";
import { QueryClient, onlineManager } from "@tanstack/react-query";
import { PersistQueryClientProvider } from "@tanstack/react-query-persist-client";
import { useEffect, type PropsWithChildren } from "react";
import { useReactQueryDevTools } from "@dev-plugins/react-query";
import NetInfo from "@react-native-community/netinfo";
const queryClient = new QueryClient({
staleTime: Number.POSITIVE_INFINITY,
gcTime: Number.POSITIVE_INFINITY,
export function QueryProvider({ children }: PropsWithChildren) {
useReactQueryDevTools(queryClient);
return NetInfo.addEventListener((state) => {
const status = !!state.isConnected;
onlineManager.setOnline(status);
<PersistQueryClientProvider
.then(() => queryClient.invalidateQueries())
persistOptions={{ persister, maxAge: Number.POSITIVE_INFINITY }}
</PersistQueryClientProvider>