"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 (
{contacts.map((item, idx) => (
{(item.item_html_code || item.item_icon) && (
{item.item_html_code ? (
) : (

)}
)}
{item.item_title}
))}
{/*/column */}
{/*/.row */}
{/* /.card */}
{/* /column */}
{/* /.row */}
{data.title}
{data.description}
{/* /form */}
{/* /column */}
{/* /.row */}
{/* /.container */}
);
}