import React, { useEffect } from 'react'; import { X, CheckCircle, AlertCircle, Info } from 'lucide-react'; export type ToastType = 'success' | 'error' | 'info'; export interface ToastMessage { id: string; type: ToastType; message: string; } interface ToastProps { toasts: ToastMessage[]; removeToast: (id: string) => void; } export const ToastContainer: React.FC = ({ toasts, removeToast }) => { return (
{toasts.map((toast) => ( ))}
); }; const ToastItem: React.FC<{ toast: ToastMessage; removeToast: (id: string) => void }> = ({ toast, removeToast }) => { useEffect(() => { const timer = setTimeout(() => { removeToast(toast.id); }, 4000); return () => clearTimeout(timer); }, [toast.id, removeToast]); const styles = { success: 'bg-green-600 text-white', error: 'bg-red-600 text-white', info: 'bg-blue-600 text-white', }; const icons = { success: , error: , info: , }; return (
{icons[toast.type]}
{toast.message}
); };