Xenova's picture
Xenova HF Staff
Upload application
59c3ada verified
import type React from "react";
import { AlertTriangle } from "lucide-react";
import NeoButton from "./NeoButton";
interface ErrorScreenProps {
isVisible: boolean;
error: string | null;
onRetry: () => void;
}
const ErrorScreen: React.FC<ErrorScreenProps> = ({ isVisible, error, onRetry }) => {
const transitionClass = isVisible ? "opacity-100" : "opacity-0 -translate-y-10 pointer-events-none";
return (
<div
className={`absolute inset-0 flex flex-col items-center justify-center transition-all duration-700 ease-in-out ${transitionClass}`}
>
<div className="text-center p-4 max-w-2xl">
<h1 className="text-4xl md:text-6xl font-black tracking-tighter mb-6 animate-sway text-red-500">
<AlertTriangle className="inline-block h-16 w-16 md:h-24 md:w-24 mb-4" />
<br />
An Error Occurred
</h1>
{error && (
<div className="bg-red-100 border-2 border-red-400 text-red-700 px-4 py-3 rounded-lg relative mb-8 text-left">
<strong className="font-bold">Details:</strong>
<span className="block sm:inline ml-2">{error}</span>
</div>
)}
<NeoButton onClick={onRetry} className="text-2xl px-8 py-4" variant="secondary">
Try Again
</NeoButton>
</div>
</div>
);
};
export default ErrorScreen;