import { Component, type ErrorInfo, type ReactNode } from 'react'; type Props = { children: ReactNode; label?: string }; type State = { error: Error | null }; export class ErrorBoundary extends Component { override state: State = { error: null }; static override getDerivedStateFromError(error: Error): State { return { error }; } override componentDidCatch(error: Error, info: ErrorInfo): void { // Log to Fastify server log via console.error so it appears in server output console.error(`[ErrorBoundary:${this.props.label ?? 'unknown'}]`, error, info.componentStack); } override render(): ReactNode { if (this.state.error) { return (

Something went wrong

{this.state.error.message}

); } return this.props.children; } }