import React, { useEffect, useState } from 'react'; import { CheckCircle, AlertCircle, Info, X, Sparkles } from 'lucide-react'; interface StatusDisplayProps { status: { message: string; type: 'success' | 'error' | 'info'; }; onDismiss: () => void; } export const StatusDisplay: React.FC = ({ status, onDismiss }) => { const [isVisible, setIsVisible] = useState(true); useEffect(() => { setIsVisible(true); const timer = setTimeout(() => { setIsVisible(false); setTimeout(onDismiss, 300); }, 6000); return () => clearTimeout(timer); }, [status, onDismiss]); const getStatusConfig = () => { switch (status.type) { case 'success': return { icon: CheckCircle, bgColor: 'bg-emerald-50/90 border-emerald-200/60', textColor: 'text-emerald-800', iconColor: 'text-emerald-600', accentColor: 'bg-emerald-500' }; case 'error': return { icon: AlertCircle, bgColor: 'bg-rose-50/90 border-rose-200/60', textColor: 'text-rose-800', iconColor: 'text-rose-600', accentColor: 'bg-rose-500' }; default: return { icon: Info, bgColor: 'bg-blue-50/90 border-blue-200/60', textColor: 'text-blue-800', iconColor: 'text-blue-600', accentColor: 'bg-blue-500' }; } }; const config = getStatusConfig(); const Icon = config.icon; return (
{/* Animated accent bar */}
{status.type === 'info' && ( )}
{status.message}
); };