"use client"; import { useState, useEffect } from "react"; import ReCAPTCHA from "react-google-recaptcha"; import axios from "axios"; import Link from "next/link"; import { servicesList } from "@/utils/Services.utils"; export default function ContactClient() { const [formData, setFormData] = useState({ username: "", email: "", phone: "", service: "", message: "", }); const [formErrors, setFormErrors] = useState({}); const [captchaToken, setCaptchaToken] = useState(null); const [alert, setAlert] = useState({ show: false, type: "", message: "" }); const handleChange = (e) => { const { name, value } = e.target; // console.log("Input Changed:", name, value); setFormData((prev) => ({ ...prev, [name]: value })); }; const handleCaptchaChange = (token) => { // console.log("Captcha Token:", token); setCaptchaToken(token); }; const handleSubmit = async (e) => { e.preventDefault(); // console.log("Form Submitted:", formData); const errors = {}; if (!formData.username.trim()) errors.username = "Name is required."; if (!formData.email.trim()) errors.email = "Email is required."; if (!formData.phone.trim()) errors.phone = "Phone is required."; if (!formData.service.trim()) errors.service = "Please select a service."; if (!formData.message.trim()) errors.message = "Message is required."; if (!captchaToken) errors.captcha = "Please verify the CAPTCHA."; setFormErrors(errors); // console.log("Form Errors:", errors); if (Object.keys(errors).length > 0) return; const emailData = { ...formData, message: `Service: ${formData.service}

Message: ${formData.message}`, to: "bloor@rapharehab.ca", senderName: "Rapha Rehab Contact Page", recaptchaToken: captchaToken, }; try { // console.log("Sending email:", emailData); const res = await axios.post("/api/sendMail", emailData, { headers: { "Content-Type": "application/json" }, }); // console.log("Email Response:", res.data); setAlert({ show: true, type: "success", message: res?.data?.message || "Message sent successfully!", }); setFormData({ username: "", email: "", phone: "", service: "", message: "", }); setCaptchaToken(null); setFormErrors({}); } catch (error) { // console.error("❌ Error sending email:", error); setAlert({ show: true, type: "danger", message: "Failed to send message. Please try again later.", }); } }; useEffect(() => { if (alert.show) { const timer = setTimeout(() => { setAlert((prev) => ({ ...prev, show: false })); }, 5000); return () => clearTimeout(timer); } }, [alert.show]); return (

Quick Contact

+647-722-3434
+416-622-2873

Email Address

bloor@rapharehab.ca

Mailing Address

5 – 4335 Bloor Street West
Etobicoke, M9C 2A5

How can we help?

Please complete the contact information below and let us know your needs. Upon receipt of your information one of our team members will reach out.

{alert.show && (
{alert.message}
)}
{formErrors.username && {formErrors.username}}
{formErrors.phone && {formErrors.phone}}
{formErrors.email && {formErrors.email}}
{formErrors.service && {formErrors.service}}
{formErrors.message && {formErrors.message}}
{formErrors.captcha && {formErrors.captcha}}
contact rapharehab