import { Component, type ErrorInfo, type ReactNode } from 'react'; import log from 'electron-log/renderer'; type Props = { children: ReactNode; folder: string; row: number }; type State = { hasError: boolean; message?: string }; class AddonItemErrorBoundary extends Component { state: State = { hasError: false }; static getDerivedStateFromError(error: Error): State { return { hasError: true, message: error.message }; } componentDidCatch(error: Error, info: ErrorInfo) { log.error( `[AddonListItem] crash row=${this.props.row} folder=${this.props.folder}:`, error, info ); } render() { if (!this.state.hasError) return this.props.children; return (
Failed to render "{this.props.folder}": {this.state.message ?? 'unknown error'}
); } } export default AddonItemErrorBoundary;