diff --git a/mon-projet/src/main.jsx b/mon-projet/src/main.jsx
index 4bfc3b2..b0e32bf 100644
--- a/mon-projet/src/main.jsx
+++ b/mon-projet/src/main.jsx
@@ -1,17 +1,13 @@
import { StrictMode } from "react";
import { createRoot } from "react-dom/client";
+import { BrowserRouter } from "react-router-dom";
import "./index.css";
import App from "./App.jsx";
-import { BrowserRouter } from "react-router-dom";
-
-createRoot(document.getElementById("root")).render(
-
-
- ,
-);
createRoot(document.getElementById("root")).render(
-
+
+
+
,
);
diff --git a/mon-projet/src/pages/Accueil.jsx b/mon-projet/src/pages/Accueil.jsx
index c7171dc..d6295aa 100644
--- a/mon-projet/src/pages/Accueil.jsx
+++ b/mon-projet/src/pages/Accueil.jsx
@@ -1,8 +1,107 @@
-import { useParams } from "react-router-dom";
+import { useState } from "react";
+import Carte from "../components/carte";
+import Header from "../components/Header";
+import Footer from "../components/Footer";
+const initialData = [
+ {
+ id: 1,
+ nom: "The RGB Trilogy",
+ niveaux: "Yatagarasu - Erebus - Sonic Wave",
+ },
+ {
+ id: 2,
+ nom: "The Greek Letter Trilogy",
+ niveaux: "Omega - Sigma - Gamma",
+ },
+ {
+ id: 3,
+ nom: "The Techno Trilogy",
+ niveaux: "Artificial Ascent - Digital Descent - Cybernetic Crescent ",
+ },
+ {
+ id: 4,
+ nom: "The Riot's Trilogy",
+ niveaux: "Tartarus - Acheron - Aeternus",
+ },
+ {
+ id: 5,
+ nom: "The Apocalytic Trilogy",
+ niveaux: "Cataclysm - Bloodbath - aftermath",
+ },
+];
function Accueil() {
- const { id } = useParams();
- return
Détails de la trilogie {id}
;
+ console.log("test");
+ const [likes, setLikes] = useState({});
+ const [recherche, setRecherche] = useState("");
+ const [trilogies, setTrilogies] = useState(initialData);
+ const [nom, setNom] = useState("");
+ const [niveaux, setNiveaux] = useState("");
+ const [tri, setTri] = useState("nom");
+
+ const affichees = [...trilogies]
+ .filter((t) => t.nom.toLowerCase().includes(recherche.toLowerCase()))
+ .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();
+ if (nom.trim() === "") return;
+ const nouvelle = { id: Date.now(), nom, niveaux };
+ setTrilogies([...trilogies, nouvelle]);
+ setNom("");
+ setNiveaux("");
+ }
+
+ function liker(id) {
+ setLikes((prev) => ({ ...prev, [id]: (prev[id] || 0) + 1 }));
+ }
+
+ const total = Object.values(likes).reduce((s, n) => s + n, 0);
+
+
+
+ <>
+
+ >
+
+
setRecherche(e.target.value)}
+ />
+
👍 Total de likes : {total}
+ {affichees.length === 0 &&
Aucune trilogie trouvée
}
+ {affichees.map((trilo) => (
+
liker(trilo.id)}
+ />
+ ))}
+
+ ;
}
export default Accueil;