diff --git a/frontend/index.html b/frontend/index.html index 88ab94f..5c3bad9 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -2,10 +2,10 @@ - + bureau d’études Maîtrise d’oeuvre + - Création web
diff --git a/frontend/src/assets/bg-construct.avif b/frontend/src/assets/bg-construct.avif new file mode 100644 index 0000000..c2d1cb6 Binary files /dev/null and b/frontend/src/assets/bg-construct.avif differ diff --git a/frontend/src/components/ConstructSection.jsx b/frontend/src/components/ConstructSection.jsx new file mode 100644 index 0000000..90a6341 --- /dev/null +++ b/frontend/src/components/ConstructSection.jsx @@ -0,0 +1,165 @@ +import React from "react"; +import { + Box, + Typography, + Button, + Grid, + Card, + CardContent, +} from "@mui/material"; + +const ConstructSection = ({ + constructTitle, + constructSubtitle, + constructText, + constructSector, + constructNoteText, + missionTitle, + missionItems, +}) => { + return ( + + + {/* Left Column */} + + + {/* Titre et sous-titre */} + + {constructTitle}{" "} + + {constructSubtitle} + + + + {/* Secteurs */} + + Secteurs : {constructSector} + + + + + {/* Cadre résumé */} + + + + + + + + + {/* Right Column */} + + + + {missionTitle} + + + + {missionItems.map((item, index) => ( + + {item.label} + + ))} + + + + + + ); +}; + +export default ConstructSection; diff --git a/frontend/src/components/Pages/Home.jsx b/frontend/src/components/Pages/Home.jsx index 36f3d63..7b3065c 100644 --- a/frontend/src/components/Pages/Home.jsx +++ b/frontend/src/components/Pages/Home.jsx @@ -4,6 +4,7 @@ import SEO from "../SEO"; import api from "../../api"; import ModernSpinner from "../SpinnerModerne"; import Expertises from "../Expertises"; +import ConstructSection from "../ConstructSection"; import { Box, Grid, @@ -31,8 +32,23 @@ const Home = () => { const [isLoading, setIsLoading] = useState(true); const [error, setError] = useState(null); + //Construction + const [constructTitle, setConstructTitle] = useState("Construisons vos projets"); + const [constructSubtitle, setConstructSubtitle] = useState("ensemble"); + const [constructSector, setConstructSector] = useState("Industriel | Tertiaire | Privée"); + const [constructText, setConstructText] = useState("IN3, bureau d'études Ingénierie et Maîtrise d’œuvre, est implanté depuis 20 ans sur Le Mans. Nous étudions vos projets en structure, gros œuvre, électricité courants forts et faibles, et fluides, tout corps d'état."); + const [constructNoteText, setConstructNoteText] = useState("À votre écoute, nous travaillons avec et pour vous dans le but de satisfaire vos besoins tant sur le plan architectural que technique, méthodologique et/ou économique."); + const [missionTitle, setMissionTitle] = useState("Nos missions principales"); + const [missionItems, setMissionItems] = useState([ + { label: "Diagnostics | Sécurité", top: "20%", left: "50%" }, + { label: "Études techniques", top: "50%", left: "30%" }, + { label: "Bureau d'études | Maîtrise d’œuvre", top: "70%", left: "60%" }, + ]); + // ACF Expertise - const [expertiseTitle, setExpertiseTitle] = useState("Titre Pourquoi Nous Choisir ?"); + const [expertiseTitle, setExpertiseTitle] = useState( + "Titre Pourquoi Nous Choisir ?" + ); const [expertise1Title, setExpertise1Title] = useState("Titre Expertise 1"); const [expertise1Text, setExpertise1Text] = useState("Text Expertise 1"); const [expertise2Title, setExpertise2Title] = useState("Titre Expertise 2"); @@ -40,7 +56,6 @@ const Home = () => { const [expertise3Title, setExpertise3Title] = useState("Titre Expertise 3"); const [expertise3Text, setExpertise3Text] = useState("Text Expertise 3"); - useEffect(() => { const fetchPageData = async () => { try { @@ -74,21 +89,23 @@ const Home = () => { setBackgroundImage(null); } + // Section Construction + setConstructTitle(acf?.gdc_construct.construct_title || "Construisons vos projets"); + setConstructSubtitle(acf?.gdc_construct.construct_subtitle || "ensemble"); + setConstructText(acf?.gdc_construct.construct_text || "Texte par défaut"); + setConstructSector(acf?.gdc_construct.construct_sector || "Secteurs"); + setConstructNoteText(acf?.gdc_construct.construct_note || "Note société"); + setMissionTitle(acf?.mission_title || "Nos missions principales"); + setMissionItems(acf?.mission_items || []); + // Récupération du titre de la deuxième section Expertise setExpertiseTitle(acf?.titre_expertise || "Pourquoi Nous Choisir ?"); setExpertise1Title(acf?.gdc_expert.titre_expertise_1 || "Expertise 1"); - setExpertise1Text( - acf?.gdc_expert.text_expertise_1 || "Text Expertise 1" - ); + setExpertise1Text(acf?.gdc_expert.text_expertise_1 || "Text Expertise 1"); setExpertise2Title(acf?.gdc_expert.titre_expertise_2 || "Expertise 2"); - setExpertise2Text( - acf?.gdc_expert.text_expertise_2 || "Text Expertise 2" - ); + setExpertise2Text(acf?.gdc_expert.text_expertise_2 || "Text Expertise 2"); setExpertise3Title(acf?.gdc_expert.titre_expertise_3 || "Expertise 3"); - setExpertise3Text( - acf?.gdc_expert.text_expertise_3 || "Text Expertise 3" - ); - + setExpertise3Text(acf?.gdc_expert.text_expertise_3 || "Text Expertise 3"); } catch (error) { console.error("Erreur lors de la récupération des données :", error); setError("Impossible de charger les données. Veuillez réessayer."); @@ -103,7 +120,7 @@ const Home = () => { if (isLoading) { return (
- // Utilisation du spinner moderne +

Chargement des données...

); @@ -128,11 +145,7 @@ const Home = () => { return (
{/* SEO */} - + {/* Section Héros */} { textColor={heroTextColor} /> + {/* Section Construisons */} + + +
+

Groupe 3 - Champs ACF

+ '13', // Remplacez par un ID de page si nécessaire + 'field_groups' => array('group_677d3294c3dfa'), + 'form' => true, + 'return' => add_query_arg('updated', 'true', wp_get_referer()), + 'submit_value' => __('Enregistrer les modifications', 'acf'), + )); + } else { + echo '

Le plugin ACF n\'est pas activé ou disponible.

'; + } + ?> +
+