From b024d13101fda0cc8998a4335a7ff71b98517ad6 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Thu, 20 Nov 2025 22:14:29 +0100 Subject: [PATCH] add of sort method --- src/components/Filter/Filter.jsx | 62 ++++++++------- src/components/Filter/Filter.module.css | 12 ++- src/index.css | 6 +- src/pages/Events/EventsPage.jsx | 100 ++++++++++++++++-------- src/pages/Events/EventsPage.module.css | 2 +- 5 files changed, 118 insertions(+), 64 deletions(-) diff --git a/src/components/Filter/Filter.jsx b/src/components/Filter/Filter.jsx index e98c259..e0f39e2 100644 --- a/src/components/Filter/Filter.jsx +++ b/src/components/Filter/Filter.jsx @@ -17,37 +17,43 @@ function Filter({isFilterVisible, filters, setFilters}){ return (
- - + - - - - - + + + + + + - - - - - + + +
) } diff --git a/src/components/Filter/Filter.module.css b/src/components/Filter/Filter.module.css index 354f2a2..2f46bfa 100644 --- a/src/components/Filter/Filter.module.css +++ b/src/components/Filter/Filter.module.css @@ -41,5 +41,15 @@ .filterTag svg { - transform: scale(4); + transform: scale(1); +} + + +.active { + border: 1px solid #019AFF; +} + +.active svg { + fill: #019AFF; + transform: scale(1); } \ No newline at end of file diff --git a/src/index.css b/src/index.css index 5ed7c85..1699f0d 100644 --- a/src/index.css +++ b/src/index.css @@ -49,9 +49,9 @@ body { .glassCard { width: 100%; - padding: 10px 20px 10px 20px; + padding: 10px 10px 10px 10px; height: fit-content; - background: rgba(255, 255, 255, 0.65); + background: rgba(184, 184, 184, 0.65); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); border-radius: 20px; @@ -60,7 +60,7 @@ body { 0 8px 32px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.5), inset 0 -1px 0 rgba(255, 255, 255, 0.1), - inset 0 0 8px 4px rgba(255, 255, 255, 0.4); + inset 0 0 30px 4px rgba(255, 255, 255, 0.4); position: relative; overflow: hidden; } diff --git a/src/pages/Events/EventsPage.jsx b/src/pages/Events/EventsPage.jsx index 46f2770..d2e0bf7 100644 --- a/src/pages/Events/EventsPage.jsx +++ b/src/pages/Events/EventsPage.jsx @@ -26,16 +26,16 @@ function EventsPage(){ tasks: [ { name: "Inscription des participants", - start: "08:00", - end: "10:00", + start: "2018-09-24 22:21:20", + end: "2018-09-24 22:21:20", place: "Centre sportif", description: "Accueillir et enregistrer tous les coureurs.", volunteers_count: 5 }, { name: "Distribution des dossards", - start: "09:00", - end: "11:00", + start: "2018-09-24 22:21:20", + end: "2018-09-24 22:21:20", place: "Salle principale", description: "Remettre les dossards et goodies aux participants.", volunteers_count: 3 @@ -50,16 +50,16 @@ function EventsPage(){ tasks: [ { name: "Montage de la scène", - start: "10:00", - end: "14:00", + start: "2018-09-24 22:21:20", + end: "2018-09-24 22:21:20", place: "Parc central", description: "Installer la scène, les éclairages et le son.", volunteers_count: 6 }, { name: "Accueil du public", - start: "14:00", - end: "20:00", + start: "2018-09-24 22:21:20", + end: "2018-09-24 22:21:20", place: "Entrée principale", description: "Vérifier les billets et orienter les visiteurs.", volunteers_count: 4 @@ -74,24 +74,24 @@ function EventsPage(){ tasks: [ { name: "Préparation des salles", - start: "07:00", - end: "09:00", + start: "2018-09-24 22:21:20", + end: "2018-09-24 22:21:20", place: "Campus Tech", description: "Installer les chaises, projecteurs et matériel pour les conférences.", volunteers_count: 4 }, { name: "Accueil des intervenants", - start: "08:30", - end: "10:00", + start: "2018-09-24 22:21:20", + end: "2018-09-24 22:21:20", place: "Hall principal", description: "Assister les speakers et orienter vers les salles.", volunteers_count: 2 }, { name: "Gestion du buffet", - start: "12:00", - end: "14:00", + start: "2018-09-24 22:21:20", + end: "2018-09-24 22:21:20", place: "Salle de restauration", description: "Distribuer boissons et repas aux participants.", volunteers_count: 3 @@ -106,16 +106,16 @@ function EventsPage(){ tasks: [ { name: "Installation du matériel", - start: "09:00", - end: "10:00", + start: "2018-09-24 22:21:20", + end: "2018-09-24 22:21:20", place: "Jardin partagé", description: "Préparer outils et terreaux pour les participants.", volunteers_count: 2 }, { name: "Encadrement des participants", - start: "10:00", - end: "12:00", + start: "2018-09-24 22:21:20", + end: "2018-09-24 22:21:20", place: "Jardin partagé", description: "Aider et conseiller sur la plantation et l’entretien.", volunteers_count: 3 @@ -130,48 +130,48 @@ function EventsPage(){ tasks: [ { name: "Accueil et enregistrement", - start: "08:00", - end: "12:00", + start: "2020-09-24 22:21:20", + end: "2020-09-24 22:21:20", place: "Salle municipale", description: "Enregistrer les donneurs et expliquer le processus.", volunteers_count: 4 }, { name: "Préparation des salles", - start: "07:30", - end: "08:00", + start: "2018-09-24 22:21:20", + end: "2018-09-24 22:21:20", place: "Salle municipale", description: "Installer les lits, tables et matériel médical.", volunteers_count: 3 }, { name: "Assistance post-don", - start: "12:00", - end: "16:00", + start: "2018-09-24 22:21:20", + end: "2018-09-24 22:21:20", place: "Salle municipale", description: "Accompagner les donneurs après le don et proposer des rafraîchissements.", volunteers_count: 2 }, { name: "Accueil et enregistrement", - start: "08:00", - end: "12:00", + start: "2020-09-24 22:21:20", + end: "2020-09-24 22:21:20", place: "Salle municipale", description: "Enregistrer les donneurs et expliquer le processus.", volunteers_count: 4 }, { name: "Préparation des salles", - start: "07:30", - end: "08:00", + start: "2018-09-24 22:21:20", + end: "2018-09-24 22:21:20", place: "Salle municipale", description: "Installer les lits, tables et matériel médical.", volunteers_count: 3 }, { name: "Assistance post-don", - start: "12:00", - end: "16:00", + start: "2018-09-24 22:21:20", + end: "2018-09-24 22:21:20", place: "Salle municipale", description: "Accompagner les donneurs après le don et proposer des rafraîchissements.", volunteers_count: 2 @@ -180,12 +180,50 @@ function EventsPage(){ }, ]); + const compareDate = (dateA, dateB) => { + const dA = new Date(dateA); + const dB = new Date(dateB); + + if (filters.yearOrder === "asc") { + return dB - dA; + } else { + return dA - dB; + } + }; + + const sortedEvents = [...events].sort((a, b) => { + const sortedATasks = a.tasks.sort((taskA, taskB) => + compareDate(taskA.start, taskB.start) + ); + const sortedBTasks = b.tasks.sort((taskA, taskB) => + compareDate(taskA.start, taskB.start) + ); + + const timeComparison = compareDate( + sortedATasks[0].start, + sortedBTasks[0].start + ); + + if (timeComparison !== 0) { + return timeComparison; + } + + if (filters.alphabetical !== null) { + return filters.alphabetical === "asc" + ? a.name.localeCompare(b.name) + : b.name.localeCompare(a.name); + } + + return 0; + }); + + return (
- {events.map((event, index) => ( + {sortedEvents.map((event, index) => ( ))}
diff --git a/src/pages/Events/EventsPage.module.css b/src/pages/Events/EventsPage.module.css index 19c0be3..64a6dd2 100644 --- a/src/pages/Events/EventsPage.module.css +++ b/src/pages/Events/EventsPage.module.css @@ -51,7 +51,7 @@ } .sortButton svg { - transform: scale(1.5); + transform: scale(0.8); fill: #019AFF; }