// @flow import * as React from 'react'; import { stopContextMenu } from 'util/context-menu'; type Props = { source: string, }; type State = { loading: boolean, }; class HtmlViewer extends React.PureComponent { iframe: React.ElementRef; constructor(props: Props) { super(props); this.state = { loading: true }; this.iframe = React.createRef(); } componentDidMount() { const resize = () => { const { scrollHeight, scrollWidth } = this.iframe.current.contentDocument.body; this.iframe.current.style.height = `${scrollHeight}px`; this.iframe.current.style.width = `${scrollWidth}px`; }; this.iframe.current.onload = () => { this.setState({ loading: false }); resize(); }; this.iframe.current.resize = () => resize(); } render() { const { source } = this.props; const { loading } = this.state; return (
{loading &&
}