///
import type { ReactNode } from "react"
import { Outlet, HeadContent, Scripts, createRootRouteWithContext } from "@tanstack/react-router"
import { I18nProvider, IntlProvider } from "src/core/context/I18nContext"
import { RootMantineProvider } from "src/core/theme/shared/MantineProvider"
import { ReactQueryDevTools } from "src/components/shared/ReactQueryDevtools"
import { ColorSchemeScript } from "@mantine/core"
import { TRPCOptionsProxy } from "@trpc/tanstack-react-query"
import { QueryClient } from "@tanstack/react-query"
import type { InternalApiRouter as RootRouter } from "@mrb/internal-api/client"
import "src/core/extensions/dayjs"
import globalCss from "src/core/theme/shared/global.css?url"
import mantineCore from "@mantine/core/styles.css?url"
import mantineSpotlight from "@mantine/spotlight/styles.css?url"
import mantineNotifications from "@mantine/notifications/styles.css?url"
import mantineDates from "@mantine/dates/styles.css?url"
import mantineNprogress from "@mantine/nprogress/styles.css?url"
import mantineTiptap from "@mantine/tiptap/styles.css?url"
import mantineCharts from "@mantine/charts/styles.css?url"
import feedback from "@getmarvia/feedback/dist/index.css?url"
export const Route = createRootRouteWithContext<{
queryClient: QueryClient
trpc: TRPCOptionsProxy
}>()({
head: () => ({
meta: [
{
charSet: "utf-8",
},
{
name: "viewport",
content: "width=device-width, initial-scale=1",
},
{
title: "TanStack Start Starter",
},
{
rel: "stylesheet",
href: mantineCore,
},
{
rel: "stylesheet",
href: mantineSpotlight,
},
{
rel: "stylesheet",
href: mantineNotifications,
},
{
rel: "stylesheet",
href: mantineDates,
},
{
rel: "stylesheet",
href: mantineNprogress,
},
{
rel: "stylesheet",
href: mantineTiptap,
},
{
rel: "stylesheet",
href: mantineCharts,
},
{
rel: "stylesheet",
href: feedback,
},
{
rel: "stylesheet",
href: globalCss,
},
],
}),
pendingComponent: () => Loading...
,
shellComponent: RootComponent,
})
function RootDocument({ children }: Readonly<{ children: ReactNode }>) {
return (
{/* We don't serve a favicon the traditional way. Include an empty icon so the browser doesn't make a useless `/favicon.ico` request */}
{children}
)
}
// function DefaultSEO() {
// const companyProductBaseData = useCompanyProductBaseDataQuery()
// return (
//
// )
// }
function RootComponent() {
return (
{/* */}
{/* // onError={(error) => captureException(error)} */}
{/* }> */}
{/* */}
{/* */}
{/* */}
{/* */}
{/* */}
{/* */}
{/* */}
{/* */}
{/* */}
{/* */}
{/* */}
{/* */}
{/* */}
{/* */}
{/* */}
{/* */}
{/* */}
{/* */}
{/* */}
)
}