import { isRouteErrorResponse, Links, Meta, Outlet, Scripts, ScrollRestoration, } from "react-router"; import type { Route } from "./+types/root"; import { AuthProvider } from "./context/AuthContext"; // Monaco 离线加载配置:必须在任何 挂载前执行,否则 loader 会默认 // 从 jsDelivr CDN 拉取 monaco,离线环境下编辑器初始化失败、永远 loading。 // `.client` 后缀:该模块只进客户端 bundle,SPA 构建的 server 预渲染阶段 // 会被替换成空桩,避免 monaco-editor ESM(依赖浏览器全局)在 Node 里崩掉。 import "./lib/monacoSetup.client"; import "./app.css"; export const links: Route.LinksFunction = () => []; export function Layout({ children }: { children: React.ReactNode }) { return ( {children} ); } export default function App() { return ( ); } export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) { let message = "页面加载失败"; let details = "系统发生了未预期的错误。"; let stack: string | undefined; if (isRouteErrorResponse(error)) { message = error.status === 404 ? "404" : "请求失败"; details = error.status === 404 ? "没有找到请求的页面。" : error.statusText || details; } else if (import.meta.env.DEV && error && error instanceof Error) { details = error.message; stack = error.stack; } return (

{message}

{details}

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