]> git.localhorst.tv Git - alttp.git/blobdiff - resources/js/components/episodes/Item.js
remove some useless svg groups
[alttp.git] / resources / js / components / episodes / Item.js
index adb710916a088ba8730f89912ba3e643918a06d5..612c5ea85f6f76db13ca777f85a93fbebae70bf2 100644 (file)
@@ -10,11 +10,13 @@ import MultiLink from './MultiLink';
 import Players from './Players';
 import Icon from '../common/Icon';
 import { hasPassed, hasSGRestream, isActive } from '../../helpers/Episode';
+import { getLink } from '../../helpers/Event';
 import { canApplyForEpisode, canRestreamEpisode } from '../../helpers/permissions';
-import { withUser } from '../../helpers/UserContext';
+import { useUser } from '../../hooks/user';
 
-const Item = ({ episode, onAddRestream, onApply, onEditRestream, user }) => {
+const Item = ({ episode, onAddRestream, onApply, onEditRestream }) => {
        const { t } = useTranslation();
+       const { user } = useUser();
 
        const classNames = [
                'episodes-item',
@@ -67,6 +69,20 @@ const Item = ({ episode, onAddRestream, onApply, onEditRestream, user }) => {
                                {!hasChannels && hasPlayers ?
                                        <MultiLink players={episode.players} />
                                : null}
+                               {episode.raceroom ?
+                                       <div>
+                                               <Button
+                                                       href={episode.raceroom}
+                                                       target="_blank"
+                                                       title={t('episodes.raceroom')}
+                                                       variant="outline-secondary"
+                                               >
+                                                       <Icon.RACETIME title="" />
+                                                       {' '}
+                                                       {t('episodes.raceroom')}
+                                               </Button>
+                                       </div>
+                               : null}
                                {onAddRestream && canRestreamEpisode(user, episode) ?
                                        <div>
                                                <Button
@@ -96,7 +112,7 @@ const Item = ({ episode, onAddRestream, onApply, onEditRestream, user }) => {
                        {episode.event ?
                                <div className="episode-event mt-auto">
                                        {episode.event.description_id ?
-                                               <Link className="event-link" to={`/events/${episode.event.name}`}>
+                                               <Link className="event-link" to={getLink(episode.event)}>
                                                        {episode.event.title}
                                                </Link>
                                        :
@@ -123,14 +139,13 @@ Item.propTypes = {
                }),
                players: PropTypes.arrayOf(PropTypes.shape({
                })),
+               raceroom: PropTypes.string,
                start: PropTypes.string,
                title: PropTypes.string,
        }),
        onAddRestream: PropTypes.func,
        onApply: PropTypes.func,
        onEditRestream: PropTypes.func,
-       user: PropTypes.shape({
-       }),
 };
 
-export default withUser(Item);
+export default Item;