import React, { useEffect } from 'react'; import { CheckCircle, AlertCircle, X } from 'lucide-react'; export interface ToastMessage { id: string; type: 'success' | 'error' | 'info'; message: string; } interface ToastProps { toasts: ToastMessage[]; onRemove: (id: string) => void; } const ToastContainer: React.FC = ({ toasts, onRemove }) => { return (
{toasts.map((toast) => ( ))}
); }; const ToastItem: React.FC<{ toast: ToastMessage; onRemove: (id: string) => void }> = ({ toast, onRemove }) => { useEffect(() => { const timer = setTimeout(() => { onRemove(toast.id); }, 3000); return () => clearTimeout(timer); }, [toast.id, onRemove]); const getStyles = () => { switch (toast.type) { case 'success': return 'bg-emerald-50 border-emerald-100 text-emerald-700'; case 'error': return 'bg-red-50 border-red-100 text-red-700'; default: return 'bg-indigo-50 border-indigo-100 text-indigo-700'; } }; const getIcon = () => { switch (toast.type) { case 'success': return ; case 'error': return ; default: return ; } }; return (
{getIcon()}

{toast.message}

); }; export default ToastContainer;