import PropTypes from 'prop-types'; import React, { Component } from 'react'; import AppProfileSelectInputConnector from 'Components/Form/AppProfileSelectInputConnector'; import SelectInput from 'Components/Form/SelectInput'; import SpinnerButton from 'Components/Link/SpinnerButton'; import PageContentFooter from 'Components/Page/PageContentFooter'; import { kinds } from 'Helpers/Props'; import translate from 'Utilities/String/translate'; import DeleteIndexerModal from './Delete/DeleteIndexerModal'; import IndexerEditorFooterLabel from './IndexerEditorFooterLabel'; import TagsModal from './Tags/TagsModal'; import styles from './IndexerEditorFooter.css'; const NO_CHANGE = 'noChange'; class IndexerEditorFooter extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { enable: NO_CHANGE, appProfileId: NO_CHANGE, savingTags: false, isDeleteMovieModalOpen: false, isTagsModalOpen: false }; } componentDidUpdate(prevProps) { const { isSaving, saveError } = this.props; if (prevProps.isSaving && !isSaving && !saveError) { this.setState({ enable: NO_CHANGE, appProfileId: NO_CHANGE, savingTags: false }); } } // // Listeners onInputChange = ({ name, value }) => { this.setState({ [name]: value }); if (value === NO_CHANGE) { return; } switch (name) { default: this.props.onSaveSelected({ [name]: value }); } }; onApplyTagsPress = (tags, applyTags) => { this.setState({ savingTags: true, isTagsModalOpen: false }); this.props.onSaveSelected({ tags, applyTags }); }; onDeleteSelectedPress = () => { this.setState({ isDeleteMovieModalOpen: true }); }; onDeleteMovieModalClose = () => { this.setState({ isDeleteMovieModalOpen: false }); }; onTagsPress = () => { this.setState({ isTagsModalOpen: true }); }; onTagsModalClose = () => { this.setState({ isTagsModalOpen: false }); }; // // Render render() { const { indexerIds, selectedCount, isSaving, isDeleting } = this.props; const { enable, appProfileId, savingTags, isTagsModalOpen, isDeleteMovieModalOpen } = this.state; const enableOptions = [ { key: NO_CHANGE, value: translate('NoChange'), disabled: true }, { key: 'true', value: translate('Enabled') }, { key: 'false', value: translate('Disabled') } ]; return (
{translate('SetTags')}
{translate('Delete')}
); } } IndexerEditorFooter.propTypes = { indexerIds: PropTypes.arrayOf(PropTypes.number).isRequired, selectedCount: PropTypes.number.isRequired, isSaving: PropTypes.bool.isRequired, saveError: PropTypes.object, isDeleting: PropTypes.bool.isRequired, deleteError: PropTypes.object, onSaveSelected: PropTypes.func.isRequired }; export default IndexerEditorFooter;