import React, { useEffect, useState } from "react"; import { sendEmail } from "@/app/utils/send-email"; export type ContactFormData = { name: string; email: string; message: string; }; export default function Contact() { const [isVisible, setIsVisible] = useState(false); const [banner, setBanner] = useState<{ show: boolean; message: string; type: "success" | "error"; }>({ show: false, message: "", type: "success", }); useEffect(() => { setTimeout(() => { setIsVisible(true); }, 350); // Delay to start the animation after Projects }, []); async function onSubmit(e: React.FormEvent) { e.preventDefault(); const form = e.currentTarget as HTMLFormElement; const formData = new FormData(form); const data: ContactFormData = { name: formData.get("name") as string, email: formData.get("email") as string, message: formData.get("message") as string, }; // Convert FormData to a plain object const jsonData = JSON.stringify(data); const response = await sendEmail(jsonData); if (response.success) { form.reset(); } setBanner({ show: true, message: response.message, type: response.success ? "success" : "error", }); setTimeout(() => { setBanner((prev) => ({ ...prev, show: false })); }, 3000); } return (

Contact Me

{banner.show && (
{banner.message}
)}
); }