Spaces:
Sleeping
Sleeping
| import React from "react"; | |
| interface ErrorBoundaryProps { | |
| fallback: React.ReactNode; | |
| children: React.ReactNode; | |
| } | |
| interface ErrorBoundaryState { | |
| hasError: boolean; | |
| } | |
| export default class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> { | |
| state: ErrorBoundaryState = { hasError: false }; | |
| static getDerivedStateFromError(): ErrorBoundaryState { | |
| return { hasError: true }; | |
| } | |
| componentDidCatch(error: unknown, errorInfo: unknown) { | |
| // Log the error for diagnostics | |
| console.error("ErrorBoundary caught:", error, errorInfo); | |
| } | |
| render() { | |
| if (this.state.hasError) { | |
| return this.props.fallback; | |
| } | |
| return this.props.children; | |
| } | |
| } | |