90 lines
3.7 KiB
JavaScript
90 lines
3.7 KiB
JavaScript
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||
|
||
import * as React from 'react';
|
||
import classNames from 'classnames';
|
||
import Dialog from './Modal';
|
||
import ActionButton from './ActionButton';
|
||
import warning from '../_util/warning';
|
||
|
||
var ConfirmDialog = function ConfirmDialog(props) {
|
||
var icon = props.icon,
|
||
onCancel = props.onCancel,
|
||
onOk = props.onOk,
|
||
close = props.close,
|
||
zIndex = props.zIndex,
|
||
afterClose = props.afterClose,
|
||
visible = props.visible,
|
||
keyboard = props.keyboard,
|
||
centered = props.centered,
|
||
getContainer = props.getContainer,
|
||
maskStyle = props.maskStyle,
|
||
okText = props.okText,
|
||
okButtonProps = props.okButtonProps,
|
||
cancelText = props.cancelText,
|
||
cancelButtonProps = props.cancelButtonProps;
|
||
warning(!(typeof icon === 'string' && icon.length > 2), 'Modal', "`icon` is using ReactNode instead of string naming in v4. Please check `".concat(icon, "` at https://ant.design/components/icon")); // 支持传入{ icon: null }来隐藏`Modal.confirm`默认的Icon
|
||
|
||
var okType = props.okType || 'primary';
|
||
var prefixCls = props.prefixCls || 'ant-modal';
|
||
var contentPrefixCls = "".concat(prefixCls, "-confirm"); // 默认为 true,保持向下兼容
|
||
|
||
var okCancel = 'okCancel' in props ? props.okCancel : true;
|
||
var width = props.width || 416;
|
||
var style = props.style || {};
|
||
var mask = props.mask === undefined ? true : props.mask; // 默认为 false,保持旧版默认行为
|
||
|
||
var maskClosable = props.maskClosable === undefined ? false : props.maskClosable;
|
||
var autoFocusButton = props.autoFocusButton === null ? false : props.autoFocusButton || 'ok';
|
||
var transitionName = props.transitionName || 'zoom';
|
||
var maskTransitionName = props.maskTransitionName || 'fade';
|
||
var classString = classNames(contentPrefixCls, "".concat(contentPrefixCls, "-").concat(props.type), props.className);
|
||
var cancelButton = okCancel && /*#__PURE__*/React.createElement(ActionButton, {
|
||
actionFn: onCancel,
|
||
closeModal: close,
|
||
autoFocus: autoFocusButton === 'cancel',
|
||
buttonProps: cancelButtonProps
|
||
}, cancelText);
|
||
return /*#__PURE__*/React.createElement(Dialog, {
|
||
prefixCls: prefixCls,
|
||
className: classString,
|
||
wrapClassName: classNames(_defineProperty({}, "".concat(contentPrefixCls, "-centered"), !!props.centered)),
|
||
onCancel: function onCancel() {
|
||
return close({
|
||
triggerCancel: true
|
||
});
|
||
},
|
||
visible: visible,
|
||
title: "",
|
||
transitionName: transitionName,
|
||
footer: "",
|
||
maskTransitionName: maskTransitionName,
|
||
mask: mask,
|
||
maskClosable: maskClosable,
|
||
maskStyle: maskStyle,
|
||
style: style,
|
||
width: width,
|
||
zIndex: zIndex,
|
||
afterClose: afterClose,
|
||
keyboard: keyboard,
|
||
centered: centered,
|
||
getContainer: getContainer
|
||
}, /*#__PURE__*/React.createElement("div", {
|
||
className: "".concat(contentPrefixCls, "-body-wrapper")
|
||
}, /*#__PURE__*/React.createElement("div", {
|
||
className: "".concat(contentPrefixCls, "-body")
|
||
}, icon, props.title === undefined ? null : /*#__PURE__*/React.createElement("span", {
|
||
className: "".concat(contentPrefixCls, "-title")
|
||
}, props.title), /*#__PURE__*/React.createElement("div", {
|
||
className: "".concat(contentPrefixCls, "-content")
|
||
}, props.content)), /*#__PURE__*/React.createElement("div", {
|
||
className: "".concat(contentPrefixCls, "-btns")
|
||
}, cancelButton, /*#__PURE__*/React.createElement(ActionButton, {
|
||
type: okType,
|
||
actionFn: onOk,
|
||
closeModal: close,
|
||
autoFocus: autoFocusButton === 'ok',
|
||
buttonProps: okButtonProps
|
||
}, okText))));
|
||
};
|
||
|
||
export default ConfirmDialog; |