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