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'; const posterSizeOptions = [ { key: 'small', value: 'Small' }, { key: 'medium', value: 'Medium' }, { key: 'large', value: 'Large' } ]; class SeriesIndexOverviewOptionsModalContent extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { detailedProgressBar: props.detailedProgressBar, size: props.size, showMonitored: props.showMonitored, showNetwork: props.showNetwork, showQualityProfile: props.showQualityProfile, showPreviousAiring: props.showPreviousAiring, showAdded: props.showAdded, showSeasonCount: props.showSeasonCount, showPath: props.showPath, showSizeOnDisk: props.showSizeOnDisk, showSearchAction: props.showSearchAction }; } componentDidUpdate(prevProps) { const { detailedProgressBar, size, showMonitored, showNetwork, showQualityProfile, showPreviousAiring, showAdded, showSeasonCount, showPath, showSizeOnDisk, showSearchAction } = this.props; const state = {}; if (detailedProgressBar !== prevProps.detailedProgressBar) { state.detailedProgressBar = detailedProgressBar; } if (size !== prevProps.size) { state.size = size; } if (showMonitored !== prevProps.showMonitored) { state.showMonitored = showMonitored; } if (showNetwork !== prevProps.showNetwork) { state.showNetwork = showNetwork; } if (showQualityProfile !== prevProps.showQualityProfile) { state.showQualityProfile = showQualityProfile; } if (showPreviousAiring !== prevProps.showPreviousAiring) { state.showPreviousAiring = showPreviousAiring; } if (showAdded !== prevProps.showAdded) { state.showAdded = showAdded; } if (showSeasonCount !== prevProps.showSeasonCount) { state.showSeasonCount = showSeasonCount; } if (showPath !== prevProps.showPath) { state.showPath = showPath; } if (showSizeOnDisk !== prevProps.showSizeOnDisk) { state.showSizeOnDisk = showSizeOnDisk; } if (showSearchAction !== prevProps.showSearchAction) { state.showSearchAction = showSearchAction; } if (!_.isEmpty(state)) { this.setState(state); } } // // Listeners onChangeOverviewOption = ({ name, value }) => { this.setState({ [name]: value }, () => { this.props.onChangeOverviewOption({ [name]: value }); }); }; // // Render render() { const { onModalClose } = this.props; const { detailedProgressBar, size, showMonitored, showNetwork, showQualityProfile, showPreviousAiring, showAdded, showSeasonCount, showPath, showSizeOnDisk, showSearchAction } = this.state; return ( Overview Options
Poster Size Detailed Progress Bar Show Monitored Show Network Show Quality Profile Show Previous Airing Show Date Added Show Season Count Show Path Show Size on Disk Show Search
); } } SeriesIndexOverviewOptionsModalContent.propTypes = { size: PropTypes.string.isRequired, detailedProgressBar: PropTypes.bool.isRequired, showMonitored: PropTypes.bool.isRequired, showNetwork: PropTypes.bool.isRequired, showQualityProfile: PropTypes.bool.isRequired, showPreviousAiring: PropTypes.bool.isRequired, showAdded: PropTypes.bool.isRequired, showSeasonCount: PropTypes.bool.isRequired, showPath: PropTypes.bool.isRequired, showSizeOnDisk: PropTypes.bool.isRequired, showSearchAction: PropTypes.bool.isRequired, onChangeOverviewOption: PropTypes.func.isRequired, onModalClose: PropTypes.func.isRequired }; export default SeriesIndexOverviewOptionsModalContent;