All files / owid-grapher/grapher/bodyDiv BodyDiv.tsx

92.59% Statements 25/27
100% Branches 3/3
75% Functions 3/4
92.59% Lines 25/27

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 261x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x     1x 1x 1x 1x 1x 1x
import React from "react"
import ReactDOM from "react-dom"
 
// Render a component on the Body instead of inside the current Tree.
// https://reactjs.org/docs/portals.html
export class BodyDiv extends React.Component {
    constructor(props: any) {
        super(props)
        this.el = document.createElement("div")
    }
 
    el: HTMLDivElement
 
    componentDidMount(): void {
        document.body.appendChild(this.el)
    }
 
    componentWillUnmount(): void {
        document.body.removeChild(this.el)
    }
 
    render(): any {
        return ReactDOM.createPortal(this.props.children, this.el)
    }
}