UNPKG

acud

Version:

acg react 组件库

104 lines • 2.91 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import React from 'react'; // import {render as reactRender, unmount} from 'rc-util/lib/React/render'; import DialogBox from './DialogBox'; import { unstableSetRender } from '../config-provider/UnstableContext'; var destroyFns = []; function renderDialogBox(config) { var reactRender = unstableSetRender(); var unmount; var currentConfig = _extends(_extends({}, config), { visible: true, onClose: close }); var container = config.getContainer ? typeof config.getContainer === 'function' ? config.getContainer() : config.getContainer : document.createDocumentFragment(); function render(dialogConfig) { setTimeout(function () { unmount = reactRender(/*#__PURE__*/React.createElement(DialogBox, dialogConfig), container); }); } function destroy() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var triggerCancel = args.some(function (param) { return param && param.triggerCancel; }); if (config.onCancel && triggerCancel) { // @ts-ignore config.onCancel.apply(config, args); } for (var i = 0; i < destroyFns.length; i++) { var fn = destroyFns[i]; if (fn === close) { destroyFns.splice(i, 1); break; } } if (unmount) { unmount(); } } function close() { var _this = this; for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } render(_extends(_extends({}, currentConfig), { visible: false, afterClose: function afterClose() { if (typeof config.afterClose === 'function') { config.afterClose(); } destroy.apply(_this, args); } })); } render(currentConfig); destroyFns.push(close); return { destroy: close }; } export function destroyAll() { while (destroyFns.length) { var close = destroyFns.pop(); if (close) { close(); } } } export function confirm(config) { return renderDialogBox(_extends(_extends({}, config), { type: 'confirm', cancelBtn: true })); } export function success(config) { return renderDialogBox(_extends(_extends({}, config), { type: 'success', cancelBtn: false, okText: config.okText })); } export function info(config) { return renderDialogBox(_extends(_extends({}, config), { type: 'info', cancelBtn: false, okText: config.okText })); } export function warning(config) { return renderDialogBox(_extends(_extends({}, config), { type: 'warning', cancelBtn: false, okText: config.okText })); } export function error(config) { return renderDialogBox(_extends(_extends({}, config), { type: 'error', cancelBtn: false, okText: config.okText })); }