acud
Version:
acg react 组件库
117 lines (115 loc) • 3.55 kB
JavaScript
;
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
}));
}