import React from 'react'; import ReactDOM from 'react-dom'; import MessageBox from './messageBox'; function next(props: Record): Promise { return new Promise((resolve, reject) => { const div = document.createElement('div'); document.body.appendChild(div); const component = React.createElement(MessageBox, Object.assign({}, props, { promise: { resolve, reject }, willUnmount: () => { ReactDOM.unmountComponentAtNode(div); document.body.removeChild(div); document.body.style.removeProperty('overflow'); } })); ReactDOM.render(component, div); }); } function alert(title: string) { return next({ title }); } export default { alert };