import { useState, useEffect } from "react"; import { Box, Typography, Button, CircularProgress } from "@mui/material"; import { useParams, useNavigate } from "react-router-dom"; import api from "../api"; const PostDetails = () => { const { slug } = useParams(); const [post, setPost] = useState(null); const [image, setImage] = useState(null); const navigate = useNavigate(); useEffect(() => { const fetchPost = async () => { if (!slug) { console.error("❌ Erreur : aucun slug fourni !"); return; } try { console.log(`📢 Requête API pour le slug : ${slug}`); const response = await api.get(`wp/v2/posts?slug=${slug}&_fields=id,title,content,featured_media,date`); if (response.data.length > 0) { const article = response.data[0]; setPost(article); if (article.featured_media) { console.log(`📢 Récupération de l'image ID : ${article.featured_media}`); const mediaResponse = await api.get(`wp/v2/media/${article.featured_media}`); setImage(mediaResponse.data.source_url); } } else { console.error("❌ Aucun article trouvé avec ce slug !"); } } catch (error) { console.error("❌ Erreur lors de la récupération de l'article :", error); } }; fetchPost(); }, [slug]); if (!post) { return ; } return ( {post.title.rendered} {image && ( )} ); }; export default PostDetails;