import PropTypes from 'prop-types'; import React, { Component } from 'react'; 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 EditSpecificationModalConnector from './EditSpecificationModal'; import styles from './Specification.css'; class Specification extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { isEditSpecificationModalOpen: false, isDeleteSpecificationModalOpen: false }; } // // Listeners onEditSpecificationPress = () => { this.setState({ isEditSpecificationModalOpen: true }); }; onEditSpecificationModalClose = () => { this.setState({ isEditSpecificationModalOpen: false }); }; onDeleteSpecificationPress = () => { this.setState({ isEditSpecificationModalOpen: false, isDeleteSpecificationModalOpen: true }); }; onDeleteSpecificationModalClose = () => { this.setState({ isDeleteSpecificationModalOpen: false }); }; onCloneSpecificationPress = () => { this.props.onCloneSpecificationPress(this.props.id); }; onConfirmDeleteSpecification = () => { this.props.onConfirmDeleteSpecification(this.props.id); }; // // Lifecycle render() { const { id, implementationName, name, required, negate } = this.props; return (
{name}
{ negate && } { required && }
); } } Specification.propTypes = { id: PropTypes.number.isRequired, implementation: PropTypes.string.isRequired, implementationName: PropTypes.string.isRequired, name: PropTypes.string.isRequired, negate: PropTypes.bool.isRequired, required: PropTypes.bool.isRequired, fields: PropTypes.arrayOf(PropTypes.object).isRequired, onConfirmDeleteSpecification: PropTypes.func.isRequired, onCloneSpecificationPress: PropTypes.func.isRequired }; export default Specification;