1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | Object.defineProperty(exports, "__esModule", {
|
6 | value: true
|
7 | });
|
8 | exports["default"] = confirm;
|
9 |
|
10 | var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
11 |
|
12 | var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
13 |
|
14 | var _react = _interopRequireDefault(require("react"));
|
15 |
|
16 | var _reactDom = _interopRequireDefault(require("react-dom"));
|
17 |
|
18 | var _classnames = _interopRequireDefault(require("classnames"));
|
19 |
|
20 | var _icon = _interopRequireDefault(require("../icon"));
|
21 |
|
22 | var _Modal = _interopRequireDefault(require("./Modal"));
|
23 |
|
24 | var _ActionButton = _interopRequireDefault(require("./ActionButton"));
|
25 |
|
26 | var _locale = require("./locale");
|
27 |
|
28 | var _configure = require("../configure");
|
29 |
|
30 | var IS_REACT_16 = !!_reactDom["default"].createPortal;
|
31 |
|
32 | var 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 |
|
115 | function 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 |
|