import * as React from "react"; const URL_REGEX = new RegExp( "^https://gist.github.com/([a-zA-Z\\d](?:[a-zA-Z\\d]|-(?=[a-zA-Z\\d])){0,38})/(.*)$" ); type Props = { isSelected: boolean; attrs: { href: string; matches: string[]; }; }; class Gist extends React.Component { static ENABLED = [URL_REGEX]; ref = React.createRef(); get id() { const gistUrl = new URL(this.props.attrs.href); return gistUrl.pathname.split("/")[2]; } componentDidMount() { this.updateIframeContent(); } componentDidUpdate() { this.updateIframeContent(); } updateIframeContent = () => { const iframe = this.ref.current; if (!iframe) return; const id = this.id; // @ts-expect-error ts-migrate(2339) FIXME: Property 'document' does not exist on type 'HTMLIF... Remove this comment to see the full error message let doc = iframe.document; if (iframe.contentDocument) { doc = iframe.contentDocument; } else if (iframe.contentWindow) { doc = iframe.contentWindow.document; } const gistLink = `https://gist.github.com/${id}.js`; const gistScript = ``; const styles = ""; const iframeHtml = `${styles}${gistScript}`; if (!doc) return; doc.open(); doc.writeln(iframeHtml); doc.close(); }; render() { const id = this.id; return (