diff --git a/src/macros/OverlayView.jsx b/src/macros/OverlayView.jsx index d0e6878a..bac84bca 100644 --- a/src/macros/OverlayView.jsx +++ b/src/macros/OverlayView.jsx @@ -97,12 +97,17 @@ export class OverlayView extends React.PureComponent { const mapPanes = this.state[OVERLAY_VIEW].getPanes() mapPanes[mapPaneName].appendChild(this.containerElement) - ReactDOM.unstable_renderSubtreeIntoContainer( - this, - React.Children.only(this.props.children), - this.containerElement, - this.onPositionElement - ) + if (React.version.match(/^16/)) { + this.onPositionElement() + this.forceUpdate() + } else { + ReactDOM.unstable_renderSubtreeIntoContainer( + this, + React.Children.only(this.props.children), + this.containerElement, + this.onPositionElement + ) + } } onPositionElement() { @@ -124,7 +129,9 @@ export class OverlayView extends React.PureComponent { onRemove() { this.containerElement.parentNode.removeChild(this.containerElement) - ReactDOM.unmountComponentAtNode(this.containerElement) + if (!React.version.match(/^16/)) { + ReactDOM.unmountComponentAtNode(this.containerElement) + } this.containerElement = null } @@ -140,7 +147,10 @@ export class OverlayView extends React.PureComponent { updaterMap, prevProps ) - _.delay(this.state[OVERLAY_VIEW].draw) + + if (!React.version.match(/^16/)) { + _.delay(this.state[OVERLAY_VIEW].draw) + } } componentWillUnmount() { @@ -156,6 +166,12 @@ export class OverlayView extends React.PureComponent { } render() { + if (React.version.match(/^16/) && this.containerElement) { + return ReactDOM.createPortal( + React.Children.only(this.props.children), + this.containerElement + ) + } return false } } diff --git a/src/tx/ClassDefinition.js b/src/tx/ClassDefinition.js index 705c8fa9..ec8edb3f 100644 --- a/src/tx/ClassDefinition.js +++ b/src/tx/ClassDefinition.js @@ -33,7 +33,7 @@ function contentToJS(KlassName, $, $content) { const $constructorTable = $content.find( `[summary="class ${KlassName} - Constructor"]` ) - const [, constructorArgs] = $constructorTable + const constructorArgs = $constructorTable .find(`tr > td > code`) .text() .match(/\S+\((.*)\)/)