import { Component, type ErrorInfo, type ReactNode } from 'react'; import { useI18n } from './i18n'; type Props = { children: ReactNode }; type State = { error: Error | null }; export class AppErrorBoundary extends Component { state: State = { error: null }; static getDerivedStateFromError(error: Error): State { return { error }; } componentDidCatch(error: Error, info: ErrorInfo) { console.error('EasyCLIProxyAPI 渲染异常', error, info.componentStack); } render() { if (!this.state.error) return this.props.children; return ; } } function AppErrorFallback({ error }: { error: Error }) { const { t } = useI18n(); return (
{t('error.render.title')} {error.message || t('error.unknown')}
); }