'use client'; import React, { useEffect, useState } from 'react'; export type ToastType = 'success' | 'error' | 'info'; export interface ToastProps { id: string; message: string; type: ToastType; duration?: number; onClose: (id: string) => void; } export const Toast: React.FC = ({ id, message, type, duration = 3000, onClose }) => { const [isExiting, setIsExiting] = useState(false); useEffect(() => { if (duration > 0) { const timer = setTimeout(() => { handleClose(); }, duration); return () => clearTimeout(timer); } }, [duration]); const handleClose = () => { setIsExiting(true); setTimeout(() => { onClose(id); }, 300); }; const iconMap: Record = { success: 'check_circle', error: 'error', info: 'info', }; return (
{iconMap[type]} {message}
); };