X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fhelpers%2FParticipant.js;h=d79349bca8776a65ae853943df671f8ffb8f114f;hb=d1f28ea443b090c7593791eba9631796ccaeafe1;hp=3db4121c5b6d3689aca5911b9388c8af4d0cc7ac;hpb=812a270c7a410461e931394496512d36b34ef7b5;p=alttp.git diff --git a/resources/js/helpers/Participant.js b/resources/js/helpers/Participant.js index 3db4121..d79349b 100644 --- a/resources/js/helpers/Participant.js +++ b/resources/js/helpers/Participant.js @@ -25,7 +25,7 @@ export const compareResult = round => (a, b) => { if (b_forfeit) { return 1; } - return 0; + return compareUsername(a, b); }; export const compareUsername = (a, b) => { @@ -40,6 +40,24 @@ export const findResult = (participant, round) => { return round.results.find(result => result.user_id === participant.user_id); }; +export const isRunner = participant => + participant && participant.roles && participant.roles.includes('runner'); + +export const isTournamentAdmin = participant => + participant && participant.roles && participant.roles.includes('admin'); + +export const patchUser = (participant, user) => { + if (!participant || !user) return participant; + if (participant.user_id != user.id) return participant; + return { + ...participant, + user: { + ...participant.user, + ...user, + }, + }; +}; + export const sortByResult = (participants, round) => { if (!participants || !participants.length) return participants; if (!round || !round.results || !round.results.length) return participants; @@ -50,5 +68,8 @@ export default { compareResult, compareUsername, findResult, + isRunner, + isTournamentAdmin, + patchUser, sortByResult, };