import React from 'react';
import Item from './Item';
+import { sortByResult } from '../../helpers/Participant';
const List = ({ round, tournament }) => <div className="results d-flex">
- {tournament.participants.map(participant =>
+ {sortByResult(tournament.participants, round).map(participant =>
<Item
key={participant.id}
participant={participant}
+export const compareResult = round => (a, b) => {
+ const a_result = findResult(a, round);
+ const b_result = findResult(b, round);
+ const a_time = a_result ? a_result.time : 0;
+ const b_time = b_result ? b_result.time : 0;
+ if (a_time) {
+ if (b_time) {
+ if (a_time < b_time) return -1;
+ if (b_time < a_time) return 1;
+ return 0;
+ }
+ return -1;
+ }
+ if (b_time) {
+ return 1;
+ }
+ return 0;
+};
+
export const compareUsername = (a, b) => {
const a_name = a && a.user && a.user.username ? a.user.username : '';
const b_name = b && b.user && b.user.username ? b.user.username : '';
return round.results.find(result => result.user_id === participant.user_id);
};
+export const sortByResult = (participants, round) => {
+ if (!participants || !participants.length) return participants;
+ if (!round || !round.results || !round.results.length) return participants;
+ return participants.sort(compareResult(round));
+};
+
export default {
+ compareResult,
compareUsername,
findResult,
+ sortByResult,
};