import _ from 'lodash'; import PropTypes from 'prop-types'; import React, { Component } from 'react'; import Form from 'Components/Form/Form'; import FormGroup from 'Components/Form/FormGroup'; import FormInputGroup from 'Components/Form/FormInputGroup'; import FormLabel from 'Components/Form/FormLabel'; import Button from 'Components/Link/Button'; import ModalBody from 'Components/Modal/ModalBody'; import ModalContent from 'Components/Modal/ModalContent'; import ModalFooter from 'Components/Modal/ModalFooter'; import ModalHeader from 'Components/Modal/ModalHeader'; import { inputTypes } from 'Helpers/Props'; import translate from 'Utilities/String/translate'; const posterSizeOptions = [ { key: 'small', get value() { return translate('Small'); } }, { key: 'medium', get value() { return translate('Medium'); } }, { key: 'large', get value() { return translate('Large'); } } ]; class DiscoverMovieOverviewOptionsModalContent extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { size: props.size, showStudio: props.showStudio, showCertification: props.showCertification, showRatings: props.showRatings, showYear: props.showYear, showGenres: props.showGenres, includeRecommendations: props.includeRecommendations, includeTrending: props.includeTrending, includePopular: props.includePopular }; } componentDidUpdate(prevProps) { const { size, showStudio, showYear, showRatings, showCertification, showGenres, includeRecommendations, includeTrending, includePopular } = this.props; const state = {}; if (size !== prevProps.size) { state.size = size; } if (showStudio !== prevProps.showStudio) { state.showStudio = showStudio; } if (showYear !== prevProps.showYear) { state.showYear = showYear; } if (showRatings !== prevProps.showRatings) { state.showRatings = showRatings; } if (showCertification !== prevProps.showCertification) { state.showCertification = showCertification; } if (showGenres !== prevProps.showGenres) { state.showGenres = showGenres; } if (includeRecommendations !== prevProps.includeRecommendations) { state.includeRecommendations = includeRecommendations; } if (includeTrending !== prevProps.includeTrending) { state.includeTrending = includeTrending; } if (includePopular !== prevProps.includePopular) { state.includePopular = includePopular; } if (!_.isEmpty(state)) { this.setState(state); } } // // Listeners onChangeOverviewOption = ({ name, value }) => { this.setState({ [name]: value }, () => { this.props.onChangeOverviewOption({ [name]: value }); }); }; onChangeOption = ({ name, value }) => { this.setState({ [name]: value }, () => { this.props.onChangeOption({ [name]: value }); }); }; // // Render render() { const { onModalClose } = this.props; const { size, showStudio, showCertification, showRatings, showYear, showGenres, includeRecommendations, includeTrending, includePopular } = this.state; return ( {translate('OverviewOptions')}
{translate('IncludeRadarrRecommendations')} {translate('IncludeTrending')} {translate('IncludePopular')} {translate('PosterSize')} {translate('ShowGenres')} {translate('ShowStudio')} {translate('ShowYear')} {translate('ShowRatings')} {translate('ShowCertification')}
); } } DiscoverMovieOverviewOptionsModalContent.propTypes = { size: PropTypes.string.isRequired, showStudio: PropTypes.bool.isRequired, showYear: PropTypes.bool.isRequired, showRatings: PropTypes.bool.isRequired, showCertification: PropTypes.bool.isRequired, showGenres: PropTypes.bool.isRequired, includeRecommendations: PropTypes.bool.isRequired, includeTrending: PropTypes.bool.isRequired, includePopular: PropTypes.bool.isRequired, onChangeOverviewOption: PropTypes.func.isRequired, onChangeOption: PropTypes.func.isRequired, onModalClose: PropTypes.func.isRequired }; export default DiscoverMovieOverviewOptionsModalContent;