1 import React from 'react';
2 import ReactDOM from 'react-dom';
3 import BootstrapModal from 'react-bootstrap/lib/Modal.js';
7 export default class Modal extends React.Component {
9 static Header = BootstrapModal.Header;
11 static Title = BootstrapModal.Title;
13 static Footer = BootstrapModal.Footer;
15 static Body = class ModalBody extends React.Component {
18 let {children, ...props} = this.props;
20 <BootstrapModal.Body {...props}>
22 </BootstrapModal.Body>
27 let element = ReactDOM.findDOMNode(this);
28 element.addEventListener('click', event => {
29 if (event.target.tagName === 'A') {
30 event.preventDefault();
33 ['wheel', 'mousewheel', 'DOMMouseScroll'].forEach(eventType =>
34 element.addEventListener(eventType, event => event.stopPropagation())
39 componentWillMount() {
40 this.modalId = `dox-ui-modal-${nextModalId++}`;
44 this.ensureRootClass();
47 componentDidUpdate() {
48 this.ensureRootClass();
52 let element = document.getElementById(this.modalId);
53 while(element && !element.hasAttribute('data-reactroot')) {
54 element = element.parentElement;
56 if (element && !element.classList.contains('dox-ui')) {
57 element.classList.add('dox-ui');
62 let {children, ...props} = this.props;
64 <BootstrapModal {...props} id={this.modalId}>