X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fcomponents%2Fresults%2FItem.js;h=4b243b34bc4a9a673a55c233d4c4c62481745851;hb=72d6c25d3b1a6d79843d5673ba78804dd442ae39;hp=84395222407e1d50854e283a282a31002b73a328;hpb=d32516335ea2534e15256c948e9c38d3de40794b;p=alttp.git diff --git a/resources/js/components/results/Item.js b/resources/js/components/results/Item.js index 8439522..4b243b3 100644 --- a/resources/js/components/results/Item.js +++ b/resources/js/components/results/Item.js @@ -1,69 +1,60 @@ import PropTypes from 'prop-types'; -import React from 'react'; -import { withTranslation } from 'react-i18next'; +import React, { useState } from 'react'; +import { Button } from 'react-bootstrap'; -import Icon from '../common/Icon'; +import DetailDialog from './DetailDialog'; import Box from '../users/Box'; -import { formatTime } from '../../helpers/Result'; -import { findResult } from '../../helpers/Participant'; +import { getIcon, getTime } from '../../helpers/Result'; import { maySeeResults } from '../../helpers/permissions'; +import { findResult } from '../../helpers/User'; import { withUser } from '../../helpers/UserContext'; -const getIcon = (result, maySee) => { - if (!result || !result.has_finished) { - return ; +const getClassName = result => { + const classNames = ['status']; + if (result && result.has_finished) { + classNames.push('finished'); + if (result.comment) { + classNames.push('has-comment'); + } + } else { + classNames.push('pending'); } - if (result.forfeit && maySee) { - return ; - } - if (result.placement === 1) { - return ; - } - if (result.placement === 2) { - return ; - } - if (result.placement === 3) { - return ; - } - return ; -}; - -const getTime = (result, maySee) => { - if (!result || !maySee) { - return null; - } - if (result.time) { - return formatTime(result); - } - if (result.forfeit) { - return 'DNF'; - } - return '?'; + return classNames.join(' '); }; const Item = ({ - participant, + authUser, round, tournament, user, }) => { - const result = findResult(participant, round); - const maySee = maySeeResults(user, tournament, round); + const [showDialog, setShowDialog] = useState(false); + const result = findResult(user, round); + const maySee = maySeeResults(authUser, tournament, round); return
- -
+ +
+ + setShowDialog(false)} + round={round} + show={showDialog} + tournament={tournament} + user={user} + />
; }; Item.propTypes = { - participant: PropTypes.shape({ - user: PropTypes.shape({ - }), + authUser: PropTypes.shape({ }), round: PropTypes.shape({ }), @@ -73,4 +64,4 @@ Item.propTypes = { }), }; -export default withTranslation()(withUser(Item)); +export default withUser(Item, 'authUser');