]> git.localhorst.tv Git - alttp.git/blobdiff - resources/js/components/episodes/Item.js
more links
[alttp.git] / resources / js / components / episodes / Item.js
index d7c4bab4ff7d68245e87ff84f5a3cabe243fb554..03cb6febd827301ff7d0a8442a11044b3e95f23a 100644 (file)
@@ -1,4 +1,3 @@
-import moment from 'moment';
 import PropTypes from 'prop-types';
 import React from 'react';
 import { Button } from 'react-bootstrap';
@@ -10,17 +9,10 @@ import Crew from './Crew';
 import MultiLink from './MultiLink';
 import Players from './Players';
 import Icon from '../common/Icon';
+import { hasPassed, hasSGRestream, isActive } from '../../helpers/Episode';
 import { canApplyForEpisode, canRestreamEpisode } from '../../helpers/permissions';
 import { withUser } from '../../helpers/UserContext';
 
-const isActive = episode => {
-       if (!episode.start) return false;
-       const now = moment();
-       const start = moment(episode.start).subtract(10, 'minutes');
-       const end = moment(episode.start).add(episode.estimate, 'seconds');
-       return start.isBefore(now) && end.isAfter(now);
-};
-
 const Item = ({ episode, onAddRestream, onApply, onEditRestream, user }) => {
        const { t } = useTranslation();
 
@@ -94,18 +86,24 @@ const Item = ({ episode, onAddRestream, onApply, onEditRestream, user }) => {
                        {hasPlayers ?
                                <Players players={episode.players} />
                        : null}
-                       {(episode.crew && episode.crew.length)
+                       {(episode.crew && episode.crew.length) || (!hasPassed(episode) && (
+                                       hasSGRestream(episode)
                                        || canApplyForEpisode(user, episode, 'commentary')
-                                       || canApplyForEpisode(user, episode, 'tracking') ?
+                                       || canApplyForEpisode(user, episode, 'tracking')
+                       )) ?
                                <div className="mb-3">
                                        <Crew episode={episode} onApply={onApply} />
                                </div>
                        : null}
                        {episode.event ?
                                <div className="episode-event mt-auto">
-                                       <Link className="event-link" to={`/events/${episode.event.name}`}>
-                                               {episode.event.title}
-                                       </Link>
+                                       {episode.event.description_id ?
+                                               <Link className="event-link" to={`/events/${episode.event.name}`}>
+                                                       {episode.event.title}
+                                               </Link>
+                                       :
+                                               episode.event.title
+                                       }
                                </div>
                        : null}
                </div>
@@ -121,6 +119,7 @@ Item.propTypes = {
                })),
                event: PropTypes.shape({
                        corner: PropTypes.string,
+                       description_id: PropTypes.number,
                        name: PropTypes.string,
                        title: PropTypes.string,
                }),