import { useThemePreference } from './hooks/useThemePreference'; import { Component, type ErrorInfo, type ReactNode } from 'react'; import { Button } from '../components/ui'; export class ErrorBoundary extends Component<{ children: ReactNode }, { error?: Error }> { state: { error?: Error } = {}; static getDerivedStateFromError(error: Error) { return { error }; } componentDidCatch(error: Error, info: ErrorInfo) { console.error('React fatal error', error, info); } render() { return this.state.error ? : this.props.children; } } function FatalError({ error }: { error: Error }) { const [theme] = useThemePreference(); return (

界面发生致命错误

          {error.message}
        

重新加载会丢失当前浏览器会话中未保存的修改。

); }