X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fcomponents%2Fresults%2FList.js;h=fb26fa56f264d94c2c393a6dc70af0e23dea91f3;hb=3a069159f7971758817bb281f72a41ddc7d7a958;hp=8775529493d6d9909ff1cf3fd9674b41ca62edb7;hpb=0f171dfffd9c0c2cc895c9f282c5f4550844cc5a;p=alttp.git diff --git a/resources/js/components/results/List.js b/resources/js/components/results/List.js index 8775529..fb26fa5 100644 --- a/resources/js/components/results/List.js +++ b/resources/js/components/results/List.js @@ -2,27 +2,57 @@ import PropTypes from 'prop-types'; import React from 'react'; import Item from './Item'; -import { sortByResult } from '../../helpers/Participant'; +import { sortByFinished, sortByResult } from '../../helpers/Participant'; +import { maySeeResults } from '../../helpers/permissions'; +import { getRunners } from '../../helpers/Tournament'; +import { compareResult } from '../../helpers/Result'; +import { withUser } from '../../helpers/UserContext'; -const List = ({ round, tournament }) =>
- {sortByResult(tournament.participants, round).map((participant, index) => - - )} -
; +const List = ({ round, tournament, user }) => { + if (tournament.type === 'open-async') { + const results = maySeeResults(user, tournament, round) + ? (round.results || []).sort(compareResult) + : round.results || []; + return
+ {results.map(result => + + )} +
; + } + const runners = maySeeResults(user, tournament, round) + ? sortByResult(getRunners(tournament), round) + : sortByFinished(getRunners(tournament), round); + return
+ {runners.map(participant => + + )} +
; +}; List.propTypes = { round: PropTypes.shape({ + results: PropTypes.arrayOf(PropTypes.shape({ + })), }), tournament: PropTypes.shape({ participants: PropTypes.arrayOf(PropTypes.shape({ })), + type: PropTypes.string, + users: PropTypes.arrayOf(PropTypes.shape({ + })), + }), + user: PropTypes.shape({ }), }; -export default List; +export default withUser(List);