import React from "react"; import PropTypes from "prop-types"; import { OrderedMap, Map } from "immutable"; import { connect } from "react-redux"; import { selectMovie, updateFilter, movieWishlistToggle } from "../../actions/movies"; import ListDetails from "../list/details"; import ListPosters from "../list/posters"; import { inLibrary, isWishlisted } from "../../utils"; import { ShowMore } from "../buttons/showMore"; import { MovieSubtitlesButton } from "./subtitlesButton"; import { MovieTorrentsButton } from "./torrentsButton"; function mapStateToProps(state) { return { loading: state.movieStore.get("loading"), movies: state.movieStore.get("movies"), filter: state.movieStore.get("filter"), selectedImdbId: state.movieStore.get("selectedImdbId"), exploreOptions: state.movieStore.get("exploreOptions") }; } const mapDispatchToProps = { selectMovie, updateFilter, movieWishlistToggle }; const MovieList = props => { let selectedMovie = Map(); if (props.movies !== undefined && props.movies.has(props.selectedImdbId)) { selectedMovie = props.movies.get(props.selectedImdbId); } return (
props.movieWishlistToggle( selectedMovie.get("imdb_id"), isWishlisted(selectedMovie) ) } >
); }; MovieList.propTypes = { movies: PropTypes.instanceOf(OrderedMap), exploreOptions: PropTypes.instanceOf(Map), selectedImdbId: PropTypes.string, filter: PropTypes.string, loading: PropTypes.bool, updateFilter: PropTypes.func, movieWishlistToggle: PropTypes.func, selectMovie: PropTypes.func, match: PropTypes.object }; export default connect(mapStateToProps, mapDispatchToProps)(MovieList);