import { useState } from "react"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { getFetch, httpBatchLink, loggerLink } from "@trpc/client"; import superjson from "superjson"; import { trpc } from "@/utils/trpc"; export const TrpcProvider = ({ children }: { children: React.ReactNode }) => { const [queryClient] = useState( () => new QueryClient({ defaultOptions: { queries: { staleTime: 5000 } }, }), ); const url = "/api/trpc"; const [trpcClient] = useState(() => trpc.createClient({ links: [ loggerLink({ enabled: () => true, }), httpBatchLink({ url, fetch: async (input, init?) => { const fetch = getFetch(); return fetch(input, { ...init, credentials: "include", }); }, }), ], transformer: superjson, }), ); return ( {children} ); };