UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

179 lines (149 loc) 5.84 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"]; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = confirm; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireWildcard(require("react")); var _reactDom = _interopRequireDefault(require("react-dom")); var _classnames = _interopRequireDefault(require("classnames")); var _icon = _interopRequireDefault(require("../icon")); var _Modal = _interopRequireDefault(require("./Modal")); var _ActionButton = _interopRequireDefault(require("./ActionButton")); var _locale = require("./locale"); var _ConfigContext = _interopRequireDefault(require("../config-provider/ConfigContext")); var IS_REACT_16 = !!_reactDom["default"].createPortal; var ConfirmDialog = function ConfirmDialog(props) { var customizePrefixCls = props.prefixCls, modalPrefixCls = props.modalPrefixCls, onCancel = props.onCancel, onOk = props.onOk, close = props.close, zIndex = props.zIndex, width = props.width, style = props.style, type = props.type, className = props.className, afterClose = props.afterClose, visible = props.visible, keyboard = props.keyboard, okText = props.okText, cancelText = props.cancelText, _props$okCancel = props.okCancel, okCancel = _props$okCancel === void 0 ? true : _props$okCancel, iconType = props.iconType, okType = props.okType, _props$maskClosable = props.maskClosable, maskClosable = _props$maskClosable === void 0 ? false : _props$maskClosable, title = props.title, content = props.content, okButtonProps = props.okButtonProps, cancelButtonProps = props.cancelButtonProps; var _useContext = (0, _react.useContext)(_ConfigContext["default"]), getPrefixCls = _useContext.getPrefixCls; var propOkType = okType || 'primary'; var prefixCls = getPrefixCls('confirm', customizePrefixCls); var propWidth = width || 416; var propStyle = style || {}; var runtimeLocale = (0, _locale.getConfirmLocale)(); var propOkText = okText || (okCancel ? runtimeLocale.okText : runtimeLocale.justOkText); var propCancelText = cancelText || runtimeLocale.cancelText; var classString = (0, _classnames["default"])(prefixCls, "".concat(prefixCls, "-").concat(type), className); var actionButtonProps = { okProps: { buttonProps: okButtonProps, text: propOkText, type: propOkType, actionFn: onOk, closeModal: close } }; if (okCancel) { actionButtonProps.cancelProps = { buttonProps: cancelButtonProps, text: propCancelText, actionFn: onCancel, closeModal: close }; } var handleCancel = (0, _react.useCallback)(function () { close({ triggerCancel: true }); }, [close]); return /*#__PURE__*/_react["default"].createElement(_Modal["default"], { prefixCls: modalPrefixCls, className: classString, onCancel: handleCancel, visible: visible, title: "", transitionName: "zoom", footer: "", maskTransitionName: "fade", maskClosable: maskClosable, style: propStyle, width: propWidth, zIndex: zIndex, afterClose: afterClose, keyboard: keyboard }, /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(prefixCls, "-body-wrapper") }, /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(prefixCls, "-body") }, iconType ? /*#__PURE__*/_react["default"].createElement(_icon["default"], { type: iconType }) : null, /*#__PURE__*/_react["default"].createElement("span", { className: "".concat(prefixCls, "-title") }, title), /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(prefixCls, "-content") }, content)), /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(prefixCls, "-btns") }, /*#__PURE__*/_react["default"].createElement(_ActionButton["default"], (0, _extends2["default"])({}, actionButtonProps))))); }; function confirm(config) { var div = document.createElement('div'); document.body.appendChild(div); function destroy() { var unmountResult = _reactDom["default"].unmountComponentAtNode(div); if (unmountResult && div.parentNode) { div.parentNode.removeChild(div); } for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var triggerCancel = args && args.length && args.some(function (param) { return param && param.triggerCancel; }); if (config.onCancel && triggerCancel) { config.onCancel.apply(config, args); } } function render(props) { _reactDom["default"].render( /*#__PURE__*/_react["default"].createElement(ConfirmDialog, (0, _extends2["default"])({}, props)), div); } function close() { for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } if (IS_REACT_16) { render((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, config), {}, { close: close, visible: false, afterClose: destroy.bind.apply(destroy, [this].concat(args)) })); } else { destroy.apply(void 0, args); } } render((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, config), {}, { visible: true, close: close })); return { destroy: close }; } //# sourceMappingURL=confirm.js.map