import React from 'react' import { logger } from '../lib/logger.js' export default class ErrorBoundary extends React.Component { constructor(props) { super(props) this.state = { hasError: false, error: null } } static getDerivedStateFromError(error) { return { hasError: true, error } } componentDidCatch(error, errorInfo) { logger.error('React component error', { stack: (error?.stack || '') + '\n\nComponent stack:\n' + (errorInfo?.componentStack || ''), }) } render() { if (this.state.hasError) { return (
已經將錯誤自動回報俾 IT狗。請 reload 或者返回上一頁。
{this.state.error?.message && (
{this.state.error.message}
)}