import { useEffect } from "react"; import "./Toast.css"; type ToastVariant = "info" | "success" | "error" | "warning"; const variantIcons: Record = { success: "✓", error: "✕", warning: "⚠", info: "ℹ", }; interface ToastProps { isVisible: boolean; title?: string; message?: string; variant?: ToastVariant; position?: string; onClose?: () => void; duration?: number; } const Toast = ({ isVisible, title, message, variant = "info", position = "top-right", onClose, duration = 4000, }: ToastProps) => { useEffect(() => { if (!isVisible || !duration) return; const timer = setTimeout(() => onClose?.(), duration); return () => clearTimeout(timer); }, [isVisible, duration, onClose]); if (!isVisible) return null; return (
{variantIcons[variant]}
{title &&
{title}
}
{message}
); }; export default Toast;