"use client"; import ContactForm from "@/components/form/ContactForm"; import MediaContent from "@/components/shared/MediaContent"; import HeroBackgrounds, { type HeroBackgroundVariantProps } from "@/components/background/HeroBackgrounds"; import { cls } from "@/lib/utils"; import { LucideIcon } from "lucide-react"; import { sendContactEmail } from "@/utils/sendContactEmail"; type ContactSplitBackgroundProps = Extract< HeroBackgroundVariantProps, | { variant: "plain" } | { variant: "animated-grid" } | { variant: "canvas-reveal" } | { variant: "cell-wave" } | { variant: "downward-rays-animated" } | { variant: "downward-rays-animated-grid" } | { variant: "downward-rays-static" } | { variant: "downward-rays-static-grid" } | { variant: "gradient-bars" } | { variant: "radial-gradient" } | { variant: "rotated-rays-animated" } | { variant: "rotated-rays-animated-grid" } | { variant: "rotated-rays-static" } | { variant: "rotated-rays-static-grid" } | { variant: "sparkles-gradient" } >; interface ContactSplitProps { title: string; description: string; tag: string; tagIcon?: LucideIcon; background: ContactSplitBackgroundProps; useInvertedBackground: "noInvert" | "invertDefault"; imageSrc?: string; videoSrc?: string; imageAlt?: string; videoAriaLabel?: string; mediaPosition?: "left" | "right"; inputPlaceholder?: string; buttonText?: string; termsText?: string; onSubmit?: (email: string) => void; ariaLabel?: string; className?: string; containerClassName?: string; contentClassName?: string; contactFormClassName?: string; tagClassName?: string; titleClassName?: string; descriptionClassName?: string; formWrapperClassName?: string; formClassName?: string; inputClassName?: string; buttonClassName?: string; buttonTextClassName?: string; termsClassName?: string; mediaWrapperClassName?: string; mediaClassName?: string; } const ContactSplit = ({ title, description, tag, tagIcon, background, useInvertedBackground, imageSrc, videoSrc, imageAlt = "", videoAriaLabel = "Contact section video", mediaPosition = "right", inputPlaceholder = "Enter your email", buttonText = "Sign Up", termsText = "By clicking Sign Up you're confirming that you agree with our Terms and Conditions.", onSubmit, ariaLabel = "Contact section", className = "", containerClassName = "", contentClassName = "", contactFormClassName = "", tagClassName = "", titleClassName = "", descriptionClassName = "", formWrapperClassName = "", formClassName = "", inputClassName = "", buttonClassName = "", buttonTextClassName = "", termsClassName = "", mediaWrapperClassName = "", mediaClassName = "", }: ContactSplitProps) => { const handleSubmit = async (email: string) => { try { await sendContactEmail({ email }); console.log("Email send successfully"); } catch (error) { console.error("Failed to send email:", error); } }; const contactContent = (