add of sort method

This commit is contained in:
2025-11-20 22:14:29 +01:00
parent 4ac727e76a
commit b024d13101
5 changed files with 118 additions and 64 deletions
+69 -31
View File
@@ -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 lentretien.",
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 (
<div className={styles.eventsContainer}>
<div className={styles.eventsList}>
{events.map((event, index) => (
{sortedEvents.map((event, index) => (
<Event key={index} event={event} />
))}
</div>
+1 -1
View File
@@ -51,7 +51,7 @@
}
.sortButton svg {
transform: scale(1.5);
transform: scale(0.8);
fill: #019AFF;
}