public/js/components/Utilities/Modal.js (29 lines of code) (raw):

import React from 'react'; import {PropTypes} from 'prop-types'; export default class Modal extends React.Component { static propTypes = { isOpen: PropTypes.bool.isRequired, dismiss: PropTypes.func.isRequired, children: PropTypes.element.isRequired }; preventClosingClick (event) { event.stopPropagation(); } render() { if(!this.props.isOpen) { return false; } return ( <div className="modal" onClick={this.props.dismiss}> <div className="modal__content" onClick={this.preventClosingClick}> <div className="modal__content__header"> <button className="i-cross modal__dismiss" onClick={this.props.dismiss}> Close </button> </div> {this.props.children} </div> </div> ); } }