+export const getLastRound = tournament => {
+ if (!tournament || !tournament.rounds || !tournament.rounds.length) return null;
+ return tournament.rounds.slice(-1)[0];
+};
+
+export const canLoadMoreRounds = tournament => {
+ const last_round = getLastRound(tournament);
+ return last_round && last_round.number > 1;
+};
+
+export const hasScoreboard = tournament => !!(tournament && tournament.type === 'signup-async');
+
+export const hasSignup = tournament => !!(tournament && tournament.type === 'signup-async');
+
+export const getScoreTable = tournament => {
+ if (!tournament || !tournament.rounds || !tournament.rounds.length) return [];
+ const runners = getRunners(tournament);
+ if (!runners.length) return [];
+ const running = {};
+ runners.forEach(participant => {
+ running[participant.id] = 0;
+ });
+ const data = [...tournament.rounds, {}].reverse().map(round => {
+ const entry = { number: round.number ? `#${round.number}` : '' };
+ runners.forEach(participant => {
+ const result = Participant.findResult(participant, round);
+ if (result && result.score) {
+ running[participant.id] += result.score;
+ }
+ entry[Participant.getUserName(participant)] = running[participant.id];
+ });
+ return entry;
+ });
+ return data;
+};
+