"use client"; import { TooltipProvider } from "@rallly/ui/tooltip"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { createTRPCReact } from "@trpc/react-query"; import { domMax, LazyMotion } from "framer-motion"; import { SessionProvider } from "next-auth/react"; import { useState } from "react"; import { UserProvider } from "@/components/user-provider"; import { I18nProvider } from "@/i18n/client"; import { trpcConfig } from "@/trpc/client/config"; import { AppRouter } from "@/trpc/routers"; import { ConnectedDayjsProvider } from "@/utils/dayjs"; export const trpc = createTRPCReact({ unstable_overrides: { useMutation: { async onSuccess(opts) { await opts.originalFn(); await opts.queryClient.invalidateQueries(); }, }, }, }); export function Providers(props: { children: React.ReactNode }) { const [queryClient] = useState(() => new QueryClient()); const [trpcClient] = useState(() => trpc.createClient(trpcConfig)); return ( {props.children} ); }