mirror of
https://github.com/ostris/ai-toolkit.git
synced 2026-02-07 05:59:57 +00:00
41 lines
1.0 KiB
TypeScript
41 lines
1.0 KiB
TypeScript
// 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<ErrorBoundaryProps, ErrorBoundaryState> {
|
|
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 || <div>Something went wrong.</div>;
|
|
}
|
|
|
|
return this.props.children;
|
|
}
|
|
}
|
|
|
|
export default ErrorBoundary; |