X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fcomponents%2Ftournament%2FScoreboard.js;h=f13adacb61bbaa7a4465f88fb8b549ea535cca40;hb=237ebc69c5eb4fbfe226c4dcdc9711d7b18ddcd2;hp=40ad82ff300724acda076a5f7038d1546b723c5e;hpb=d32516335ea2534e15256c948e9c38d3de40794b;p=alttp.git diff --git a/resources/js/components/tournament/Scoreboard.js b/resources/js/components/tournament/Scoreboard.js index 40ad82f..f13adac 100644 --- a/resources/js/components/tournament/Scoreboard.js +++ b/resources/js/components/tournament/Scoreboard.js @@ -31,6 +31,33 @@ const getPlacementDisplay = participant => { return participant.placement; }; +const twitchReg = /^https?:\/\/(www\.)?twitch\.tv/; +const youtubeReg = /^https?:\/\/(www\.)?youtu(\.be|be\.)/; + +const getStreamVariant = participant => { + if (!participant || !participant.user || !participant.user.stream_link) { + return 'outline-secondary'; + } + if (twitchReg.test(participant.user.stream_link)) { + return 'outline-twitch'; + } + if (youtubeReg.test(participant.user.stream_link)) { + return 'outline-youtube'; + } + return 'outline-secondary'; +}; + +const getStreamIcon = participant => { + const variant = getStreamVariant(participant); + if (variant === 'outline-twitch') { + return ; + } + if (variant === 'outline-youtube') { + return ; + } + return ; +}; + const Scoreboard = ({ tournament, user }) => @@ -55,9 +82,9 @@ const Scoreboard = ({ tournament, user }) => size="sm" target="_blank" title={i18n.t('users.stream')} - variant="outline-twitch" + variant={getStreamVariant(participant)} > - + {getStreamIcon(participant)} : null}