import PropTypes from 'prop-types'; import React, { Component } from 'react'; 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 BookEditorFooterLabel from './BookEditorFooterLabel'; import DeleteBookModal from './Delete/DeleteBookModal'; import styles from './BookEditorFooter.css'; const NO_CHANGE = 'noChange'; class BookEditorFooter extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { monitored: NO_CHANGE, rootFolderPath: NO_CHANGE, savingTags: false, isDeleteBookModalOpen: false, isTagsModalOpen: false, isConfirmMoveModalOpen: false, destinationRootFolder: null }; } componentDidUpdate(prevProps) { const { isSaving, saveError } = this.props; if (prevProps.isSaving && !isSaving && !saveError) { this.setState({ monitored: NO_CHANGE, rootFolderPath: NO_CHANGE, savingTags: false }); } } // // Listeners onInputChange = ({ name, value }) => { this.setState({ [name]: value }); if (value === NO_CHANGE) { return; } switch (name) { case 'monitored': this.props.onSaveSelected({ [name]: value === 'monitored' }); break; default: this.props.onSaveSelected({ [name]: value }); } }; onDeleteSelectedPress = () => { this.setState({ isDeleteBookModalOpen: true }); }; onDeleteBookModalClose = () => { this.setState({ isDeleteBookModalOpen: false }); }; // // Render render() { const { bookIds, selectedCount, isSaving, isDeleting } = this.props; const { monitored, isDeleteBookModalOpen } = this.state; const monitoredOptions = [ { key: NO_CHANGE, value: translate('NoChange'), disabled: true }, { key: 'monitored', value: translate('Monitored') }, { key: 'unmonitored', value: translate('Unmonitored') } ]; return (
Delete
); } } BookEditorFooter.propTypes = { bookIds: 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 BookEditorFooter;