'use client'; import { useState, useEffect, ChangeEvent, FormEvent } from 'react'; import type { Metadata } from 'next'; import { Phone, Mail, MapPin, Instagram, Facebook, Twitter, Youtube } from 'lucide-react'; import ReCAPTCHA from "react-google-recaptcha"; import axios from "axios"; import styles from './contact.module.css'; interface FormData { name: string; phone: string; email: string; subject: string; message: string; company: string; } interface FormErrors { name?: string; phone?: string; email?: string; subject?: string; message?: string; company?: string; captcha?: string; } export default function ContactPage() { const [formData, setFormData] = useState({ name: '', email: '', company: '', subject: '', message: '', phone: '', }); const [formErrors, setFormErrors] = useState({}); const [captchaToken, setCaptchaToken] = useState(null); const [alert, setAlert] = useState<{ show: boolean; type: string; message: string }>({ show: false, type: "", message: "", }); const handleChange = (e: ChangeEvent) => { setFormData({ ...formData, [e.target.name]: e.target.value, }); }; const handleCaptchaChange = (token: string | null) => { setCaptchaToken(token); }; const handleSubmit = async (e: FormEvent) => { e.preventDefault(); const errors: FormErrors = {}; if (!formData.name.trim()) errors.name = "Name is required."; if (!formData.phone.trim()) errors.phone = "Phone number is required."; if (!formData.email.trim()) errors.email = "Email is required."; if (!formData.subject.trim()) errors.subject = "Subject is required."; if (!formData.message.trim()) errors.message = "Message is required."; if (!captchaToken) errors.captcha = "Please verify the CAPTCHA."; setFormErrors(errors); if (Object.keys(errors).length > 0) return; const emailData = { ...formData, message: ` Name: ${formData.name}
Phone: ${formData.phone}
Email: ${formData.email}
Subject: ${formData.subject}

Message:
${formData.message} `, to: "info@metatroncubesolutions.com", senderName: "SocialBuddy Contact Form", recaptchaToken: captchaToken, }; try { const res = await axios.post("https://mailserver.metatronnest.com/send", emailData, { headers: { "Content-Type": "application/json" }, }); setAlert({ show: true, type: "success", message: res?.data?.message || "Message sent successfully!", }); setFormData({ name: "", phone: "", email: "", subject: "", message: "", company: "" }); setCaptchaToken(null); setFormErrors({}); } catch { 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]); const contactInfoCards = [ { icon: , title: 'Address', value: 'Waterloo, Ontario Canada', link: '#', }, { icon: , title: 'Email Us', value: 'info@metatroncubesolutions.com', link: 'mailto:info@metatroncubesolutions.com', }, { icon: , title: 'Call Us', value: '+1-647-679-7651', link: 'tel:+1-647-679-7651', }, ]; return (
{/* Hero Section */}

Contact Us

Home / Contact
{/* Contact Info Cards */}
{contactInfoCards.map((info, index) => (
{info.icon}

{info.title}

{info.value}

))}
{/* Contact Form Section */}
{/* Left Side: Get In Touch Info */}

Let's Start a Conversation

Have questions about SocialBuddy, pricing, or enterprise solutions? Our team is here to help you streamline social media management, improve performance, and grow your online presence with confidence.

Phone

+1-647-679-7651

Email

info@metatroncubesolutions.com

Address

Waterloo, Ontario Canada

Follow Us

@socialbuddy

Social Media
{/* Right Side: Form */}
{alert.show && (
{alert.message}
)}
{formErrors.email && {formErrors.email}}
{formErrors.name && {formErrors.name}}
{formErrors.phone && {formErrors.phone}}
{formErrors.subject && {formErrors.subject}}