import { isRouteErrorResponse, Link, Links, Meta, Outlet, Scripts, ScrollRestoration, useParams, } from 'react-router'; import { RootProvider } from 'fumadocs-ui/provider/react-router'; import type { Route } from './+types/root'; import './app.css'; import { defineI18nUI } from 'fumadocs-ui/i18n'; import { i18n } from './lib/i18n'; const { provider } = defineI18nUI(i18n, { translations: { en: { displayName: 'English', }, zh: { displayName: '中文', search: '查找文档', }, }, }); 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 }) { const { lang = i18n.defaultLanguage } = useParams(); return ( {children} ); } export default function App() { 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}

Sorry, we couldn't find the page you're looking for. It might have been moved or deleted.

Return Home / 返回首页 {stack && (

Error Stack

            {stack}
          
)}
); }