UNPKG

5.11 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports["default"] = confirm;
9
10var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
12var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
14var _react = _interopRequireDefault(require("react"));
15
16var _reactDom = _interopRequireDefault(require("react-dom"));
17
18var _classnames = _interopRequireDefault(require("classnames"));
19
20var _icon = _interopRequireDefault(require("../icon"));
21
22var _Modal = _interopRequireDefault(require("./Modal"));
23
24var _ActionButton = _interopRequireDefault(require("./ActionButton"));
25
26var _locale = require("./locale");
27
28var _configure = require("../configure");
29
30var IS_REACT_16 = !!_reactDom["default"].createPortal;
31
32var ConfirmDialog = function ConfirmDialog(props) {
33 var customizePrefixCls = props.prefixCls,
34 onCancel = props.onCancel,
35 onOk = props.onOk,
36 close = props.close,
37 zIndex = props.zIndex,
38 width = props.width,
39 style = props.style,
40 type = props.type,
41 className = props.className,
42 afterClose = props.afterClose,
43 visible = props.visible,
44 keyboard = props.keyboard,
45 okText = props.okText,
46 cancelText = props.cancelText,
47 _props$okCancel = props.okCancel,
48 okCancel = _props$okCancel === void 0 ? true : _props$okCancel,
49 iconType = props.iconType,
50 okType = props.okType,
51 _props$maskClosable = props.maskClosable,
52 maskClosable = _props$maskClosable === void 0 ? false : _props$maskClosable,
53 title = props.title,
54 content = props.content;
55 var propOkType = okType || 'primary';
56 var prefixCls = (0, _configure.getPrefixCls)('confirm', customizePrefixCls);
57 var propWidth = width || 416;
58 var propStyle = style || {};
59 var runtimeLocale = (0, _locale.getConfirmLocale)();
60 var propOkText = okText || (okCancel ? runtimeLocale.okText : runtimeLocale.justOkText);
61 var propCancelText = cancelText || runtimeLocale.cancelText;
62 var classString = (0, _classnames["default"])(prefixCls, "".concat(prefixCls, "-").concat(type), className);
63 var actionButtonProps = {
64 okProps: {
65 text: propOkText,
66 type: propOkType,
67 actionFn: onOk,
68 closeModal: close
69 }
70 };
71
72 if (okCancel) {
73 actionButtonProps.cancelProps = {
74 text: propCancelText,
75 actionFn: onCancel,
76 closeModal: close
77 };
78 }
79
80 function handleCancel() {
81 close({
82 triggerCancel: true
83 });
84 }
85
86 return _react["default"].createElement(_Modal["default"], {
87 className: classString,
88 onCancel: handleCancel,
89 visible: visible,
90 title: "",
91 transitionName: "zoom",
92 footer: "",
93 maskTransitionName: "fade",
94 maskClosable: maskClosable,
95 style: propStyle,
96 width: propWidth,
97 zIndex: zIndex,
98 afterClose: afterClose,
99 keyboard: keyboard
100 }, _react["default"].createElement("div", {
101 className: "".concat(prefixCls, "-body-wrapper")
102 }, _react["default"].createElement("div", {
103 className: "".concat(prefixCls, "-body")
104 }, iconType ? _react["default"].createElement(_icon["default"], {
105 type: iconType
106 }) : null, _react["default"].createElement("span", {
107 className: "".concat(prefixCls, "-title")
108 }, title), _react["default"].createElement("div", {
109 className: "".concat(prefixCls, "-content")
110 }, content)), _react["default"].createElement("div", {
111 className: "".concat(prefixCls, "-btns")
112 }, _react["default"].createElement(_ActionButton["default"], (0, _extends2["default"])({}, actionButtonProps)))));
113};
114
115function confirm(config) {
116 var div = document.createElement('div');
117 document.body.appendChild(div);
118
119 function destroy() {
120 var unmountResult = _reactDom["default"].unmountComponentAtNode(div);
121
122 if (unmountResult && div.parentNode) {
123 div.parentNode.removeChild(div);
124 }
125
126 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
127 args[_key] = arguments[_key];
128 }
129
130 var triggerCancel = args && args.length && args.some(function (param) {
131 return param && param.triggerCancel;
132 });
133
134 if (config.onCancel && triggerCancel) {
135 config.onCancel.apply(config, args);
136 }
137 }
138
139 function render(props) {
140 _reactDom["default"].render(_react["default"].createElement(ConfirmDialog, (0, _extends2["default"])({}, props)), div);
141 }
142
143 function close() {
144 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
145 args[_key2] = arguments[_key2];
146 }
147
148 if (IS_REACT_16) {
149 render((0, _objectSpread2["default"])({}, config, {
150 close: close,
151 visible: false,
152 afterClose: destroy.bind.apply(destroy, [this].concat(args))
153 }));
154 } else {
155 destroy.apply(void 0, args);
156 }
157 }
158
159 render((0, _objectSpread2["default"])({}, config, {
160 visible: true,
161 close: close
162 }));
163 return {
164 destroy: close
165 };
166}
167//# sourceMappingURL=confirm.js.map