59 lines
1.5 KiB
TypeScript
59 lines
1.5 KiB
TypeScript
import { Toaster } from "@minmon/ui/components/sonner";
|
|
import type { QueryClient } from "@tanstack/react-query";
|
|
import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
|
|
import { HeadContent, Outlet, createRootRouteWithContext } from "@tanstack/react-router";
|
|
import { TanStackRouterDevtools } from "@tanstack/react-router-devtools";
|
|
|
|
import Header from "@/components/header";
|
|
import { ThemeProvider } from "@/components/theme-provider";
|
|
import type { trpc } from "@/utils/trpc";
|
|
|
|
import "../index.css";
|
|
|
|
export interface RouterAppContext {
|
|
trpc: typeof trpc;
|
|
queryClient: QueryClient;
|
|
}
|
|
|
|
export const Route = createRootRouteWithContext<RouterAppContext>()({
|
|
component: RootComponent,
|
|
head: () => ({
|
|
meta: [
|
|
{
|
|
title: "minmon",
|
|
},
|
|
{
|
|
name: "description",
|
|
content: "minmon is a web application",
|
|
},
|
|
],
|
|
links: [
|
|
{
|
|
rel: "icon",
|
|
href: "/favicon.ico",
|
|
},
|
|
],
|
|
}),
|
|
});
|
|
|
|
function RootComponent() {
|
|
return (
|
|
<>
|
|
<HeadContent />
|
|
<ThemeProvider
|
|
attribute="class"
|
|
defaultTheme="dark"
|
|
disableTransitionOnChange
|
|
storageKey="vite-ui-theme"
|
|
>
|
|
<div className="grid grid-rows-[auto_1fr] h-svh">
|
|
<Header />
|
|
<Outlet />
|
|
</div>
|
|
<Toaster richColors />
|
|
</ThemeProvider>
|
|
<TanStackRouterDevtools position="bottom-left" />
|
|
<ReactQueryDevtools position="bottom" buttonPosition="bottom-right" />
|
|
</>
|
|
);
|
|
}
|