X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fcomponents%2Fresults%2FReportButton.js;h=ec8f8fd17156e920f7acb74bc14171e48f83a1d1;hb=537b998e8059c56e3a20ee2a89d42c3bbfbb80b8;hp=d88c1a11285ee5ed72543f70f65421b5a6100fc2;hpb=d748feb96453d74aeffec648d6f5f68d9ef3b520;p=alttp.git diff --git a/resources/js/components/results/ReportButton.js b/resources/js/components/results/ReportButton.js index d88c1a1..ec8f8fd 100644 --- a/resources/js/components/results/ReportButton.js +++ b/resources/js/components/results/ReportButton.js @@ -5,10 +5,27 @@ import { withTranslation } from 'react-i18next'; import ReportDialog from './ReportDialog'; import Icon from '../common/Icon'; -import { findResult } from '../../helpers/Participant'; +import { findResult } from '../../helpers/User'; import i18n from '../../i18n'; -const ReportButton = ({ participant, round }) => { +const getButtonLabel = (user, round) => { + const result = findResult(user, round); + if (round.locked) { + if (result && result.comment) { + return i18n.t('results.editComment'); + } else { + return i18n.t('results.addComment'); + } + } else { + if (result && (result.time || result.forfeit)) { + return i18n.t('results.edit'); + } else { + return i18n.t('results.report'); + } + } +}; + +const ReportButton = ({ round, user }) => { const [showDialog, setShowDialog] = useState(false); return <> @@ -16,26 +33,26 @@ const ReportButton = ({ participant, round }) => { onClick={() => setShowDialog(true)} variant="secondary" > - {i18n.t(findResult(participant, round) ? 'results.edit' : 'results.report')} + {getButtonLabel(user, round)} {' '} setShowDialog(false)} - participant={participant} round={round} show={showDialog} + user={user} /> ; }; ReportButton.propTypes = { - participant: PropTypes.shape({ - }), round: PropTypes.shape({ }), tournament: PropTypes.shape({ }), + user: PropTypes.shape({ + }), }; export default withTranslation()(ReportButton);