Blame components/Modal/EditDescription.js

Packit Service eebd6f
import React from "react";
Packit Service eebd6f
import { Modal } from "patternfly-react";
Packit Service eebd6f
import { FormattedMessage } from "react-intl";
Packit Service eebd6f
import PropTypes from "prop-types";
Packit Service eebd6f
import { connect } from "react-redux";
Packit Service eebd6f
Packit Service eebd6f
class EditDescription extends React.Component {
Packit Service eebd6f
  constructor(props) {
Packit Service eebd6f
    super(props);
Packit Service eebd6f
    this.state = {
Packit Service eebd6f
      showModal: false,
Packit Service eebd6f
    };
Packit Service eebd6f
    this.open = this.open.bind(this);
Packit Service eebd6f
    this.close = this.close.bind(this);
Packit Service eebd6f
  }
Packit Service eebd6f
Packit Service eebd6f
  open(e) {
Packit Service eebd6f
    e.preventDefault();
Packit Service eebd6f
    e.stopPropagation();
Packit Service eebd6f
    this.setState({ showModal: true });
Packit Service eebd6f
  }
Packit Service eebd6f
Packit Service eebd6f
  close() {
Packit Service eebd6f
    this.setState({ showModal: false });
Packit Service eebd6f
  }
Packit Service eebd6f
Packit Service eebd6f
  render() {
Packit Service eebd6f
    return (
Packit Service eebd6f
      <>
Packit Service eebd6f
        
Packit Service eebd6f
          {(this.props.descriptionAsLink && this.props.description) || (
Packit Service eebd6f
            <FormattedMessage defaultMessage="Edit description" />
Packit Service eebd6f
          )}
Packit Service eebd6f
        
Packit Service eebd6f
        {this.state.showModal && (
Packit Service eebd6f
          
Packit Service eebd6f
            description={this.props.description}
Packit Service eebd6f
            handleEditDescription={this.props.handleEditDescription}
Packit Service eebd6f
            close={this.close}
Packit Service eebd6f
          />
Packit Service eebd6f
        )}
Packit Service eebd6f
      
Packit Service eebd6f
    );
Packit Service eebd6f
  }
Packit Service eebd6f
}
Packit Service eebd6f
Packit Service eebd6f
class EditDescriptionModal extends React.Component {
Packit Service eebd6f
  constructor(props) {
Packit Service eebd6f
    super(props);
Packit Service eebd6f
    this.state = {
Packit Service eebd6f
      description: "",
Packit Service eebd6f
    };
Packit Service eebd6f
    this.handleChange = this.handleChange.bind(this);
Packit Service eebd6f
    this.handleSubmit = this.handleSubmit.bind(this);
Packit Service eebd6f
  }
Packit Service eebd6f
Packit Service eebd6f
  componentDidMount() {
Packit Service eebd6f
    this.setState({ description: this.props.description });
Packit Service eebd6f
  }
Packit Service eebd6f
Packit Service eebd6f
  handleChange(e, prop) {
Packit Service eebd6f
    this.setState({ [prop]: e.target.value });
Packit Service eebd6f
  }
Packit Service eebd6f
Packit Service eebd6f
  handleSubmit(e) {
Packit Service eebd6f
    this.props.close();
Packit Service eebd6f
    this.props.handleEditDescription(this.state.description);
Packit Service eebd6f
    e.preventDefault();
Packit Service eebd6f
    e.stopPropagation();
Packit Service eebd6f
  }
Packit Service eebd6f
Packit Service eebd6f
  render() {
Packit Service eebd6f
    return (
Packit Service eebd6f
      <Modal show onHide={this.props.close} id="cmpsr-modal-edit-description">
Packit Service eebd6f
        <Modal.Header>
Packit Service eebd6f
          <Modal.CloseButton onClick={this.props.close} />
Packit Service eebd6f
          <Modal.Title>
Packit Service 904037
            <FormattedMessage defaultMessage="Edit description" />
Packit Service eebd6f
          </Modal.Title>
Packit Service eebd6f
        </Modal.Header>
Packit Service eebd6f
        <Modal.Body>
Packit Service eebd6f
          <form className="form-horizontal" data-form="description" onSubmit={this.handleSubmit}>
Packit Service eebd6f
            
Packit Service eebd6f
              <label className="col-sm-3 control-label required-pf" htmlFor="textInput-modal-markup">
Packit Service eebd6f
                <FormattedMessage defaultMessage="Description" />
Packit Service eebd6f
              </label>
Packit Service eebd6f
              
Packit Service eebd6f
                
Packit Service eebd6f
                  autoFocus
Packit Service eebd6f
                  type="text"
Packit Service eebd6f
                  id="textInput-modal-markup"
Packit Service eebd6f
                  className="form-control"
Packit Service eebd6f
                  value={this.state.description}
Packit Service eebd6f
                  onChange={(e) => this.handleChange(e, "description")}
Packit Service eebd6f
                />
Packit Service eebd6f
              
Packit Service eebd6f
            
Packit Service eebd6f
          </form>
Packit Service eebd6f
        </Modal.Body>
Packit Service eebd6f
        <Modal.Footer>
Packit Service eebd6f
          <button type="button" className="btn btn-default" onClick={this.props.close}>
Packit Service eebd6f
            <FormattedMessage defaultMessage="Cancel" />
Packit Service eebd6f
          </button>
Packit Service eebd6f
          
Packit Service eebd6f
            id="edit-description-modal-submit-button"
Packit Service eebd6f
            type="button"
Packit Service eebd6f
            className="btn btn-primary"
Packit Service eebd6f
            onClick={this.handleSubmit}
Packit Service eebd6f
          >
Packit Service eebd6f
            <FormattedMessage defaultMessage="Save" />
Packit Service eebd6f
          </button>
Packit Service eebd6f
        </Modal.Footer>
Packit Service eebd6f
      </Modal>
Packit Service eebd6f
    );
Packit Service eebd6f
  }
Packit Service eebd6f
}
Packit Service eebd6f
Packit Service eebd6f
EditDescription.propTypes = {
Packit Service eebd6f
  handleEditDescription: PropTypes.func.isRequired,
Packit Service eebd6f
  description: PropTypes.string,
Packit Service eebd6f
  descriptionAsLink: PropTypes.bool,
Packit Service eebd6f
};
Packit Service eebd6f
Packit Service eebd6f
EditDescription.defaultProps = {
Packit Service eebd6f
  description: "",
Packit Service eebd6f
  descriptionAsLink: false,
Packit Service eebd6f
};
Packit Service eebd6f
Packit Service eebd6f
EditDescriptionModal.propTypes = {
Packit Service eebd6f
  close: PropTypes.func.isRequired,
Packit Service eebd6f
  handleEditDescription: PropTypes.func,
Packit Service eebd6f
  description: PropTypes.string,
Packit Service eebd6f
};
Packit Service eebd6f
Packit Service eebd6f
EditDescriptionModal.defaultProps = {
Packit Service eebd6f
  handleEditDescription() {},
Packit Service eebd6f
  description: "",
Packit Service eebd6f
};
Packit Service eebd6f
Packit Service eebd6f
const mapStateToProps = () => ({});
Packit Service eebd6f
Packit Service eebd6f
export default connect(mapStateToProps, null)(EditDescription);