"use client"; import { useEffect, useState } from "react"; import { IoAlertCircle, IoClose, IoCheckmarkCircle } from "react-icons/io5"; type ErrorToastProps = { message: string; onClose: () => void; duration?: number; variant?: "error" | "success"; }; export default function ErrorToast({ message, onClose, duration = 4000, variant = "error", }: ErrorToastProps) { const [isVisible, setIsVisible] = useState(true); useEffect(() => { const timer = setTimeout(() => { setIsVisible(false); setTimeout(onClose, 300); // Wait for fade-out animation to complete }, duration); return () => clearTimeout(timer); }, [duration, onClose]); const handleClose = () => { setIsVisible(false); setTimeout(onClose, 300); }; const isSuccess = variant === "success"; return (
{isSuccess ? ( ) : ( )} {message}
); }