import type { QueryClient } from '@tanstack/react-query'
import { useSuspenseQuery } from '@tanstack/react-query'
import { createRootRouteWithContext, Outlet } from '@tanstack/react-router'
import { lazy, Suspense } from 'react'
import { Helmet } from 'react-helmet-async'
import { ErrorState } from '~/components/error-state'
import { Shell } from '~/components/layout/shell'
import { NotFound } from '~/components/not-found'
import { globalsQuery, menusQuery } from '~/lib/queries'
const TanStackRouterDevtools = import.meta.env.PROD
? () => null
: lazy(() => import('@tanstack/react-router-devtools').then((m) => ({ default: m.TanStackRouterDevtools })))
const ReactQueryDevtools = import.meta.env.PROD
? () => null
: lazy(() => import('@tanstack/react-query-devtools').then((m) => ({ default: m.ReactQueryDevtools })))
export const Route = createRootRouteWithContext<{ queryClient: QueryClient }>()({
loader: async ({ context: { queryClient } }) => {
await Promise.all([queryClient.ensureQueryData(globalsQuery), queryClient.ensureQueryData(menusQuery)])
},
component: RootComponent,
notFoundComponent: () => (
),
errorComponent: ({ error, reset }) => (
),
})
function RootComponent() {
const { data: globals } = useSuspenseQuery(globalsQuery)
return (
<>
>
)
}