"use client"; import React, { useEffect, useState } from "react"; import axios from "axios"; export default function Contact1({ ssrData }) { const [data, setData] = useState(ssrData || null); const [loading, setLoading] = useState(!ssrData); const [error, setError] = useState(null); const [modal, setModal] = useState({ open: false, message: '', type: 'success' }); useEffect(() => { if (!ssrData) { setLoading(true); axios.get("/api/get-component-data", { params: { component_name: "Contact" } }) .then(res => setData(res.data.data)) .catch(() => setError("Failed to get Contact data")) .finally(() => setLoading(false)); } else { setLoading(false); } }, [ssrData]); if (loading) return
Loading...
; if (error) return null; if (!data) return null; const contacts = Array.isArray(data.items) ? data.items : []; const [form, setForm] = useState({ name: '', phone: '', email: '', department: '', message: '' }); const [submitting, setSubmitting] = useState(false); const [submitResult, setSubmitResult] = useState(null); function handleInputChange(e) { const { name, value } = e.target; setForm(prev => ({ ...prev, [name]: value })); } async function handleSubmit(e) { e.preventDefault(); setSubmitting(true); setSubmitResult(null); try { const content = [ `Name: ${form.name}`, `Phone: ${form.phone}`, `Email: ${form.email}`, `Department: ${form.department}`, `Message:
${form.message.replace(/\n/g, '
')}` ].join("
"); const res = await axios.post('/api/send-email', { subject: `Website Contact Form: ${form.name}`, content }); if (res.data.success) { setModal({ open: true, message: res.data.message || 'Email sent successfully!', type: 'success' }); setSubmitResult(null); setForm({ name: '', phone: '', email: '', department: '', message: '' }); } else { setModal({ open: true, message: res.data.error || 'Failed to send', type: 'error' }); setSubmitResult(null); } } catch (err) { setModal({ open: true, message: err?.response?.data?.error || err.message || 'Failed to send', type: 'error' }); setSubmitResult(null); } finally { setSubmitting(false); } } function closeModal() { setModal({ open: false, message: '', type: 'success' }); } return (