import { createRouter as createTanStackRouter } from '@tanstack/react-router'
import { setupRouterSsrQueryIntegration } from '@tanstack/react-router-ssr-query'
import type { ReactNode } from 'react'
import { ThemeProvider } from './components/theme-provider'
import { routeTree } from './routeTree.gen'
import { createQueryClient } from './trpc/query-client'
import { createServerHelpers, TRPCReactProvider } from './trpc/react'
export function getRouter() {
const queryClient = createQueryClient()
const trpc = createServerHelpers(queryClient)
const router = createTanStackRouter({
routeTree,
context: { queryClient, trpc },
scrollRestoration: true,
defaultPreload: 'intent',
defaultPreloadStaleTime: 0,
Wrap: (props: { children: ReactNode }) => (
{props.children}
),
})
setupRouterSsrQueryIntegration({
router,
queryClient,
wrapQueryClient: false,
})
return router
}
declare module '@tanstack/react-router' {
interface Register {
router: ReturnType
}
}