import React, { useState, useEffect, lazy, Suspense } from "react"; import { Box, TextField, Typography, Button, Grid, Checkbox, FormControlLabel, Snackbar, Alert, CircularProgress, Card, CardContent, Modal, Fade, Backdrop, } from "@mui/material"; import SEO from "../SEO"; import api from "../../api"; import Faq from "../Faq"; const FAQ = lazy(() => import('../Faq')); const Contact = () => { const [metaTitle, setMetaTitle] = useState("Contactez-nous"); const [metaDescription, setMetaDescription] = useState( "Contactez notre équipe pour plus d'informations." ); const [formData, setFormData] = useState({ name: "", email: "", subject: "", message: "", consent: false, }); const [errors, setErrors] = useState({}); const [loading, setLoading] = useState(false); const [successMessage, setSuccessMessage] = useState(false); const [openLightbox, setOpenLightbox] = useState(false); const [showFAQ, setShowFAQ] = useState(false); // État pour afficher/masquer la FAQ const handleToggleFAQ = () => { setShowFAQ((prev) => !prev); }; useEffect(() => { const fetchSEOData = async () => { try { const response = await api.get( "wp/v2/pages/116?_fields=acf,rank_math_title,rank_math_description" ); const { rank_math_title, rank_math_description } = response.data; setMetaTitle(rank_math_title || "Contactez-nous"); setMetaDescription(rank_math_description || "Contactez notre équipe."); } catch (error) { console.error( "Erreur lors de la récupération des données SEO :", error ); } }; fetchSEOData(); }, []); const validate = () => { const newErrors = {}; if (!formData.name) newErrors.name = "Le nom est requis."; if (!formData.email || !/\S+@\S+\.\S+/.test(formData.email)) newErrors.email = "Une adresse e-mail valide est requise."; if (!formData.subject) newErrors.subject = "Le sujet est requis."; if (!formData.message) newErrors.message = "Le message est requis."; if (!formData.consent) newErrors.consent = "Vous devez accepter la politique de confidentialité."; return newErrors; }; const handleChange = (e) => { const { name, value, type, checked } = e.target; setFormData({ ...formData, [name]: type === "checkbox" ? checked : value, }); }; const handleSubmit = async (e) => { e.preventDefault(); const validationErrors = validate(); setErrors(validationErrors); if (Object.keys(validationErrors).length === 0) { setLoading(true); try { const response = await fetch( "https://votre-site.com/wp-json/custom/v1/contact", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(formData), } ); if (response.ok) { setSuccessMessage(true); setFormData({ name: "", email: "", subject: "", message: "", consent: false, }); } else { const errorData = await response.json(); throw new Error(errorData.message || "Une erreur est survenue."); } } catch (error) { alert(error.message); } finally { setLoading(false); } } }; const handleOpenLightbox = () => { setOpenLightbox(true); }; const handleCloseLightbox = () => { setOpenLightbox(false); }; return ( {/* SEO */} {/* Section Attention */} Contactez-nous Notre bureau d’étude technique est, par essence, spécialisé. Vous pouvez donc faire appel à nous pour un diagnostic ponctuel portant sur tel ou tel équipement ou ouvrage du bâtiment (structures, chaufferie, ascenseur).



Une question ? Une demande particulière ? Remplissez le formulaire ci-dessous ou consultez nos coordonnées.
{/* Section Coordonnées et Horaires */} {/* Coordonnées */} Nos coordonnées Adresse :67 Bd Winston Churchill, Le Mans, France Téléphone : 02.43.85.09.01 Email : contact@be-in3.com Carte {/* Horaires */} Horaires d'ouverture Lundi - Mardi : 9h00 - 16h00 Mercredi : 09h00 - 12h00 Jeudi - Vendredi : 09h00 - 17h00 Samedi - Dimanche : Fermé {/* Lightbox */}