import PropTypes from 'prop-types'; import React, { Component } from 'react'; import HistoryDetailsModal from 'Activity/History/Details/HistoryDetailsModal'; import HistoryEventTypeCell from 'Activity/History/HistoryEventTypeCell'; import IconButton from 'Components/Link/IconButton'; import ConfirmModal from 'Components/Modal/ConfirmModal'; import TableRowCell from 'Components/Table/Cells/TableRowCell'; import TableRow from 'Components/Table/TableRow'; import { icons, kinds } from 'Helpers/Props'; import MovieFormats from 'Movie/MovieFormats'; import MovieLanguage from 'Movie/MovieLanguage'; import MovieQuality from 'Movie/MovieQuality'; import formatDateTime from 'Utilities/Date/formatDateTime'; import formatCustomFormatScore from 'Utilities/Number/formatCustomFormatScore'; import translate from 'Utilities/String/translate'; import styles from './MovieHistoryRow.css'; class MovieHistoryRow extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { isMarkAsFailedModalOpen: false, isDetailsModalOpen: false }; } // // Listeners onMarkAsFailedPress = () => { this.setState({ isMarkAsFailedModalOpen: true }); }; onConfirmMarkAsFailed = () => { this.props.onMarkAsFailedPress(this.props.id); this.setState({ isMarkAsFailedModalOpen: false }); }; onMarkAsFailedModalClose = () => { this.setState({ isMarkAsFailedModalOpen: false }); }; onDetailsPress = () => { this.setState({ isDetailsModalOpen: true }); }; onDetailsModalClose = () => { this.setState({ isDetailsModalOpen: false }); }; // // Render render() { const { eventType, sourceTitle, quality, customFormats, customFormatScore, languages, qualityCutoffNotMet, date, data, downloadId, isMarkingAsFailed, shortDateFormat, timeFormat } = this.props; const { isMarkAsFailedModalOpen } = this.state; return ( {sourceTitle} {formatCustomFormatScore(customFormatScore, customFormats.length)} {formatDateTime(date, shortDateFormat, timeFormat, { includeSeconds: true })} { eventType === 'grabbed' && } ); } } MovieHistoryRow.propTypes = { id: PropTypes.number.isRequired, eventType: PropTypes.string.isRequired, sourceTitle: PropTypes.string.isRequired, languages: PropTypes.arrayOf(PropTypes.object).isRequired, quality: PropTypes.object.isRequired, customFormats: PropTypes.arrayOf(PropTypes.object), customFormatScore: PropTypes.number.isRequired, qualityCutoffNotMet: PropTypes.bool.isRequired, date: PropTypes.string.isRequired, data: PropTypes.object.isRequired, downloadId: PropTypes.string, isMarkingAsFailed: PropTypes.bool, movie: PropTypes.object.isRequired, shortDateFormat: PropTypes.string.isRequired, timeFormat: PropTypes.string.isRequired, onMarkAsFailedPress: PropTypes.func.isRequired }; export default MovieHistoryRow;