From bab709a7eb9ddaf695c82d682265e557e85d8d86 Mon Sep 17 00:00:00 2001 From: Mateusz Tylka Date: Wed, 10 May 2023 15:12:28 +0200 Subject: [PATCH] sorting by description in Leaderboard --- .../Leaderboard/Leaderboard.js | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/components/specific_challenge/Leaderboard/Leaderboard.js b/src/components/specific_challenge/Leaderboard/Leaderboard.js index c0b6fd4..8ffb2c6 100644 --- a/src/components/specific_challenge/Leaderboard/Leaderboard.js +++ b/src/components/specific_challenge/Leaderboard/Leaderboard.js @@ -22,6 +22,7 @@ const Leaderboard = (props) => { const [pageNr, setPageNr] = React.useState(1); const [loading, setLoading] = React.useState(true); const [submitterSorted, setSubmitterSorted] = React.useState(false); + const [descriptionSorted, setDescriptionSorted] = React.useState(false); const [entriesSorted, setEntriesSorted] = React.useState(false); const [whenSorted, setWhenSorted] = React.useState(false); const [scoresSorted, setScoresSorted] = React.useState([]); @@ -106,6 +107,27 @@ const Leaderboard = (props) => { setSubmitterSorted(true); } break; + case 'description': + if (descriptionSorted) { + newEntries = newEntries.sort((a, b) => + a.description.toLowerCase() < b.description.toLowerCase() + ? 1 + : b.description.toLowerCase() < a.description.toLowerCase() + ? -1 + : 0 + ); + setDescriptionSorted(false); + } else { + newEntries = newEntries.sort((a, b) => + a.description.toLowerCase() > b.description.toLowerCase() + ? 1 + : b.description.toLowerCase() > a.description.toLowerCase() + ? -1 + : 0 + ); + setDescriptionSorted(true); + } + break; case 'entries': if (entriesSorted) { newEntries = newEntries.sort((a, b) => b.times - a.times);