// router.ts
import { createRouter as createTanStackRouter } from "@tanstack/react-router";
import { QueryClient } from "@tanstack/react-query";
import { routerWithQueryClient } from "@tanstack/react-router-with-query";
import { ConvexQueryClient } from "@convex-dev/react-query";
import { routeTree } from "./routeTree.gen";
import { ConvexAuthProvider } from "@convex-dev/auth/react";
export function createRouter() {
let CONVEX_URL = import.meta.env.VITE_CONVEX_URL_DEV;
const convexQueryClient = new ConvexQueryClient(CONVEX_URL);
const queryClient: QueryClient = new QueryClient({
defaultOptions: {
queries: {
queryKeyHashFn: convexQueryClient.hashFn(),
queryFn: convexQueryClient.queryFn(),
},
},
});
convexQueryClient.connect(queryClient);
const router = routerWithQueryClient(
createTanStackRouter({
routeTree,
defaultPreload: "intent",
defaultPendingMinMs: 0, //failed attempt to fix slow render
defaultPreloadStaleTime: 0, //failed attempt to fix slow render
defaultNotFoundComponent: () => <div>404</div>,
context: {
queryClient,
auth: undefined!,
},
Wrap: ({ children }) => {
return (
<ConvexAuthProvider client={convexQueryClient.convexClient}>
{children}
</ConvexAuthProvider>
);
},
}),
queryClient
);
return router;
}
declare module "@tanstack/react-router" {
interface Register {
router: ReturnType<typeof createRouter>;
}
}
// router.ts
import { createRouter as createTanStackRouter } from "@tanstack/react-router";
import { QueryClient } from "@tanstack/react-query";
import { routerWithQueryClient } from "@tanstack/react-router-with-query";
import { ConvexQueryClient } from "@convex-dev/react-query";
import { routeTree } from "./routeTree.gen";
import { ConvexAuthProvider } from "@convex-dev/auth/react";
export function createRouter() {
let CONVEX_URL = import.meta.env.VITE_CONVEX_URL_DEV;
const convexQueryClient = new ConvexQueryClient(CONVEX_URL);
const queryClient: QueryClient = new QueryClient({
defaultOptions: {
queries: {
queryKeyHashFn: convexQueryClient.hashFn(),
queryFn: convexQueryClient.queryFn(),
},
},
});
convexQueryClient.connect(queryClient);
const router = routerWithQueryClient(
createTanStackRouter({
routeTree,
defaultPreload: "intent",
defaultPendingMinMs: 0, //failed attempt to fix slow render
defaultPreloadStaleTime: 0, //failed attempt to fix slow render
defaultNotFoundComponent: () => <div>404</div>,
context: {
queryClient,
auth: undefined!,
},
Wrap: ({ children }) => {
return (
<ConvexAuthProvider client={convexQueryClient.convexClient}>
{children}
</ConvexAuthProvider>
);
},
}),
queryClient
);
return router;
}
declare module "@tanstack/react-router" {
interface Register {
router: ReturnType<typeof createRouter>;
}
}