import React from "react" import { Map, List } from "immutable" import PropTypes from "prop-types" const ListDetails = (props) => (
{props.data.get("plot")}
{props.runtime} min
); } Runtime.propTypes = { runtime: PropTypes.number }; const Ratings = (props) => { if (props.rating === undefined) { return null; } return ({Number(props.rating).toFixed(1)} {props.votes !== undefined && ({props.votes} counts) }
); } Ratings.propTypes = { rating: PropTypes.number, votes: PropTypes.number, }; const TrackingLabel = (props) => { let wishlistStr = props.wishlisted ? "Wishlisted" : ""; if (props.trackedEpisode !== null && props.trackedSeason !== null && props.trackedEpisode !== undefined && props.trackedSeason !== undefined) { if ((props.trackedSeason === 0) && (props.trackedEpisode === 0)) { wishlistStr = "Whole show tracked"; } else { wishlistStr = `Tracked from season ${props.trackedSeason} episode ${props.trackedEpisode}`; } } if (wishlistStr === "") { return null; } return ( {wishlistStr} ); } TrackingLabel.propTypes = { wishlisted: PropTypes.bool, trackedSeason: PropTypes.number, trackedEpisode: PropTypes.number, }; const PolochonMetadata = (props) => { if (!props.quality || props.quality === "") { return null; } return ({props.quality} {props.container} {props.videoCodec} {props.audioCodec} {props.releaseGroup}
); } PolochonMetadata.propTypes = { quality: PropTypes.string, container: PropTypes.string, videoCodec: PropTypes.string, audioCodec: PropTypes.string, releaseGroup: PropTypes.string, }; const Genres = (props) => { if (props.genres === undefined) { return null; } // Uppercase first genres const prettyGenres = props.genres.toJS().map( (word) => word[0].toUpperCase() + word.substr(1) ).join(", "); return ({prettyGenres}
); } Genres.propTypes = { genres: PropTypes.instanceOf(List), };