BlueFin / frontend /src /components /ErrorBoundary.jsx
vedanshmadan21's picture
Deploy Intelli-Credit to HuggingFace Spaces
7f6dd09
import React from "react";
import { AlertTriangle } from "lucide-react";
export default class ErrorBoundary extends React.Component {
constructor(props) {
super(props);
this.state = { hasError: false, errorMessage: "" };
}
static getDerivedStateFromError(error) {
return { hasError: true, errorMessage: error.message };
}
componentDidCatch(error, info) {
console.error(error, info);
}
render() {
if (this.state.hasError) {
return (
<div
className="grid-bg page flex flex-col items-center justify-center"
style={{ padding: "32px", textAlign: "center", gap: "20px" }}
>
<AlertTriangle size={48} style={{ color: "var(--danger)" }} strokeWidth={1.5} />
<h1 style={{ fontSize: "20px", fontWeight: 600 }}>Something went wrong</h1>
<p style={{ color: "var(--text-muted)", fontSize: "14px", maxWidth: "400px" }}>
{this.state.errorMessage}
</p>
<div className="flex gap-md">
<button className="btn btn-secondary btn-sm" onClick={() => window.history.back()}>
← Go Back
</button>
<button className="btn btn-primary btn-sm" onClick={() => this.setState({ hasError: false, errorMessage: "" })}>
Try Again
</button>
</div>
</div>
);
}
return this.props.children;
}
}