import * as React from 'react'; import * as ReactDOM from 'react-dom'; import closest from '../_util/closest'; import Modal from './Modal'; export default function operation() { var actions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [{ text: '确定' }]; var platform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'ios'; var closed = false; var prefixCls = 'am-modal'; var div = document.createElement('div'); document.body.appendChild(div); function close() { ReactDOM.unmountComponentAtNode(div); if (div && div.parentNode) { div.parentNode.removeChild(div); } } var footer = actions.map(function (button) { // tslint:disable-next-line:only-arrow-functions var orginPress = button.onPress || function () {}; button.onPress = function () { if (closed) { return; } var res = orginPress(); if (res && res.then) { res.then(function () { closed = true; close(); })['catch'](function () {}); } else { closed = true; close(); } }; return button; }); function onWrapTouchStart(e) { if (!/iPhone|iPod|iPad/i.test(navigator.userAgent)) { return; } var pNode = closest(e.target, '.am-modal-footer'); if (!pNode) { e.preventDefault(); } } ReactDOM.render(React.createElement(Modal, { visible: true, operation: true, transparent: true, prefixCls: prefixCls, transitionName: 'am-zoom', closable: false, maskClosable: true, onClose: close, footer: footer, maskTransitionName: 'am-fade', className: 'am-modal-operation', platform: platform, wrapProps: { onTouchStart: onWrapTouchStart } }), div); return { close: close }; }