import { useEffect, useState } from "react"; import { fetchPosts, deletePost } from "../../wordpress"; import { Box, Typography, Button, CircularProgress, Paper, Grid } from "@mui/material"; import DeleteIcon from "@mui/icons-material/Delete"; import { toast } from "react-toastify"; import "react-toastify/dist/ReactToastify.css"; function PostList() { const [posts, setPosts] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { async function loadPosts() { try { const data = await fetchPosts(); setPosts(data); } catch (err) { setError("⚠️ Impossible de récupérer les articles."); console.error("Erreur lors de la récupération des articles :", err); } finally { setLoading(false); } } loadPosts(); }, []); const handleDelete = async (postId) => { if (window.confirm("❌ Es-tu sûr de vouloir supprimer cet article ?")) { try { await deletePost(postId); setPosts(posts.filter((post) => post.id !== postId)); toast.success("✅ Article supprimé avec succès !"); } catch (err) { console.error("Erreur suppression :", err); toast.error("⚠️ Erreur lors de la suppression."); } } }; return ( 📋 Liste des Articles {loading && ( )} {error && ( {error} )} {!loading && posts.length === 0 && ( Aucun article trouvé. )} {posts.map((post) => ( {post.title.rendered} ))} ); } export default PostList;