'use client'
import { useState, useEffect } from "react";
import ReCAPTCHA from "react-google-recaptcha";
import axios from "axios";
export default function ContactForm() {
const [formData, setFormData] = useState({
name: "",
email: "",
phone: "",
message: "",
});
const [alert, setAlert] = useState({
show: false,
type: "",
message: "",
});
const [captchaToken, setCaptchaToken] = useState(null);
const handleCaptchaChange = (token) => {
setCaptchaToken(token);
};
const handleChange = (e) => {
const { name, value } = e.target;
setFormData(prev => ({ ...prev, [name]: value }));
};
const handleSubmit = async (e) => {
e.preventDefault();
if (!formData.name || !formData.email || !formData.phone || !formData.message) {
setAlert({ show: true, type: "danger", message: "Please fill in all fields." });
return;
}
if (!captchaToken) {
setAlert({ show: true, type: "danger", message: "Please verify the CAPTCHA." });
return;
}
const emailData = {
...formData,
recaptchaToken: captchaToken,
to: "sixty5street@gmail.com",
senderName: "Sixty5Street Contact Form",
message: `
Name: ${formData.name}
Email: ${formData.email}
Phone: ${formData.phone}
Message:
${formData.message}
`,
};
try {
await axios.post("https://mailserver.metatronnest.com/send", emailData, {
headers: { "Content-Type": "application/json" },
});
setAlert({ show: true, type: "success", message: "Your message has been sent successfully!" });
setFormData({ name: "", email: "", phone: "", message: "" });
setCaptchaToken(null);
} catch {
setAlert({ show: true, type: "danger", message: "Failed to send your message. Try again later." });
}
};
useEffect(() => {
if (alert.show) {
const timer = setTimeout(() => setAlert({ show: false, type: "", message: "" }), 5000);
return () => clearTimeout(timer);
}
}, [alert.show]);
return (