@alifd/meet-react
Version:
Fusion Mobile React UI System Component
51 lines • 2.35 kB
JavaScript
import { rpx2vw4style as __rpx2vw__ } from "@alifd/babel-runtime-jsx-style-transform";
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
import { __rest } from "tslib";
import React, { createElement } from "react";
import classNames from 'classnames';
import View from '../view';
import Modal from '../modal';
import Icon from '../icon';
import { isFunction } from '../utils';
var Popup = function Popup(props) {
var _props$prefix = props.prefix,
prefix = _props$prefix === void 0 ? 'mt-' : _props$prefix,
_props$closeIconType = props.closeIconType,
closeIconType = _props$closeIconType === void 0 ? 'error' : _props$closeIconType,
_props$bgColor = props.bgColor,
bgColor = _props$bgColor === void 0 ? 'transparent' : _props$bgColor,
visible = props.visible,
children = props.children,
_props$closeMode = props.closeMode,
closeMode = _props$closeMode === void 0 ? ['mask', 'close'] : _props$closeMode,
className = props.className,
style = props.style,
onClose = props.onClose,
others = __rest(props, ["prefix", "closeIconType", "bgColor", "visible", "children", "closeMode", "className", "style", "onClose"]);
var clsPrefix = "".concat(prefix, "dialog-popup");
var containerStyle = style || {};
if (bgColor) {
containerStyle.backgroundColor = bgColor;
}
var handleClose = function handleClose(reason) {
if (isFunction(onClose) && Array.isArray(closeMode) && closeMode.indexOf(reason) > -1) {
onClose(reason);
}
};
return /*#__PURE__*/React.createElement(Modal, _extends({}, others, {
visible: visible,
containerClassName: clsPrefix,
onClose: handleClose
}), /*#__PURE__*/React.createElement(View, {
className: classNames(className, "".concat(clsPrefix, "-container")),
style: __rpx2vw__(containerStyle)
}, children), /*#__PURE__*/React.createElement(Icon, {
className: "".concat(clsPrefix, "-close"),
type: closeIconType,
size: "l",
onClick: function onClick() {
return handleClose('close');
}
}));
};
export default Popup;