import PropTypes from 'prop-types'; import React, { Component } from 'react'; import SeriesMonitoringOptionsPopoverContent from 'AddSeries/SeriesMonitoringOptionsPopoverContent'; import SeriesTypePopoverContent from 'AddSeries/SeriesTypePopoverContent'; import CheckInput from 'Components/Form/CheckInput'; 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 Icon from 'Components/Icon'; import SpinnerButton from 'Components/Link/SpinnerButton'; 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 Popover from 'Components/Tooltip/Popover'; import { icons, inputTypes, kinds, tooltipPositions } from 'Helpers/Props'; import SeriesPoster from 'Series/SeriesPoster'; import * as seriesTypes from 'Utilities/Series/seriesTypes'; import translate from 'Utilities/String/translate'; import styles from './AddNewSeriesModalContent.css'; class AddNewSeriesModalContent extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { seriesType: props.initialSeriesType === seriesTypes.STANDARD ? props.seriesType.value : props.initialSeriesType }; } componentDidUpdate(prevProps) { if (this.props.seriesType.value !== prevProps.seriesType.value) { this.setState({ seriesType: this.props.seriesType.value }); } } // // Listeners onQualityProfileIdChange = ({ value }) => { this.props.onInputChange({ name: 'qualityProfileId', value: parseInt(value) }); }; onAddSeriesPress = () => { const { seriesType } = this.state; this.props.onAddSeriesPress( seriesType ); }; // // Render render() { const { title, year, overview, images, isAdding, rootFolderPath, monitor, qualityProfileId, seriesType, seasonFolder, searchForMissingEpisodes, searchForCutoffUnmetEpisodes, folder, tags, isSmallScreen, isWindows, onModalClose, onInputChange, ...otherProps } = this.props; return ( {title} { !title.contains(year) && !!year && ({year}) }
{ isSmallScreen ? null :
}
{ overview ?
{overview}
: null }
{translate('RootFolder')} {translate('Monitor')} } title={translate('MonitoringOptions')} body={} position={tooltipPositions.RIGHT} /> {translate('QualityProfile')} {translate('SeriesType')} } title={translate('SeriesTypes')} body={} position={tooltipPositions.RIGHT} /> {translate('SeasonFolder')} {translate('Tags')}
{translate('AddSeriesWithTitle', { title })}
); } } AddNewSeriesModalContent.propTypes = { title: PropTypes.string.isRequired, year: PropTypes.number.isRequired, overview: PropTypes.string, initialSeriesType: PropTypes.string.isRequired, images: PropTypes.arrayOf(PropTypes.object).isRequired, isAdding: PropTypes.bool.isRequired, addError: PropTypes.object, rootFolderPath: PropTypes.object, monitor: PropTypes.object.isRequired, qualityProfileId: PropTypes.object, seriesType: PropTypes.object.isRequired, seasonFolder: PropTypes.object.isRequired, searchForMissingEpisodes: PropTypes.object.isRequired, searchForCutoffUnmetEpisodes: PropTypes.object.isRequired, folder: PropTypes.string.isRequired, tags: PropTypes.object.isRequired, isSmallScreen: PropTypes.bool.isRequired, isWindows: PropTypes.bool.isRequired, onModalClose: PropTypes.func.isRequired, onInputChange: PropTypes.func.isRequired, onAddSeriesPress: PropTypes.func.isRequired }; export default AddNewSeriesModalContent;