correct sorting values in Table

This commit is contained in:
mattyl006 2022-11-15 17:29:09 +01:00
parent 4334e4dfcc
commit 782627a920
3 changed files with 20 additions and 11 deletions

View File

@ -1,7 +1,7 @@
import {API} from '../utils/globals'; import {API} from '../utils/globals';
import KeyCloakService from '../services/KeyCloakService'; import KeyCloakService from '../services/KeyCloakService';
const getMyEntries = (challengeName, setDataOriginalState, setDataState, setLoadingState) => { const getMyEntries = (challengeName, setDataOriginalState, setDataState, setLoadingState, setScoreSorted) => {
fetch(`${API}/challenge-my-submissions/${challengeName}`, { fetch(`${API}/challenge-my-submissions/${challengeName}`, {
headers: {'Authorization': `Bearer ${KeyCloakService.getToken()}`} headers: {'Authorization': `Bearer ${KeyCloakService.getToken()}`}
}) })
@ -10,6 +10,7 @@ const getMyEntries = (challengeName, setDataOriginalState, setDataState, setLoad
setDataOriginalState(data); setDataOriginalState(data);
let item = {}; let item = {};
let result = []; let result = [];
let initSetScoreSorted = [];
let tests = data.tests; let tests = data.tests;
for (let submission of data.submissions) { for (let submission of data.submissions) {
for (let evaluation of submission.evaluations) { for (let evaluation of submission.evaluations) {
@ -41,6 +42,11 @@ const getMyEntries = (challengeName, setDataOriginalState, setDataState, setLoad
result.push(item); result.push(item);
item = {}; item = {};
} }
// eslint-disable-next-line no-unused-vars
for (let _ of tests) {
initSetScoreSorted.push(false);
}
setScoreSorted(initSetScoreSorted);
setDataState(result); setDataState(result);
setLoadingState(false); setLoadingState(false);
}); });

View File

@ -90,10 +90,10 @@ const Leaderboard = (props) => {
switch (elem) { switch (elem) {
case 'submitter': case 'submitter':
if (submitterSorted) { if (submitterSorted) {
newEntries = newEntries.sort((a, b) => (a.submitter > b.submitter) ? 1 : ((b.submitter > a.submitter) ? -1 : 0)); newEntries = newEntries.sort((a, b) => (a.submitter < b.submitter) ? 1 : ((b.submitter < a.submitter) ? -1 : 0));
setSubmitterSorted(false); setSubmitterSorted(false);
} else { } else {
newEntries = newEntries.sort((a, b) => (a.submitter < b.submitter) ? 1 : ((b.submitter < a.submitter) ? -1 : 0)); newEntries = newEntries.sort((a, b) => (a.submitter > b.submitter) ? 1 : ((b.submitter > a.submitter) ? -1 : 0));
setSubmitterSorted(true); setSubmitterSorted(true);
} }
break; break;
@ -126,7 +126,6 @@ const Leaderboard = (props) => {
} }
break; break;
} }
console.log(newEntries);
setEntries(newEntries); setEntries(newEntries);
}; };

View File

@ -16,7 +16,7 @@ const MyEntries = (props) => {
const [loading, setLoading] = React.useState(true); const [loading, setLoading] = React.useState(true);
const [pageNr, setPageNr] = React.useState(1); const [pageNr, setPageNr] = React.useState(1);
const [whenSorted, setWhenSorted] = React.useState(false); const [whenSorted, setWhenSorted] = React.useState(false);
const [scoreSorted, setScoreSorted] = React.useState(false); const [scoresSorted, setScoresSorted] = React.useState([]);
/* eslint-disable */ /* eslint-disable */
React.useEffect(() => { React.useEffect(() => {
@ -62,7 +62,7 @@ const MyEntries = (props) => {
}; };
const challengesRequest = () => { const challengesRequest = () => {
getMyEntries(props.challengeName, setMyEntriesFromAPI, setMyEntries, setLoading); getMyEntries(props.challengeName, setMyEntriesFromAPI, setMyEntries, setLoading, setScoresSorted);
}; };
const mobileRender = () => { const mobileRender = () => {
@ -84,12 +84,16 @@ const MyEntries = (props) => {
} }
break; break;
default: default:
if (scoreSorted) { let metricIndex = getPossibleMetrics().indexOf(elem);
newEntries = newEntries.sort((a, b) => a.evaluations[elem] - b.evaluations[elem]); let newScoresSorted = scoresSorted;
setScoreSorted(false); if (scoresSorted[metricIndex]) {
} else {
newEntries = newEntries.sort((a, b) => b.evaluations[elem] - a.evaluations[elem]); newEntries = newEntries.sort((a, b) => b.evaluations[elem] - a.evaluations[elem]);
setScoreSorted(true); newScoresSorted[metricIndex] = false;
setScoresSorted(newScoresSorted);
} else {
newEntries = newEntries.sort((a, b) => a.evaluations[elem] - b.evaluations[elem]);
newScoresSorted[metricIndex] = true;
setScoresSorted(newScoresSorted);
} }
break; break;
} }