init
This commit is contained in:
37
src/app/router.tsx
Normal file
37
src/app/router.tsx
Normal file
@@ -0,0 +1,37 @@
|
||||
import { QueryClient } from '@tanstack/react-query'
|
||||
import { createRouter as createTanStackRouter } from '@tanstack/react-router'
|
||||
import { routerWithQueryClient } from '@tanstack/react-router-with-query'
|
||||
import { routeTree } from './routeTree.gen'
|
||||
import { DefaultCatchBoundary } from '../components/DefaultCatchBoundary'
|
||||
import { defaultHeaderConfig } from '@/features/core/hooks/use-header-config'
|
||||
|
||||
export function createRouter() {
|
||||
const queryClient = new QueryClient({
|
||||
defaultOptions: {
|
||||
queries: {
|
||||
staleTime: 60 * 1000, // 60 seconds
|
||||
gcTime: 5 * 60 * 1000, // 5 minutes
|
||||
refetchOnWindowFocus: false,
|
||||
refetchOnReconnect: 'always',
|
||||
retry: 3,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
return routerWithQueryClient(
|
||||
createTanStackRouter({
|
||||
routeTree,
|
||||
context: { queryClient, auth: undefined!, header: defaultHeaderConfig, refresh: { toRefresh: [] } },
|
||||
defaultPreload: 'intent',
|
||||
defaultErrorComponent: DefaultCatchBoundary,
|
||||
scrollRestoration: true,
|
||||
}),
|
||||
queryClient,
|
||||
)
|
||||
}
|
||||
|
||||
declare module '@tanstack/react-router' {
|
||||
interface Register {
|
||||
router: ReturnType<typeof createRouter>
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user