import React from "react"; import PropTypes from "prop-types"; import { useDispatch, useSelector } from "react-redux"; import { showWishlistToggle } from "../../../actions/shows"; import { prettyEpisodeName } from "../../../utils"; import { Plot } from "../../details/plot"; import { PolochonMetadata } from "../../details/polochon"; import { ReleaseDate } from "../../details/releaseDate"; import { Runtime } from "../../details/runtime"; import { Title } from "../../details/title"; import { DownloadProgress } from "../../details/downloadProgress"; import { DownloadAndStream } from "../../buttons/download"; import { ShowMore } from "../../buttons/showMore"; import { EpisodeSubtitlesButton } from "./subtitlesButton"; import { EpisodeThumb } from "./episodeThumb"; import { EpisodeTorrentsButton } from "./torrentsButton"; export const Episode = ({ season, episode }) => { const dispatch = useDispatch(); const imdbId = useSelector((state) => state.show.show.imdb_id); const showTitle = useSelector((state) => state.show.show.title); const data = useSelector((state) => state.show.show.seasons.get(season).get(episode) ); const isWishlisted = useSelector((state) => { const trackedSeason = state.show.show.tracked_season; const trackedEpisode = state.show.show.tracked_episode; if (trackedSeason == null || trackedEpisode == null) { return false; } if (trackedSeason == 0 || trackedEpisode == 0) { return true; } if (season < trackedSeason) { return false; } else if (season > trackedSeason) { return true; } else { return episode >= trackedEpisode; } }); return (