import { sortByFinished, sortByResult } from '../../helpers/Participant';
import { maySeeResults } from '../../helpers/permissions';
import { getRunners } from '../../helpers/Tournament';
-import { withUser } from '../../helpers/UserContext';
+import { compareResult } from '../../helpers/Result';
+import { useUser } from '../../hooks/user';
-const List = ({ round, tournament, user }) => {
+const List = ({ round, tournament }) => {
+ const { user } = useUser();
+
+ if (tournament.type === 'open-async') {
+ const results = maySeeResults(user, tournament, round)
+ ? (round.results || []).sort(compareResult)
+ : round.results || [];
+ return <div className="results d-flex flex-wrap">
+ {results.map(result =>
+ <Item
+ key={result.id}
+ round={round}
+ tournament={tournament}
+ user={result.user}
+ />
+ )}
+ </div>;
+ }
const runners = maySeeResults(user, tournament, round)
? sortByResult(getRunners(tournament), round)
: sortByFinished(getRunners(tournament), round);
{runners.map(participant =>
<Item
key={participant.id}
- participant={participant}
round={round}
tournament={tournament}
+ user={participant.user}
/>
)}
</div>;
List.propTypes = {
round: PropTypes.shape({
+ results: PropTypes.arrayOf(PropTypes.shape({
+ })),
}),
tournament: PropTypes.shape({
participants: PropTypes.arrayOf(PropTypes.shape({
})),
- }),
- user: PropTypes.shape({
+ type: PropTypes.string,
+ users: PropTypes.arrayOf(PropTypes.shape({
+ })),
}),
};
-export default withUser(List);
+export default List;