Yassine Mhirsi
fixed typescript adn added logout
2251e03
import React, { Component } from 'react';
type State = {
hasError: boolean;
error: Error | null;
};
class ErrorBoundary extends Component {
state: State = { hasError: false, error: null };
static getDerivedStateFromError(error: Error): State {
return { hasError: true, error };
}
componentDidCatch(error: Error, errorInfo: any) {
console.error('ErrorBoundary caught an error:', error, errorInfo);
}
render() {
if (this.state.hasError) {
return (
<div className="flex min-h-screen items-center justify-center bg-gray-50 px-4">
<div className="text-center">
<h1 className="mb-4 text-2xl font-bold text-gray-900">
Something went wrong
</h1>
<p className="mb-4 text-gray-600">
{this.state.error?.message || 'An unexpected error occurred'}
</p>
<button
onClick={() => {
this.setState({ hasError: false, error: null });
window.location.reload();
}}
className="rounded bg-blue-600 px-4 py-2 text-white hover:bg-blue-700"
>
Reload Page
</button>
</div>
</div>
);
}
return this.props.children;
}
}
export default ErrorBoundary;