X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fcomponents%2Fresults%2FItem.js;h=b8a0ec61ec7f7ca23e42bbdae4b4c14eb5204d96;hb=0407853837c323428d122a027fbdb574025824db;hp=4b243b34bc4a9a673a55c233d4c4c62481745851;hpb=35d1ce20e64f3373d74816ed1bf9440b4213fa1a;p=alttp.git diff --git a/resources/js/components/results/Item.js b/resources/js/components/results/Item.js index 4b243b3..b8a0ec6 100644 --- a/resources/js/components/results/Item.js +++ b/resources/js/components/results/Item.js @@ -1,13 +1,16 @@ import PropTypes from 'prop-types'; import React, { useState } from 'react'; import { Button } from 'react-bootstrap'; +import { withTranslation } from 'react-i18next'; import DetailDialog from './DetailDialog'; +import Icon from '../common/Icon'; import Box from '../users/Box'; import { getIcon, getTime } from '../../helpers/Result'; import { maySeeResults } from '../../helpers/permissions'; import { findResult } from '../../helpers/User'; import { withUser } from '../../helpers/UserContext'; +import i18n from '../../i18n'; const getClassName = result => { const classNames = ['status']; @@ -22,6 +25,31 @@ const getClassName = result => { return classNames.join(' '); }; +const twitchReg = /^https?:\/\/(www\.)?twitch\.tv/; +const youtubeReg = /^https?:\/\/(www\.)?youtu(\.be|be\.)/; + +const getVoDVariant = result => { + if (!result || !result.vod) return 'outline-secondary'; + if (twitchReg.test(result.vod)) { + return 'twitch'; + } + if (youtubeReg.test(result.vod)) { + return 'outline-youtube'; + } + return 'outline-secondary'; +}; + +const getVoDIcon = result => { + const variant = getVoDVariant(result); + if (variant === 'twitch') { + return ; + } + if (variant === 'outline-youtube') { + return ; + } + return ; +}; + const Item = ({ authUser, round, @@ -33,16 +61,30 @@ const Item = ({ const maySee = maySeeResults(authUser, tournament, round); return
- +
+ + {maySee && result && result.vod ? + + : null} +
setShowDialog(false)} round={round} @@ -64,4 +106,4 @@ Item.propTypes = { }), }; -export default withUser(Item, 'authUser'); +export default withTranslation()(withUser(Item, 'authUser'));