diff --git a/mon-projet/src/App.jsx b/mon-projet/src/App.jsx index 9bc6801..bfaae78 100644 --- a/mon-projet/src/App.jsx +++ b/mon-projet/src/App.jsx @@ -3,7 +3,7 @@ import Header from "./components/Header"; import Footer from "./components/Footer"; import Carte from "./components/Carte"; import { useState } from "react"; -const trilogies = [ +const intialData = [ { id: 1, nom: "The RGB Trilogy", @@ -34,6 +34,25 @@ const trilogies = [ function App() { const [likes, setLikes] = useState({}); // {} au départ (pas {1:3, 4:1}) const [recherche, setRecherche] = useState(""); + const [trilogies, setTrilogies] = useState(intialData); + const [nom, setNom] = useState(""); + const [niveaux, setNiveaux] = useState(""); + const [tri, setTri] = useState("nom"); + + const affichees = [...trilogies].sort((a, b) => { + if (tri === "nom") return a.nom.localeCompare(b.nom); + if (tri === "likes") return (likes[b.id] || 0) - (likes[a.id] || 0); + return 0; + }); + function ajouter(e) { + e.preventDefault(); // empêche le rechargement de page + if (nom.trim() === "") return; // on n'ajoute pas du vide + const nouvelle = { id: Date.now(), nom, niveaux }; // id unique simple + setTrilogies([...trilogies, nouvelle]); // 👈 NOUVEAU tableau = ancien + la nouvelle + setNom(""); // on vide les champs + setNiveaux(""); + } + function liker(id) { setLikes((prev) => ({ ...prev, [id]: (prev[id] || 0) + 1 })); } @@ -47,6 +66,25 @@ function App() { return (
👍 Total de likes : {total}
{filtrees.length === 0 &&Aucune trilogie trouvée
} - {filtrees.map((trilo) => (