"use client" import { Component, type ErrorInfo, type ReactNode } from "react" interface ErrorBoundaryProps { fallback: ReactNode children: ReactNode } interface ErrorBoundaryState { hasError: boolean } export class ErrorBoundary extends Component { constructor(props: ErrorBoundaryProps) { super(props) this.state = { hasError: false } } static getDerivedStateFromError(_: Error): ErrorBoundaryState { return { hasError: true } } componentDidCatch(error: Error, errorInfo: ErrorInfo) { console.error("Error caught by ErrorBoundary:", error, errorInfo) } render() { if (this.state.hasError) { return this.props.fallback } return this.props.children } }