Only map the required props/funcs to the show view

This commit is contained in:
Grégoire Delattre 2017-05-23 20:16:29 +02:00
parent c8b65f8da9
commit 1abea1e0c2
2 changed files with 12 additions and 10 deletions

View File

@ -1,7 +1,8 @@
import React from 'react'
import { connect } from 'react-redux'
import { bindActionCreators } from 'redux'
import * as actionCreators from '../../actions/actionCreators'
import { addTorrent, addShowToWishlist, deleteFromWishlist,
updateShowDetails, updateEpisodeDetailsStore, getEpisodeDetails } from '../../actions/actionCreators'
import Loader from '../loader/loader'
import DownloadButton from '../buttons/download'
@ -9,29 +10,30 @@ import DownloadButton from '../buttons/download'
import { OverlayTrigger, Tooltip } from 'react-bootstrap'
function mapStateToProps(state) {
return { showStore: state.showStore };
return {
loading: state.showStore.loading,
show: state.showStore.show,
};
}
const mapDispatchToProps = (dispatch) =>
bindActionCreators(actionCreators, dispatch)
bindActionCreators({addTorrent, addShowToWishlist, deleteFromWishlist,
updateShowDetails, updateEpisodeDetailsStore, getEpisodeDetails }, dispatch)
class ShowDetails extends React.Component {
componentWillMount() {
this.props.fetchShowDetails(this.props.params.imdbId);
}
render() {
// Loading
if (this.props.showStore.loading) {
if (this.props.loading) {
return (<Loader />);
}
return (
<div className="row" id="container">
<Header
data={this.props.showStore.show}
data={this.props.show}
addToWishlist={this.props.addShowToWishlist}
deleteFromWishlist={this.props.deleteShowFromWishlist}
/>
<SeasonsList
data={this.props.showStore.show}
data={this.props.show}
addTorrent={this.props.addTorrent}
addToWishlist={this.props.addShowToWishlist}
getEpisodeDetails={this.props.getEpisodeDetails}

View File

@ -181,7 +181,7 @@ export default function getRoutes(App) {
component: ShowDetails,
onEnter: function(nextState, replace, next) {
loginCheck(nextState, replace, next, function() {
store.dispatch(actionCreators.fetchShows(`/shows/search/${nextState.params.imdbId}`));
store.dispatch(actionCreators.fetchShowDetails(nextState.params.imdbId));
});
},
},