/** * WordPress dependencies */ import * as React from 'react'; import { Button, Modal, FocusableIframe } from '@wordpress/components'; import { baseUrl } from '@/globals'; type DialogProps = { onSelectForm: Function; }; type DialogState = { isOpen: boolean; }; class SelectDialog extends React.Component { constructor( props: any ) { super( props ); this.state = { isOpen: false, }; } componentDidMount() { window.addEventListener( 'message', this.handlePostMessage, false ); } componentWillUnmount() { window.removeEventListener( 'message', this.handlePostMessage ); } handlePostMessage = ( event: MessageEvent ) => { if (event.origin === baseUrl && event.data.type === 'cog-form-selected') { this.props.onSelectForm( event.data ); this.setState({ isOpen: false }); // Close Dialog } } render() { return (
{ this.state.isOpen && ( this.setState( { isOpen: false } ) } shouldCloseOnClickOutside={ false } > ) }
); } } export default SelectDialog;