UNPKG

acud

Version:

acg react 组件库

117 lines (115 loc) • 3.55 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.confirm = confirm; exports.destroyAll = destroyAll; exports.error = error; exports.info = info; exports.success = success; exports.warning = warning; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireDefault(require("react")); var _DialogBox = _interopRequireDefault(require("./DialogBox")); var _UnstableContext = require("../config-provider/UnstableContext"); // import {render as reactRender, unmount} from 'rc-util/lib/React/render'; var destroyFns = []; function renderDialogBox(config) { var reactRender = (0, _UnstableContext.unstableSetRender)(); var unmount; var currentConfig = (0, _extends2["default"])((0, _extends2["default"])({}, 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["default"].createElement(_DialogBox["default"], 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((0, _extends2["default"])((0, _extends2["default"])({}, 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 }; } function destroyAll() { while (destroyFns.length) { var close = destroyFns.pop(); if (close) { close(); } } } function confirm(config) { return renderDialogBox((0, _extends2["default"])((0, _extends2["default"])({}, config), { type: 'confirm', cancelBtn: true })); } function success(config) { return renderDialogBox((0, _extends2["default"])((0, _extends2["default"])({}, config), { type: 'success', cancelBtn: false, okText: config.okText })); } function info(config) { return renderDialogBox((0, _extends2["default"])((0, _extends2["default"])({}, config), { type: 'info', cancelBtn: false, okText: config.okText })); } function warning(config) { return renderDialogBox((0, _extends2["default"])((0, _extends2["default"])({}, config), { type: 'warning', cancelBtn: false, okText: config.okText })); } function error(config) { return renderDialogBox((0, _extends2["default"])((0, _extends2["default"])({}, config), { type: 'error', cancelBtn: false, okText: config.okText })); }