import { useState } from "react"; import ScrollReveal from "@/components/ui/ScrollReveal"; import TextAnimation from "@/components/ui/TextAnimation"; import ImageOrVideo from "@/components/ui/ImageOrVideo"; import { sendContactEmail } from "@/lib/api/email"; type ContactSplitEmailProps = { tag: string; title: string; description: string; inputPlaceholder: string; buttonText: string; onSubmit?: (email: string) => void; } & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }); const ContactSplitEmail = ({ tag, title, description, inputPlaceholder, buttonText, onSubmit, imageSrc, videoSrc, }: ContactSplitEmailProps) => { const [email, setEmail] = useState(""); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(null); const handleSubmit = async (e: React.SyntheticEvent) => { e.preventDefault(); setIsLoading(true); setError(null); try { await sendContactEmail({ email }); onSubmit?.(email); setEmail(""); } catch (err) { setError(err instanceof Error ? err.message : "Failed to send. Please try again."); } finally { setIsLoading(false); } }; return (

{tag}

setEmail(e.target.value)} required className="flex-1 px-5 py-3 md:py-0 text-base text-center md:text-left bg-transparent placeholder:opacity-75 focus:outline-none truncate" aria-label="Email address" />
{error && (

{error}

)}
); }; export default ContactSplitEmail;