import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { kinds } from 'Helpers/Props'; import Card from 'Components/Card'; import Label from 'Components/Label'; import ConfirmModal from 'Components/Modal/ConfirmModal'; import EditNotificationModalConnector from './EditNotificationModalConnector'; import styles from './Notification.css'; class Notification extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { isEditNotificationModalOpen: false, isDeleteNotificationModalOpen: false }; } // // Listeners onEditNotificationPress = () => { this.setState({ isEditNotificationModalOpen: true }); } onEditNotificationModalClose = () => { this.setState({ isEditNotificationModalOpen: false }); } onDeleteNotificationPress = () => { this.setState({ isEditNotificationModalOpen: false, isDeleteNotificationModalOpen: true }); } onDeleteNotificationModalClose= () => { this.setState({ isDeleteNotificationModalOpen: false }); } onConfirmDeleteNotification = () => { this.props.onConfirmDeleteNotification(this.props.id); } // // Render render() { const { id, name, onGrab, onReleaseImport, onUpgrade, onRename, onHealthIssue, onDownloadFailure, onImportFailure, onTrackRetag, supportsOnGrab, supportsOnReleaseImport, supportsOnUpgrade, supportsOnRename, supportsOnHealthIssue, supportsOnDownloadFailure, supportsOnImportFailure, supportsOnTrackRetag } = this.props; return (
{name}
{ supportsOnGrab && onGrab && } { supportsOnReleaseImport && onReleaseImport && } { supportsOnUpgrade && onReleaseImport && onUpgrade && } { supportsOnRename && onRename && } { supportsOnTrackRetag && onTrackRetag && } { supportsOnHealthIssue && onHealthIssue && } { supportsOnDownloadFailure && onDownloadFailure && } { supportsOnImportFailure && onImportFailure && } { !onGrab && !onReleaseImport && !onRename && !onTrackRetag && !onHealthIssue && !onDownloadFailure && !onImportFailure && }
); } } Notification.propTypes = { id: PropTypes.number.isRequired, name: PropTypes.string.isRequired, onGrab: PropTypes.bool.isRequired, onReleaseImport: PropTypes.bool.isRequired, onUpgrade: PropTypes.bool.isRequired, onRename: PropTypes.bool.isRequired, onHealthIssue: PropTypes.bool.isRequired, onDownloadFailure: PropTypes.bool.isRequired, onImportFailure: PropTypes.bool.isRequired, onTrackRetag: PropTypes.bool.isRequired, supportsOnGrab: PropTypes.bool.isRequired, supportsOnReleaseImport: PropTypes.bool.isRequired, supportsOnUpgrade: PropTypes.bool.isRequired, supportsOnRename: PropTypes.bool.isRequired, supportsOnHealthIssue: PropTypes.bool.isRequired, supportsOnDownloadFailure: PropTypes.bool.isRequired, supportsOnImportFailure: PropTypes.bool.isRequired, supportsOnTrackRetag: PropTypes.bool.isRequired, onConfirmDeleteNotification: PropTypes.func.isRequired }; export default Notification;