X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fcomponents%2Frounds%2FItem.js;h=0ef77c5d2c5ce6b9bec1c8798ddba6c184b43a77;hb=e5192dadab765ecf0cdb877e0497293e0c9f1e45;hp=10549dd151a5f52048e0fd56c19c0288e55ac92b;hpb=2daab77f3b549a6c88c4d1949b994e38dd6bd80f;p=alttp.git diff --git a/resources/js/components/rounds/Item.js b/resources/js/components/rounds/Item.js index 10549dd..0ef77c5 100644 --- a/resources/js/components/rounds/Item.js +++ b/resources/js/components/rounds/Item.js @@ -1,65 +1,112 @@ import PropTypes from 'prop-types'; import React from 'react'; -import { withTranslation } from 'react-i18next'; +import { useTranslation } from 'react-i18next'; +import EditButton from './EditButton'; +import LockButton from './LockButton'; import SeedButton from './SeedButton'; import SeedCode from './SeedCode'; +import SeedRolledBy from './SeedRolledBy'; import List from '../results/List'; import ReportButton from '../results/ReportButton'; -import { isParticipant } from '../../helpers/permissions'; -import { findParticipant } from '../../helpers/Tournament'; -import { withUser } from '../../helpers/UserContext'; -import i18n from '../../i18n'; +import { mayEditRound, mayReportResult, isRunner } from '../../helpers/permissions'; +import { isComplete } from '../../helpers/Round'; +import { hasFinishedRound } from '../../helpers/User'; +import { useUser } from '../../hooks/user'; + +const getClassName = (round, tournament, user) => { + const classNames = ['round']; + if (round.locked) { + classNames.push('is-locked'); + } else { + classNames.push('is-unlocked'); + } + if (isComplete(tournament, round)) { + classNames.push('is-complete'); + } else { + classNames.push('is-incomplete'); + } + if (hasFinishedRound(user, round)) { + classNames.push('has-finished'); + } else if (isRunner(user, tournament)) { + classNames.push('has-not-finished'); + } + return classNames.join(' '); +}; const Item = ({ round, tournament, - user, -}) => -
- {round.number ? `#${round.number} ` : '#?'} - {i18n.t('rounds.date', { date: new Date(round.created_at) })} -
-
- {round.code ?
- <>
-
-
+ {tournament.show_numbers && round.number ? `#${round.number} ` : ''} + {t('rounds.date', { date: new Date(round.created_at) })} +
+
+ {round.code && round.code.length ?
+ <>
+
+ >
+ : null}
+
+
{t('rounds.numberOfResults', { count: round.results.length })}
+ : null} +