import PropTypes from 'prop-types'; import React, { Component } from 'react'; 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, kinds } from 'Helpers/Props'; import formatBytes from 'Utilities/Number/formatBytes'; import styles from './DeleteAlbumModalContent.css'; class DeleteAlbumModalContent extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { deleteFiles: false, addImportListExclusion: true }; } // // Listeners onDeleteFilesChange = ({ value }) => { this.setState({ deleteFiles: value }); } onAddImportListExclusionChange = ({ value }) => { this.setState({ addImportListExclusion: value }); } onDeleteAlbumConfirmed = () => { const deleteFiles = this.state.deleteFiles; const addImportListExclusion = this.state.addImportListExclusion; this.setState({ deleteFiles: false }); this.setState({ addImportListExclusion: false }); this.props.onDeletePress(deleteFiles, addImportListExclusion); } // // Render render() { const { title, statistics, onModalClose } = this.props; const { trackFileCount, sizeOnDisk } = statistics; const deleteFiles = this.state.deleteFiles; const addImportListExclusion = this.state.addImportListExclusion; const deleteFilesLabel = `Delete ${trackFileCount} Track Files`; const deleteFilesHelpText = 'Delete the track files'; return ( Delete - {title} {deleteFilesLabel} Add List Exclusion { !addImportListExclusion &&
If you don't add an import list exclusion and the artist has a metadata profile other than 'None' then this album may be re-added during the next artist refresh.
} { deleteFiles &&
The album's files will be deleted.
{ !!trackFileCount &&
{trackFileCount} track files totaling {formatBytes(sizeOnDisk)}
}
}
); } } DeleteAlbumModalContent.propTypes = { title: PropTypes.string.isRequired, statistics: PropTypes.object.isRequired, onDeletePress: PropTypes.func.isRequired, onModalClose: PropTypes.func.isRequired }; DeleteAlbumModalContent.defaultProps = { statistics: { trackFileCount: 0 } }; export default DeleteAlbumModalContent;