import PropTypes from 'prop-types'; import React, { Component } from 'react'; import Label from 'Components/Label'; import RelativeDateCellConnector from 'Components/Table/Cells/RelativeDateCellConnector'; import TableRowCell from 'Components/Table/Cells/TableRowCell'; import TableRow from 'Components/Table/TableRow'; import { kinds, sizes } from 'Helpers/Props'; import translate from 'Utilities/String/translate'; import styles from './SelectAlbumRow.css'; function getTrackCountKind(monitored, trackFileCount, trackCount) { if (trackFileCount === trackCount && trackCount > 0) { return kinds.SUCCESS; } if (!monitored) { return kinds.WARNING; } return kinds.DANGER; } class SelectAlbumRow extends Component { // // Listeners onPress = () => { this.props.onAlbumSelect(this.props.id); } // // Render render() { const { title, disambiguation, albumType, releaseDate, statistics, monitored, columns } = this.props; const { trackCount, trackFileCount, totalTrackCount } = statistics; const extendedTitle = disambiguation ? `${title} (${disambiguation})` : title; return ( { columns.map((column) => { const { name, isVisible } = column; if (!isVisible) { return null; } if (name === 'title') { return ( {extendedTitle} ); } if (name === 'albumType') { return ( {albumType} ); } if (name === 'releaseDate') { return ( ); } if (name === 'status') { return ( ); } return null; }) } ); } } SelectAlbumRow.propTypes = { id: PropTypes.number.isRequired, title: PropTypes.string.isRequired, disambiguation: PropTypes.string.isRequired, albumType: PropTypes.string.isRequired, releaseDate: PropTypes.string.isRequired, onAlbumSelect: PropTypes.func.isRequired, statistics: PropTypes.object.isRequired, monitored: PropTypes.bool.isRequired, columns: PropTypes.arrayOf(PropTypes.object).isRequired }; SelectAlbumRow.defaultProps = { statistics: { trackCount: 0, trackFileCount: 0 } }; export default SelectAlbumRow;