diff --git a/frontend/src/components/ConstructSection.jsx b/frontend/src/components/ConstructSection.jsx index f1f48ee..d0a16e6 100644 --- a/frontend/src/components/ConstructSection.jsx +++ b/frontend/src/components/ConstructSection.jsx @@ -31,17 +31,23 @@ const ConstructSection = ({ try { // 1️⃣ Vérifier si localStorage contient des missions const storedMissions = JSON.parse(localStorage.getItem("missions")); - + if (storedMissions && storedMissions.length > 0) { setMissions(storedMissions); console.log("✅ Missions chargées depuis localStorage !"); } else { // 2️⃣ Si localStorage est vide, récupérer les missions depuis WordPress const response = await api.get("wp/v2/pages/13?_fields=acf"); - - if (response.data.acf?.mission && Array.isArray(response.data.acf.mission)) { + + if ( + response.data.acf?.mission && + Array.isArray(response.data.acf.mission) + ) { setMissions(response.data.acf.mission); - localStorage.setItem("missions", JSON.stringify(response.data.acf.mission)); // Sauvegarde en local + localStorage.setItem( + "missions", + JSON.stringify(response.data.acf.mission) + ); // Sauvegarde en local console.log("✅ Missions chargées depuis WordPress !"); } else { // 3️⃣ Si aucune mission dans WordPress, utiliser des valeurs par défaut @@ -52,14 +58,16 @@ const ConstructSection = ({ ]; setMissions(defaultMissions); localStorage.setItem("missions", JSON.stringify(defaultMissions)); - console.log("⚠️ Aucune mission trouvée, valeurs par défaut utilisées !"); + console.log( + "⚠️ Aucune mission trouvée, valeurs par défaut utilisées !" + ); } } } catch (error) { console.error("❌ Erreur lors du chargement des missions :", error); } }; - + loadMissions(); }, []); @@ -73,12 +81,13 @@ const ConstructSection = ({ // ✅ Gestion des changements depuis d'autres onglets/navigateurs useEffect(() => { const handleStorageChange = () => { - const updatedMissions = JSON.parse(localStorage.getItem("missions")) || []; + const updatedMissions = + JSON.parse(localStorage.getItem("missions")) || []; setMissions(updatedMissions); }; window.addEventListener("storage", handleStorageChange); - + return () => { window.removeEventListener("storage", handleStorageChange); }; @@ -95,22 +104,63 @@ const ConstructSection = ({ {/* Left Column */} - + {constructTitle}{" "} - + {constructSubtitle} - + Secteurs : {constructSector} - + - + - + @@ -118,10 +168,29 @@ const ConstructSection = ({ {/* Right Column */} - + {/* ✅ Correction de la duplication du titre */} {missionTitle && ( - + {missionTitle} )} @@ -129,9 +198,21 @@ const ConstructSection = ({ {/* ✅ Accordéon dynamique */} {missions.length > 0 ? ( missions.map((mission, index) => ( - + }> - {mission.title} + + {mission.title} + {mission.details} @@ -147,7 +228,22 @@ const ConstructSection = ({ {/* Background Image et Items */} {missionItems?.map((item, index) => ( - + {item.label} ))} @@ -159,4 +255,4 @@ const ConstructSection = ({ ); }; -export default ConstructSection; \ No newline at end of file +export default ConstructSection; diff --git a/frontend/src/components/Pages/GestionPageAccueil.jsx b/frontend/src/components/Pages/GestionPageAccueil.jsx index e4e9f13..8c47630 100644 --- a/frontend/src/components/Pages/GestionPageAccueil.jsx +++ b/frontend/src/components/Pages/GestionPageAccueil.jsx @@ -85,24 +85,24 @@ const GestionPageAccueil = () => { }, []); // ✅ Mise à jour des champs ACF -const handleSave = async () => { - try { - const newData = { - hero_title: heroTitle, // ✅ Enregistre le H1 - hero_text: heroText, // ✅ Enregistre le texte du Hero - mission: missions, // ✅ Enregistre les missions - }; + const handleSave = async () => { + try { + const newData = { + hero_title: heroTitle, // ✅ Enregistre le H1 + hero_text: heroText, // ✅ Enregistre le texte du Hero + mission: missions, // ✅ Enregistre les missions + }; - await updateHomePageACF(13, newData); - localStorage.setItem("missions", JSON.stringify(missions)); // ✅ Sauvegarde locale + await updateHomePageACF(13, newData); + localStorage.setItem("missions", JSON.stringify(missions)); // ✅ Sauvegarde locale - setSuccessMessage("✅ Modifications enregistrées avec succès !"); - setTimeout(() => setSuccessMessage(""), 3000); - } catch (error) { - console.error("❌ Erreur mise à jour :", error); - setError("⚠ Impossible de mettre à jour les champs ACF."); - } -}; + setSuccessMessage("✅ Modifications enregistrées avec succès !"); + setTimeout(() => setSuccessMessage(""), 3000); + } catch (error) { + console.error("❌ Erreur mise à jour :", error); + setError("⚠ Impossible de mettre à jour les champs ACF."); + } + }; // ✅ Gérer le téléversement d’une nouvelle image Hero const handleImageUpload = async (event) => { @@ -134,17 +134,17 @@ const handleSave = async () => { }, [missions]); // ✅ Fonction pour sauvegarder les missions dans WordPress -const saveMissionsToWordPress = async (missions) => { - try { - const newData = { missions }; // Sauvegarde dans ACF - await updateHomePageACF(13, newData); + const saveMissionsToWordPress = async (missions) => { + try { + const newData = { missions }; // Sauvegarde dans ACF + await updateHomePageACF(13, newData); - localStorage.setItem("missions", JSON.stringify(missions)); // Sauvegarde locale - console.log("✅ Missions enregistrées dans WordPress et localStorage !"); - } catch (error) { - console.error("❌ Erreur lors de l'enregistrement des missions :", error); - } -}; + localStorage.setItem("missions", JSON.stringify(missions)); // Sauvegarde locale + console.log("✅ Missions enregistrées dans WordPress et localStorage !"); + } catch (error) { + console.error("❌ Erreur lors de l'enregistrement des missions :", error); + } + }; // ✅ Ajouter une mission const addMission = () => { @@ -263,41 +263,6 @@ const saveMissionsToWordPress = async (missions) => { multiline rows={3} /> - - {/* ✅ Bouton d'enregistrement */} - - - {/* ✅ Bouton retour au Dashboard */} - )} @@ -352,6 +317,42 @@ const saveMissionsToWordPress = async (missions) => { ➕ Ajouter une mission + + {/* ✅ Bouton d'enregistrement */} + + + {/* ✅ Bouton retour au Dashboard */} + + );