import PropTypes from 'prop-types'; import React, { Component } from 'react'; import IconButton from 'Components/Link/IconButton'; import RelativeDateCellConnector from 'Components/Table/Cells/RelativeDateCellConnector'; import TableRowCell from 'Components/Table/Cells/TableRowCell'; import TableSelectCell from 'Components/Table/Cells/TableSelectCell'; import TableRow from 'Components/Table/TableRow'; import EpisodeFormats from 'Episode/EpisodeFormats'; import EpisodeLanguages from 'Episode/EpisodeLanguages'; import EpisodeQuality from 'Episode/EpisodeQuality'; import { icons, kinds } from 'Helpers/Props'; import SeriesTitleLink from 'Series/SeriesTitleLink'; import translate from 'Utilities/String/translate'; import BlocklistDetailsModal from './BlocklistDetailsModal'; import styles from './BlocklistRow.css'; class BlocklistRow extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { isDetailsModalOpen: false }; } // // Listeners onDetailsPress = () => { this.setState({ isDetailsModalOpen: true }); }; onDetailsModalClose = () => { this.setState({ isDetailsModalOpen: false }); }; // // Render render() { const { id, series, sourceTitle, languages, quality, customFormats, date, protocol, indexer, message, isSelected, columns, onSelectedChange, onRemovePress } = this.props; return ( { columns.map((column) => { const { name, isVisible } = column; if (!isVisible) { return null; } if (name === 'series.sortTitle') { return ( ); } if (name === 'sourceTitle') { return ( {sourceTitle} ); } if (name === 'languages') { return ( ); } if (name === 'quality') { return ( ); } if (name === 'customFormats') { return ( ); } if (name === 'date') { return ( ); } if (name === 'indexer') { return ( {indexer} ); } if (name === 'actions') { return ( ); } return null; }) } ); } } BlocklistRow.propTypes = { id: PropTypes.number.isRequired, series: PropTypes.object.isRequired, sourceTitle: PropTypes.string.isRequired, languages: PropTypes.arrayOf(PropTypes.object).isRequired, quality: PropTypes.object.isRequired, customFormats: PropTypes.arrayOf(PropTypes.object).isRequired, date: PropTypes.string.isRequired, protocol: PropTypes.string.isRequired, indexer: PropTypes.string, message: PropTypes.string, isSelected: PropTypes.bool.isRequired, columns: PropTypes.arrayOf(PropTypes.object).isRequired, onSelectedChange: PropTypes.func.isRequired, onRemovePress: PropTypes.func.isRequired }; export default BlocklistRow;