@perfma/heaven
Version:
An UI Framework base [Ant Design V4](https://ant.design/components/overview-cn/) for React.
68 lines (56 loc) • 2.95 kB
JavaScript
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
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 React from 'react';
import { Modal, ConfigProvider } from 'antd';
import classnames from 'classnames';
import './index.less';
import { mixinStaticProps } from '../_util';
var ProModal = function ProModal(props) {
var customizePrefixCls = props.prefixCls,
_props$size = props.size,
size = _props$size === void 0 ? 'default' : _props$size,
width = props.width,
children = props.children,
className = props.className,
footer = props.footer;
var _React$useContext = React.useContext(ConfigProvider.ConfigContext),
getPrefixCls = _React$useContext.getPrefixCls;
var prefixCls = React.useMemo(function () {
return getPrefixCls('modal', customizePrefixCls);
}, [customizePrefixCls, getPrefixCls]);
var className_ = React.useMemo(function () {
var _classnames;
return classnames((_classnames = {}, _defineProperty(_classnames, "".concat(className), className), _defineProperty(_classnames, "".concat(prefixCls, "-without-footer"), footer === null), _classnames));
}, [className, prefixCls, footer]);
var computedWidth = React.useMemo(function () {
if (width !== 520) return width;
switch (size) {
case 'large':
return 800;
case 'small':
return 480;
case 'xsmall':
return 360;
default:
return 640;
}
}, [width, size]);
return /*#__PURE__*/React.createElement(Modal, _objectSpread(_objectSpread({}, props), {}, {
className: className_,
prefixCls: prefixCls,
width: computedWidth
}), children);
};
Modal.defaultProps = _objectSpread(_objectSpread({}, Modal.defaultProps), {}, {
centered: true
});
mixinStaticProps(ProModal, Modal);
export default Object.assign(ProModal, {
useModal: Modal.useModal,
info: Modal.info,
success: Modal.success,
error: Modal.error,
warning: Modal.warning,
confirm: Modal.confirm
});