34 lines · 857 B · TypeScript
RawDownload
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<Parameters<typeof createRouter>[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<typeof getRouter>; declare module "@tanstack/react-router" {  interface Register {    router: AppRouter;  }}