import PropTypes from 'prop-types'; import React, { Component } from 'react'; import TextInput from 'Components/Form/TextInput'; import Button from 'Components/Link/Button'; import LoadingIndicator from 'Components/Loading/LoadingIndicator'; 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 Scroller from 'Components/Scroller/Scroller'; import Table from 'Components/Table/Table'; import TableBody from 'Components/Table/TableBody'; import { scrollDirections } from 'Helpers/Props'; import getErrorMessage from 'Utilities/Object/getErrorMessage'; import translate from 'Utilities/String/translate'; import SelectAlbumRow from './SelectAlbumRow'; import styles from './SelectAlbumModalContent.css'; const columns = [ { name: 'title', label: () => translate('AlbumTitle'), isSortable: true, isVisible: true }, { name: 'albumType', label: () => translate('AlbumType'), isVisible: true }, { name: 'releaseDate', label: () => translate('ReleaseDate'), isSortable: true, isVisible: true }, { name: 'status', label: () => translate('AlbumStatus'), isVisible: true } ]; class SelectAlbumModalContent extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { filter: '' }; } // // Listeners onFilterChange = ({ value }) => { this.setState({ filter: value }); }; // // Render render() { const { isFetching, isPopulated, error, items, sortKey, sortDirection, onSortPress, onAlbumSelect, onModalClose } = this.props; const filter = this.state.filter; const filterLower = filter.toLowerCase(); const errorMessage = getErrorMessage(error, 'Unable to load albums'); return ( Manual Import - Select Album {isFetching ? : null} {error ?
{errorMessage}
: null} {isPopulated && !!items.length ? ( { items.map((item) => { return item.title.toLowerCase().includes(filterLower) ? ( ) : null; }) }
) : null}
); } } SelectAlbumModalContent.propTypes = { isFetching: PropTypes.bool.isRequired, isPopulated: PropTypes.bool.isRequired, error: PropTypes.object, items: PropTypes.arrayOf(PropTypes.object).isRequired, sortKey: PropTypes.string, sortDirection: PropTypes.string, onSortPress: PropTypes.func.isRequired, onAlbumSelect: PropTypes.func.isRequired, onModalClose: PropTypes.func.isRequired }; export default SelectAlbumModalContent;