Files
cnb-center/src/routes/__root.tsx
2026-03-05 22:02:45 +08:00

40 lines
1.4 KiB
TypeScript

import { LayoutMain } from '@/pages/auth/modules/BaseHeader';
import { Outlet, createRootRoute } from '@tanstack/react-router'
import { TanStackRouterDevtools } from '@tanstack/react-router-devtools'
import { Toaster } from '@/components/ui/sonner'
import { AuthProvider } from '@/pages/auth'
import { TooltipProvider } from '@/components/ui/tooltip'
import { useLayoutStore } from '@/pages/auth/store';
import { useShallow } from 'zustand/shallow';
import { stackQueryClient } from '@/modules/query'
import { QueryClientProvider } from '@tanstack/react-query'
import clsx from 'clsx';
export const Route = createRootRoute({
component: RootComponent,
})
function RootComponent() {
const store = useLayoutStore(useShallow(state => ({
showBaseHeader: state.showBaseHeader,
})));
return (
<QueryClientProvider client={stackQueryClient}>
<div className='h-full overflow-hidden'>
<LayoutMain />
<AuthProvider mustLogin={true}>
<TooltipProvider>
<main className={clsx('overflow-auto scrollbar', {
'h-[calc(100%-3rem)]': store.showBaseHeader,
'h-full': !store.showBaseHeader,
})}>
<Outlet />
</main>
</TooltipProvider>
</AuthProvider>
<TanStackRouterDevtools position="bottom-right" />
<Toaster />
</div>
</QueryClientProvider>
)
}