// ErrorBoundary.tsx 'use client'; import React, { ReactNode, ErrorInfo, Component } from 'react'; interface ErrorBoundaryProps { children: ReactNode; fallback?: ReactNode; } interface ErrorBoundaryState { hasError: boolean; } class ErrorBoundary extends Component { constructor(props: ErrorBoundaryProps) { super(props); this.state = { hasError: false }; } static getDerivedStateFromError(_: Error): ErrorBoundaryState { // Update state so the next render will show the fallback UI return { hasError: true }; } componentDidCatch(error: Error, errorInfo: ErrorInfo): void { // You can log the error to an error reporting service console.error("Error caught by ErrorBoundary:", error, errorInfo); } render(): ReactNode { if (this.state.hasError) { // You can render any custom fallback UI return this.props.fallback ||
Something went wrong.
; } return this.props.children; } } export default ErrorBoundary;