import { createElement } from "react"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { createRouter, RouterHistory } from "@tanstack/react-router"; import { AppAtomRegistryProvider } from "./rpc/atomRegistry"; import { routeTree } from "./routeTree.gen"; export function getRouter(history: RouterHistory) { const queryClient = new QueryClient(); return createRouter({ routeTree, history, context: { queryClient, }, Wrap: ({ children }) => createElement( QueryClientProvider, { client: queryClient }, createElement(AppAtomRegistryProvider, undefined, children), ), }); } export type AppRouter = ReturnType; declare module "@tanstack/react-router" { interface Register { router: AppRouter; } }