import { motion } from "framer-motion"; import emailjs from "@emailjs/browser"; import { useState } from "react"; const fadeInUp = { initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.6 }, }; const staggerContainer = { animate: { transition: { staggerChildren: 0.1, }, }, }; export const Contact = () => { const [formData, setFormData] = useState({ name: "", email: "", message: "", }); const [formStatus, setFormStatus] = useState({ submitting: false, success: false, error: false, message: "", }); const handleInputChange = (e) => { const { name, value } = e.target; setFormData((prev) => ({ ...prev, [name]: value, })); }; const handleSubmit = async (e) => { e.preventDefault(); setFormStatus({ submitting: true, success: false, error: false, message: "", }); try { await emailjs.send( import.meta.env.VITE_EMAILJS_SERVICE_ID, import.meta.env.VITE_EMAILJS_TEMPLATE_ID, { name: formData.name, email: formData.email, message: formData.message, } ); setFormStatus({ submitting: false, success: true, error: false, message: "Message sent successfully!", }); setFormData({ name: "", email: "", message: "", }); } catch (error) { setFormStatus({ submitting: false, success: false, error: true, message: "Failed to send message. Please try again.", }); } }; return ( Get in Touch {formStatus.submitting ? "Sending..." : "Send Message"} {formStatus.message && ( {formStatus.message} )} ); };