import { MutationCache, QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { isRouteErrorResponse, Links, Meta, Outlet, Scripts, ScrollRestoration } from "react-router"; import type { Route } from "./+types/root"; import "./app.css"; import { Toaster } from "./client/components/ui/sonner"; import { useServerEvents } from "./client/hooks/use-server-events"; import { client } from "./client/api-client/client.gen"; client.setConfig({ baseUrl: "/", }); 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=Google+Sans+Code:ital,wght@0,300..800;1,300..800&display=swap", }, ]; const queryClient = new QueryClient({ mutationCache: new MutationCache({ onSuccess: () => { queryClient.invalidateQueries(); }, onError: (error) => { console.error("Mutation error:", error); queryClient.invalidateQueries(); }, }), }); export function Layout({ children }: { children: React.ReactNode }) { return ( {children} ); } export default function App() { useServerEvents(); return ; } 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}
				
)}
); }