123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- "use strict";
- "use client";
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.ConfirmContent = ConfirmContent;
- exports.default = void 0;
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
- var React = _interopRequireWildcard(require("react"));
- var _CheckCircleFilled = _interopRequireDefault(require("@ant-design/icons/CheckCircleFilled"));
- var _CloseCircleFilled = _interopRequireDefault(require("@ant-design/icons/CloseCircleFilled"));
- var _ExclamationCircleFilled = _interopRequireDefault(require("@ant-design/icons/ExclamationCircleFilled"));
- var _InfoCircleFilled = _interopRequireDefault(require("@ant-design/icons/InfoCircleFilled"));
- var _classnames = _interopRequireDefault(require("classnames"));
- var _useZIndex = require("../_util/hooks/useZIndex");
- var _motion = require("../_util/motion");
- var _warning = require("../_util/warning");
- var _configProvider = _interopRequireDefault(require("../config-provider"));
- var _locale = require("../locale");
- var _useToken = _interopRequireDefault(require("../theme/useToken"));
- var _ConfirmCancelBtn = _interopRequireDefault(require("./components/ConfirmCancelBtn"));
- var _ConfirmOkBtn = _interopRequireDefault(require("./components/ConfirmOkBtn"));
- var _context = require("./context");
- var _Modal = _interopRequireDefault(require("./Modal"));
- var _confirm = _interopRequireDefault(require("./style/confirm"));
- var __rest = void 0 && (void 0).__rest || function (s, e) {
- var t = {};
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
- }
- return t;
- };
- function ConfirmContent(props) {
- const {
- prefixCls,
- icon,
- okText,
- cancelText,
- confirmPrefixCls,
- type,
- okCancel,
- footer,
- // Legacy for static function usage
- locale: staticLocale
- } = props,
- resetProps = __rest(props, ["prefixCls", "icon", "okText", "cancelText", "confirmPrefixCls", "type", "okCancel", "footer", "locale"]);
- if (process.env.NODE_ENV !== 'production') {
- const warning = (0, _warning.devUseWarning)('Modal');
- process.env.NODE_ENV !== "production" ? warning(!(typeof icon === 'string' && icon.length > 2), 'breaking', `\`icon\` is using ReactNode instead of string naming in v4. Please check \`${icon}\` at https://ant.design/components/icon`) : void 0;
- }
- // Icon
- let mergedIcon = icon;
- // 支持传入{ icon: null }来隐藏`Modal.confirm`默认的Icon
- if (!icon && icon !== null) {
- switch (type) {
- case 'info':
- mergedIcon = /*#__PURE__*/React.createElement(_InfoCircleFilled.default, null);
- break;
- case 'success':
- mergedIcon = /*#__PURE__*/React.createElement(_CheckCircleFilled.default, null);
- break;
- case 'error':
- mergedIcon = /*#__PURE__*/React.createElement(_CloseCircleFilled.default, null);
- break;
- default:
- mergedIcon = /*#__PURE__*/React.createElement(_ExclamationCircleFilled.default, null);
- }
- }
- // 默认为 true,保持向下兼容
- const mergedOkCancel = okCancel !== null && okCancel !== void 0 ? okCancel : type === 'confirm';
- const autoFocusButton = props.autoFocusButton === null ? false : props.autoFocusButton || 'ok';
- const [locale] = (0, _locale.useLocale)('Modal');
- const mergedLocale = staticLocale || locale;
- // ================== Locale Text ==================
- const okTextLocale = okText || (mergedOkCancel ? mergedLocale === null || mergedLocale === void 0 ? void 0 : mergedLocale.okText : mergedLocale === null || mergedLocale === void 0 ? void 0 : mergedLocale.justOkText);
- const cancelTextLocale = cancelText || (mergedLocale === null || mergedLocale === void 0 ? void 0 : mergedLocale.cancelText);
- // ================= Context Value =================
- const btnCtxValue = Object.assign({
- autoFocusButton,
- cancelTextLocale,
- okTextLocale,
- mergedOkCancel
- }, resetProps);
- const btnCtxValueMemo = React.useMemo(() => btnCtxValue, (0, _toConsumableArray2.default)(Object.values(btnCtxValue)));
- // ====================== Footer Origin Node ======================
- const footerOriginNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_ConfirmCancelBtn.default, null), /*#__PURE__*/React.createElement(_ConfirmOkBtn.default, null));
- const hasTitle = props.title !== undefined && props.title !== null;
- const bodyCls = `${confirmPrefixCls}-body`;
- return /*#__PURE__*/React.createElement("div", {
- className: `${confirmPrefixCls}-body-wrapper`
- }, /*#__PURE__*/React.createElement("div", {
- className: (0, _classnames.default)(bodyCls, {
- [`${bodyCls}-has-title`]: hasTitle
- })
- }, mergedIcon, /*#__PURE__*/React.createElement("div", {
- className: `${confirmPrefixCls}-paragraph`
- }, hasTitle && /*#__PURE__*/React.createElement("span", {
- className: `${confirmPrefixCls}-title`
- }, props.title), /*#__PURE__*/React.createElement("div", {
- className: `${confirmPrefixCls}-content`
- }, props.content))), footer === undefined || typeof footer === 'function' ? (/*#__PURE__*/React.createElement(_context.ModalContextProvider, {
- value: btnCtxValueMemo
- }, /*#__PURE__*/React.createElement("div", {
- className: `${confirmPrefixCls}-btns`
- }, typeof footer === 'function' ? footer(footerOriginNode, {
- OkBtn: _ConfirmOkBtn.default,
- CancelBtn: _ConfirmCancelBtn.default
- }) : footerOriginNode))) : footer, /*#__PURE__*/React.createElement(_confirm.default, {
- prefixCls: prefixCls
- }));
- }
- const ConfirmDialog = props => {
- const {
- close,
- zIndex,
- maskStyle,
- direction,
- prefixCls,
- wrapClassName,
- rootPrefixCls,
- bodyStyle,
- closable = false,
- onConfirm,
- styles
- } = props;
- if (process.env.NODE_ENV !== 'production') {
- const warning = (0, _warning.devUseWarning)('Modal');
- [['visible', 'open'], ['bodyStyle', 'styles.body'], ['maskStyle', 'styles.mask']].forEach(([deprecatedName, newName]) => {
- warning.deprecated(!(deprecatedName in props), deprecatedName, newName);
- });
- }
- const confirmPrefixCls = `${prefixCls}-confirm`;
- const width = props.width || 416;
- const style = props.style || {};
- const mask = props.mask === undefined ? true : props.mask;
- // 默认为 false,保持旧版默认行为
- const maskClosable = props.maskClosable === undefined ? false : props.maskClosable;
- const classString = (0, _classnames.default)(confirmPrefixCls, `${confirmPrefixCls}-${props.type}`, {
- [`${confirmPrefixCls}-rtl`]: direction === 'rtl'
- }, props.className);
- // ========================= zIndex =========================
- const [, token] = (0, _useToken.default)();
- const mergedZIndex = React.useMemo(() => {
- if (zIndex !== undefined) {
- return zIndex;
- }
- // Static always use max zIndex
- return token.zIndexPopupBase + _useZIndex.CONTAINER_MAX_OFFSET;
- }, [zIndex, token]);
- // ========================= Render =========================
- return /*#__PURE__*/React.createElement(_Modal.default, Object.assign({}, props, {
- className: classString,
- wrapClassName: (0, _classnames.default)({
- [`${confirmPrefixCls}-centered`]: !!props.centered
- }, wrapClassName),
- onCancel: () => {
- close === null || close === void 0 ? void 0 : close({
- triggerCancel: true
- });
- onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm(false);
- },
- title: "",
- footer: null,
- transitionName: (0, _motion.getTransitionName)(rootPrefixCls || '', 'zoom', props.transitionName),
- maskTransitionName: (0, _motion.getTransitionName)(rootPrefixCls || '', 'fade', props.maskTransitionName),
- mask: mask,
- maskClosable: maskClosable,
- style: style,
- styles: Object.assign({
- body: bodyStyle,
- mask: maskStyle
- }, styles),
- width: width,
- zIndex: mergedZIndex,
- closable: closable
- }), /*#__PURE__*/React.createElement(ConfirmContent, Object.assign({}, props, {
- confirmPrefixCls: confirmPrefixCls
- })));
- };
- const ConfirmDialogWrapper = props => {
- const {
- rootPrefixCls,
- iconPrefixCls,
- direction,
- theme
- } = props;
- return /*#__PURE__*/React.createElement(_configProvider.default, {
- prefixCls: rootPrefixCls,
- iconPrefixCls: iconPrefixCls,
- direction: direction,
- theme: theme
- }, /*#__PURE__*/React.createElement(ConfirmDialog, Object.assign({}, props)));
- };
- if (process.env.NODE_ENV !== 'production') {
- ConfirmDialog.displayName = 'ConfirmDialog';
- ConfirmDialogWrapper.displayName = 'ConfirmDialogWrapper';
- }
- var _default = exports.default = ConfirmDialogWrapper;
|