import PropTypes from 'prop-types'; import React, { Component } from 'react'; import MiddleTruncate from 'react-middle-truncate'; import Card from 'Components/Card'; import Label from 'Components/Label'; import IconButton from 'Components/Link/IconButton'; import ConfirmModal from 'Components/Modal/ConfirmModal'; import { icons, kinds } from 'Helpers/Props'; import translate from 'Utilities/String/translate'; import EditMetadataProfileModalConnector from './EditMetadataProfileModalConnector'; import styles from './MetadataProfile.css'; class MetadataProfile extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { isEditMetadataProfileModalOpen: false, isDeleteMetadataProfileModalOpen: false }; } // // Listeners onEditMetadataProfilePress = () => { this.setState({ isEditMetadataProfileModalOpen: true }); }; onEditMetadataProfileModalClose = () => { this.setState({ isEditMetadataProfileModalOpen: false }); }; onDeleteMetadataProfilePress = () => { this.setState({ isEditMetadataProfileModalOpen: false, isDeleteMetadataProfileModalOpen: true }); }; onDeleteMetadataProfileModalClose = () => { this.setState({ isDeleteMetadataProfileModalOpen: false }); }; onConfirmDeleteMetadataProfile = () => { this.props.onConfirmDeleteMetadataProfile(this.props.id); }; onCloneMetadataProfilePress = () => { const { id, onCloneMetadataProfilePress } = this.props; onCloneMetadataProfilePress(id); }; // // Render render() { const { id, name, minPopularity, minPages, ignored, isDeleting } = this.props; return (
{name}
{ minPopularity ? : null } { minPages ? : null }
{ ignored.map((item) => { if (!item) { return null; } return ( ); }) }
); } } MetadataProfile.propTypes = { id: PropTypes.number.isRequired, name: PropTypes.string.isRequired, minPopularity: PropTypes.number.isRequired, minPages: PropTypes.number.isRequired, ignored: PropTypes.arrayOf(PropTypes.string).isRequired, isDeleting: PropTypes.bool.isRequired, onConfirmDeleteMetadataProfile: PropTypes.func.isRequired, onCloneMetadataProfilePress: PropTypes.func.isRequired }; MetadataProfile.defaultProps = { minPopularity: 0, minPages: 0, ignored: [] }; export default MetadataProfile;