diff --git a/frontend/src/assets/logo-in3-mobil.svg b/frontend/src/assets/logo-in3-mobil.svg index b6e3340..8304495 100644 --- a/frontend/src/assets/logo-in3-mobil.svg +++ b/frontend/src/assets/logo-in3-mobil.svg @@ -7,7 +7,7 @@ - + diff --git a/frontend/src/components/Header.jsx b/frontend/src/components/Header.jsx index 4361000..f1c5eb0 100644 --- a/frontend/src/components/Header.jsx +++ b/frontend/src/components/Header.jsx @@ -141,7 +141,7 @@ const Header = () => { > Logo {title} diff --git a/frontend/src/components/ModernSpinner.jsx b/frontend/src/components/ModernSpinner.jsx new file mode 100644 index 0000000..bd9e9c8 --- /dev/null +++ b/frontend/src/components/ModernSpinner.jsx @@ -0,0 +1,47 @@ +import React from "react"; +import { Box, CircularProgress, Typography } from "@mui/material"; + +const ModernSpinner = () => { + return ( + + + + Chargement des données... + + + ); +}; + +export default ModernSpinner; \ No newline at end of file diff --git a/frontend/src/components/Pages/Home.jsx b/frontend/src/components/Pages/Home.jsx index a5c7bc4..c5385e5 100644 --- a/frontend/src/components/Pages/Home.jsx +++ b/frontend/src/components/Pages/Home.jsx @@ -2,6 +2,7 @@ import React, { useState, useEffect } from "react"; import Hero from "../Hero"; import SEO from "../SEO"; import api from "../../api"; +import ModernSpinner from "../ModernSpinner"; import { Box, Grid, @@ -10,6 +11,7 @@ import { Card, CardContent, } from "@mui/material"; +import Logo from "../../assets/logo-in3-mobil.svg"; const Home = () => { const [backgroundImage, setBackgroundImage] = useState(null); @@ -19,26 +21,43 @@ const Home = () => { const [heroText, setHeroText] = useState("Texte par défaut"); const [heroTextColor, setHeroTextColor] = useState("#ffffff"); const [metaTitle, setMetaTitle] = useState("Titre par défaut"); - const [metaDescription, setMetaDescription] = useState("Description par défaut."); + const [metaDescription, setMetaDescription] = useState( + "Description par défaut." + ); + const [canonicalUrl, setCanonicalUrl] = useState(null); const [isLoading, setIsLoading] = useState(true); const [error, setError] = useState(null); + 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"); + const [expertise2Text, setExpertise2Text] = useState("Text Expertise 2"); + const [expertise3Title, setExpertise3Title] = useState("Titre Expertise 3"); + const [expertise3Text, setExpertise3Text] = useState("Text Expertise 3"); useEffect(() => { const fetchPageData = async () => { try { setIsLoading(true); setError(null); - const response = await api.get("wp/v2/pages/13?_fields=acf,rank_math_title,rank_math_description"); + const response = await api.get( + "wp/v2/pages/13?_fields=acf,rank_math_title,rank_math_description" + ); const { acf, rank_math_title, rank_math_description } = response.data; // Métadonnées SEO setMetaTitle(rank_math_title || "Titre par défaut"); setMetaDescription(rank_math_description || "Description par défaut."); + // Récupération de l'URL canonique + setCanonicalUrl(acf?.canonical_url || window.location.href); + // Données Hero setUseGradient(acf?.enable_gradient ?? false); - setHeroTitle(acf?.hero_title || "Titre par défaut"); + setHeroTitle(acf?.hero_title || "Titre principal"); setHeroTitleColor(acf?.hero_title_color || "#ffffff"); setHeroText(acf?.hero_text || "Texte par défaut"); setHeroTextColor(acf?.hero_text_color || "#ffffff"); @@ -50,6 +69,20 @@ const Home = () => { } else { setBackgroundImage(null); } + // 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" + ); + setExpertise2Title(acf?.gdc_expert.titre_expertise_2 || "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" + ); } 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."); @@ -64,6 +97,7 @@ const Home = () => { if (isLoading) { return (
+ // Utilisation du spinner moderne

Chargement des données...

); @@ -72,6 +106,14 @@ const Home = () => { if (error) { return (
+ Logo

{error}

); @@ -80,7 +122,11 @@ const Home = () => { return (
{/* SEO */} - + {/* Section Héros */} { text={heroText} textColor={heroTextColor} /> + {/*