83 lines
2.4 KiB
JavaScript

import React from "react"
import PropTypes from "prop-types"
import { Map } from "immutable"
import { connect } from "react-redux"
import { addShowToWishlist, deleteShowFromWishlist } from "../../../actions/shows"
import Tooltip from "react-bootstrap/Tooltip"
import OverlayTrigger from "react-bootstrap/OverlayTrigger"
export const trackHeader = (props) => {
const trackedSeason = props.data.get("tracked_season");
const trackedEpisode = props.data.get("tracked_episode");
const imdbId = props.data.get("imdb_id");
const wishlisted = (trackedSeason !== null && trackedEpisode !== null);
const handleClick = () => {
if (wishlisted) {
props.deleteShowFromWishlist(imdbId);
} else {
props.addShowToWishlist(imdbId);
}
}
if (wishlisted) {
const msg = (trackedSeason !== 0 && trackedEpisode !== 0)
? (<p>Show tracked from <strong>season {trackedSeason} episode {trackedEpisode}</strong></p>)
: (<p>Whole show tracked</p>);
return (
<span className="card-text">
{msg}
<a className="btn btn-sm btn-danger" onClick={handleClick}>
<i className="fa fa-bookmark"></i> Untrack the show
</a>
</span>
);
}
return (
<span className="card-text">
<p>Tracking inactive</p>
<a className="btn btn-sm btn-info" onClick={(e) => handleClick(e)}>
<i className="fa fa-bookmark-o"></i> Track the whole show
</a>
</span>
);
}
trackHeader.propTypes = {
data: PropTypes.instanceOf(Map),
addShowToWishlist: PropTypes.func,
deleteShowFromWishlist: PropTypes.func,
};
export const TrackHeader = connect(null, {
addShowToWishlist,
deleteShowFromWishlist,
})(trackHeader);
export const trackButton = (props) => {
const imdbId = props.data.get("show_imdb_id");
const season = props.data.get("season");
const episode = props.data.get("episode");
const tooltipId = `tooltip-${props.data.season}-${props.data.episode}`;
const tooltip = (
<Tooltip id={tooltipId}>Track show from here</Tooltip>
);
return (
<OverlayTrigger placement="top" overlay={tooltip}>
<span className="btn clickable"
onClick={() => props.addShowToWishlist(imdbId, season, episode)}>
<i className="fa fa-bookmark"></i>
</span>
</OverlayTrigger>
);
}
trackButton.propTypes = {
data: PropTypes.instanceOf(Map),
addShowToWishlist: PropTypes.func,
};
export const TrackButton = connect(null, {addShowToWishlist})(trackButton);