import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { icons, kinds } from 'Helpers/Props'; import Icon from 'Components/Icon'; import IconButton from 'Components/Link/IconButton'; import Link from 'Components/Link/Link'; import ConfirmModal from 'Components/Modal/ConfirmModal'; import RelativeDateCellConnector from 'Components/Table/Cells/RelativeDateCellConnector'; import TableRow from 'Components/Table/TableRow'; import TableRowCell from 'Components/Table/Cells/TableRowCell'; import RestoreBackupModalConnector from './RestoreBackupModalConnector'; import styles from './BackupRow.css'; class BackupRow extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { isRestoreModalOpen: false, isConfirmDeleteModalOpen: false }; } // // Listeners onRestorePress = () => { this.setState({ isRestoreModalOpen: true }); } onRestoreModalClose = () => { this.setState({ isRestoreModalOpen: false }); } onDeletePress = () => { this.setState({ isConfirmDeleteModalOpen: true }); } onConfirmDeleteModalClose = () => { this.setState({ isConfirmDeleteModalOpen: false }); } onConfirmDeletePress = () => { const { id, onDeleteBackupPress } = this.props; this.setState({ isConfirmDeleteModalOpen: false }, () => { onDeleteBackupPress(id); }); } // // Render render() { const { id, type, name, path, time } = this.props; const { isRestoreModalOpen, isConfirmDeleteModalOpen } = this.state; let iconClassName = icons.SCHEDULED; let iconTooltip = 'Scheduled'; if (type === 'manual') { iconClassName = icons.INTERACTIVE; iconTooltip = 'Manual'; } else if (type === 'update') { iconClassName = icons.UPDATE; iconTooltip = 'Before update'; } return ( { } {name} ); } } BackupRow.propTypes = { id: PropTypes.number.isRequired, type: PropTypes.string.isRequired, name: PropTypes.string.isRequired, path: PropTypes.string.isRequired, time: PropTypes.string.isRequired, onDeleteBackupPress: PropTypes.func.isRequired }; export default BackupRow;