import { useState, useEffect, useRef } from "react"; export default function SaveToast({ message, onDismiss }) { const [exiting, setExiting] = useState(false); const timerRef = useRef(null); const exitRef = useRef(null); useEffect(() => { if (!message?.type) return; setExiting(false); timerRef.current = setTimeout(() => setExiting(true), 3000); return () => { if (timerRef.current) clearTimeout(timerRef.current); }; }, [message?.type, message?.text]); useEffect(() => { if (!exiting) return; exitRef.current = setTimeout(() => onDismiss(), 300); return () => { if (exitRef.current) clearTimeout(exitRef.current); }; }, [exiting, onDismiss]); if (!message?.type) return null; const isSuccess = message.type === "success"; const SuccessIcon = () => ( ); const ErrorIcon = () => ( ); return (
{message.text}