import { useState } from "react"; import type { components } from "../../reflector-api"; type GetTranscriptWithParticipants = components["schemas"]["GetTranscriptWithParticipants"]; import { Button, Dialog, CloseButton, Input, Box, Text, } from "@chakra-ui/react"; import { LuMail } from "react-icons/lu"; import { useTranscriptSendEmail } from "../../lib/apiHooks"; type ShareEmailProps = { transcript: GetTranscriptWithParticipants; disabled: boolean; }; export default function ShareEmail(props: ShareEmailProps) { const [showModal, setShowModal] = useState(false); const [email, setEmail] = useState(""); const [sent, setSent] = useState(false); const sendEmailMutation = useTranscriptSendEmail(); const handleSend = async () => { if (!email) return; try { await sendEmailMutation.mutateAsync({ params: { path: { transcript_id: props.transcript.id }, }, body: { email }, }); setSent(true); setTimeout(() => { setSent(false); setShowModal(false); setEmail(""); }, 2000); } catch (error) { console.error("Error sending email:", error); } }; return ( <> { setShowModal(e.open); if (!e.open) { setSent(false); setEmail(""); } }} size="md" > Send Transcript via Email {sent ? ( Email sent successfully! ) : ( Enter the email address to send this transcript to: setEmail(e.target.value)} onKeyDown={(e) => e.key === "Enter" && handleSend()} /> )} {!sent && ( )} ); }