import React, {PropTypes} from 'react'; import Link from './base/Link'; import Modal from './base/Modal'; import ModalBody from './base/ModalBody'; import ModalHeader from './base/ModalHeader'; import ModalFooter from './base/ModalFooter'; import KeyValueEditor from './base/KeyValueEditor'; import ModalComponent from './lib/ModalComponent'; class EnvironmentEditModal extends ModalComponent { constructor (props) { super(props); this.requestGroup = null; this.state = { pairs: [], uniquenessKey: '' } } _saveChanges () { const environment = this._mapPairsToData(this.state.pairs); this.props.onChange(Object.assign({}, this.requestGroup, {environment})); this.hide(); } _keyValueChange (pairs) { this.setState({pairs}); } _mapPairsToData (pairs) { return pairs.reduce((prev, curr) => { return Object.assign({}, prev, {[curr.name]: curr.value}); }, {}); } _mapDataToPairs (data) { return Object.keys(data).map(key => ({name: key, value: data[key]})); } _update (requestGroup) { this.requestGroup = requestGroup; this.setState({ pairs: this._mapDataToPairs(requestGroup.environment), uniquenessKey: requestGroup._id }) } show (requestGroup) { super.show(); this._update(requestGroup); } toggle (requestGroup) { super.toggle(); this._update(requestGroup); } render () { const {uniquenessKey, pairs} = this.state; return ( Environment Variables
This data can be used for  Nunjucks Templating  in your requests.
); } } EnvironmentEditModal.propTypes = { onChange: PropTypes.func.isRequired }; export default EnvironmentEditModal;