"use client"; import { useState, useEffect } from "react"; import ReCAPTCHA from "react-google-recaptcha"; import axios from "axios"; import { BaseUrl } from "@/utility/BaseUrl.utils"; const ContactForm = () => { const [formData, setFormData] = useState({ name: "", email: "", phone_number: "", subject: "", message: "", }); const [alert, setAlert] = useState({ show: false, message: "", type: "", }); const [captchaToken, setCaptchaToken] = useState(null); useEffect(() => { if (alert.show) { const timer = setTimeout(() => { setAlert({ ...alert, show: false }); }, 5000); return () => clearTimeout(timer); } }, [alert]); const handleChange = (e) => { const { name, value } = e.target; setFormData((prev) => ({ ...prev, [name]: value })); }; const handleCaptchaChange = (token) => { setCaptchaToken(token); }; const handleSubmit = async (e) => { e.preventDefault(); if (!captchaToken) { setAlert({ show: true, message: "Please verify the CAPTCHA.", type: "danger", }); return; } const emailData = { ...formData, to: "info@shivasakthi.ca", senderName: "Shivasakthi Restaurant", recaptchaToken: captchaToken, }; try { const res = await axios.post(BaseUrl, emailData, { headers: { "Content-Type": "application/json", }, }); setAlert({ show: true, message: res?.data?.message || "Message sent successfully!", type: "success", }); setFormData({ name: "", email: "", phone_number: "", subject: "", message: "", }); setCaptchaToken(null); } catch (error) { setAlert({ show: true, message: "Failed to send message. Please try again later.", type: "danger", }); } }; return (

Send Us Message

Have a question or need assistance? Fill out the form below and our team will get back to you as soon as possible. *