import { CreateAnimation, IonButton, IonCol, IonIcon, IonLabel, IonRow, } from "@ionic/react"; import { closeCircleOutline } from "ionicons/icons"; import { useEffect } from "react"; import { useState } from "react"; const ReplyTo = ({ contact, replyToMessage = false, replyToAnimationRef, setReplyToMessage, messageSent, }) => { const [cancellingReplyTo, setCancellingReplyTo] = useState(false); useEffect(() => { messageSent && cancelReplyTo(); // eslint-disable-next-line react-hooks/exhaustive-deps }, [messageSent]); const slideAnimation = { property: "transform", fromValue: "translateY(100px)", toValue: "translateY(0px)", }; const replyToAnimation = { duration: 300, direction: !cancellingReplyTo ? "normal" : "reverse", iterations: "1", fromTo: [slideAnimation], easing: "ease-in-out", }; // Cancel the reply-to const cancelReplyTo = async () => { setCancellingReplyTo(true); await replyToAnimationRef.current.animation.play(); setCancellingReplyTo(false); setReplyToMessage(false); }; return ( {contact} {replyToMessage.preview} ); }; export default ReplyTo;