@kiwicom/orbit-components
Version:
<div align="center"> <a href="https://orbit.kiwi" target="_blank"> <img alt="orbit-components" src="https://orbit.kiwi/wp-content/uploads/2018/08/orbit-components.png" srcset="https://orbit.kiwi/wp-content/uploads/2018/08/orbit-components@2x.png 2x"
31 lines (23 loc) • 628 B
JavaScript
// @flow
import * as React from "react";
import ReactDOM from "react-dom";
import type { Props } from "./index";
export default class Portal extends React.Component<Props> {
// eslint-disable-next-line react/sort-comp
node = document.getElementById(this.props.element || "modal");
el = document.createElement("div");
componentDidMount() {
if (this.node) {
this.node.appendChild(this.el);
}
}
componentWillUnmount() {
if (this.node) {
this.node.removeChild(this.el);
}
}
render() {
const { children } = this.props;
return ReactDOM.createPortal(children, this.el);
}
}