import { isRouteErrorResponse, Links, Meta, Outlet, Scripts, ScrollRestoration, } from "react-router"; import type { Route } from "./+types/root"; import "./index.css"; import Header from "./components/header"; import { ThemeProvider } from "./components/theme-provider"; import { Toaster } from "./components/ui/sonner"; {{#if (eq backend "convex")}} import { ConvexReactClient } from "convex/react"; {{#if (eq auth "clerk")}} import { ClerkProvider, useAuth } from "@clerk/clerk-react"; import { ConvexProviderWithClerk } from "convex/react-clerk"; {{else}} import { ConvexProvider } from "convex/react"; {{/if}} {{else}} {{#unless (eq api "none")}} import { QueryClientProvider } from "@tanstack/react-query"; import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; {{#if (eq api "orpc")}} import { queryClient } from "./utils/orpc"; {{/if}} {{#if (eq api "trpc")}} import { queryClient } from "./utils/trpc"; {{/if}} {{/unless}} {{/if}} export const links: Route.LinksFunction = () => [ { rel: "preconnect", href: "https://fonts.googleapis.com" }, { rel: "preconnect", href: "https://fonts.gstatic.com", crossOrigin: "anonymous" }, { rel: "stylesheet", href: "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap", }, ]; export function Layout({ children }: { children: React.ReactNode }) { return ( {children} ); } {{#if (eq backend "convex")}} export default function App() { const convex = new ConvexReactClient( import.meta.env.VITE_CONVEX_URL as string, ); {{#if (eq auth "clerk")}} return (
); {{else}} return (
); {{/if}} } {{else if (eq api "orpc")}} export default function App() { return (
); } {{else if (eq api "trpc")}} export default function App() { return (
); } {{else}} export default function App() { return (
); } {{/if}} export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) { let message = "Oops!"; let details = "An unexpected error occurred."; let stack: string | undefined; if (isRouteErrorResponse(error)) { message = error.status === 404 ? "404" : "Error"; details = error.status === 404 ? "The requested page could not be found." : error.statusText || details; } else if (import.meta.env.DEV && error && error instanceof Error) { details = error.message; stack = error.stack; } return (

{message}

{details}

{stack && (
          {stack}
        
)}
); }