"use client"; import { useState } from "react"; import { motion, AnimatePresence } from "motion/react"; import { cn } from "@/lib/utils"; export function ContactModal() { const [isOpen, setIsOpen] = useState(false); const [isSubmitting, setIsSubmitting] = useState(false); const [submitStatus, setSubmitStatus] = useState<"idle" | "success" | "error">("idle"); async function handleSubmit(event: React.FormEvent) { event.preventDefault(); setIsSubmitting(true); const formData = new FormData(event.currentTarget); formData.append("access_key", "861ad586-6ce2-4a29-a967-a64fed1a431f"); const object = Object.fromEntries(formData); const json = JSON.stringify(object); try { const response = await fetch("https://api.web3forms.com/submit", { method: "POST", headers: { "Content-Type": "application/json", Accept: "application/json" }, body: json }); const result = await response.json(); if (result.success) { setSubmitStatus("success"); setTimeout(() => { setIsOpen(false); setSubmitStatus("idle"); }, 2000); } else { setSubmitStatus("error"); } } catch (error) { setSubmitStatus("error"); } finally { setIsSubmitting(false); } } return ( <> {isOpen && ( setIsOpen(false)} > e.stopPropagation()} >

Contact Me