38 lines
763 B
TypeScript
38 lines
763 B
TypeScript
"use client";
|
|
|
|
import {
|
|
isServer,
|
|
QueryClient,
|
|
QueryClientProvider,
|
|
} from "@tanstack/react-query";
|
|
import { PropsWithChildren } from "react";
|
|
|
|
function makeQueryClient() {
|
|
return new QueryClient({
|
|
defaultOptions: {
|
|
queries: {
|
|
staleTime: 60 * 1000,
|
|
},
|
|
},
|
|
});
|
|
}
|
|
|
|
let browserQueryClient: QueryClient | undefined = undefined;
|
|
|
|
function getQueryClient() {
|
|
if (isServer) {
|
|
return makeQueryClient();
|
|
} else {
|
|
if (!browserQueryClient) browserQueryClient = makeQueryClient();
|
|
return browserQueryClient;
|
|
}
|
|
}
|
|
|
|
export const QueryProvider = ({ children }: PropsWithChildren) => {
|
|
const queryClient = getQueryClient();
|
|
|
|
return (
|
|
<QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
|
|
);
|
|
};
|