X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fcomponents%2Fresults%2FReportButton.js;h=9db944ee79ace429eed3928e6d4b5bcd10440768;hb=90c7102cea4af9b07eb5232fd720f4b2714f44ed;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..9db944e 100644 --- a/resources/js/components/results/ReportButton.js +++ b/resources/js/components/results/ReportButton.js @@ -5,37 +5,59 @@ 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); + if (round.locked && !findResult(user, round)) { + return null; + } + return <> setShowDialog(false)} - participant={participant} round={round} show={showDialog} + user={user} /> ; }; ReportButton.propTypes = { - participant: PropTypes.shape({ - }), round: PropTypes.shape({ + locked: PropTypes.bool, }), tournament: PropTypes.shape({ }), + user: PropTypes.shape({ + }), }; export default withTranslation()(ReportButton);