antd
Version:
An enterprise-class UI design language and React components implementation
67 lines (66 loc) • 2.2 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = DrawerPanel;
var React = _interopRequireWildcard(require("react"));
var _CloseOutlined = _interopRequireDefault(require("@ant-design/icons/CloseOutlined"));
var _classnames = _interopRequireDefault(require("classnames"));
function DrawerPanel(props) {
const {
prefixCls,
title,
footer,
extra,
closable = true,
closeIcon = /*#__PURE__*/React.createElement(_CloseOutlined.default, null),
onClose,
headerStyle,
drawerStyle,
bodyStyle,
footerStyle,
children
} = props;
const closeIconNode = closable && /*#__PURE__*/React.createElement("button", {
type: "button",
onClick: onClose,
"aria-label": "Close",
className: `${prefixCls}-close`
}, closeIcon);
function renderHeader() {
if (!title && !closable) {
return null;
}
return /*#__PURE__*/React.createElement("div", {
className: (0, _classnames.default)(`${prefixCls}-header`, {
[`${prefixCls}-header-close-only`]: closable && !title && !extra
}),
style: headerStyle
}, /*#__PURE__*/React.createElement("div", {
className: `${prefixCls}-header-title`
}, closeIconNode, title && /*#__PURE__*/React.createElement("div", {
className: `${prefixCls}-title`
}, title)), extra && /*#__PURE__*/React.createElement("div", {
className: `${prefixCls}-extra`
}, extra));
}
function renderFooter() {
if (!footer) {
return null;
}
const footerClassName = `${prefixCls}-footer`;
return /*#__PURE__*/React.createElement("div", {
className: footerClassName,
style: footerStyle
}, footer);
}
return /*#__PURE__*/React.createElement("div", {
className: `${prefixCls}-wrapper-body`,
style: Object.assign({}, drawerStyle)
}, renderHeader(), /*#__PURE__*/React.createElement("div", {
className: `${prefixCls}-body`,
style: bodyStyle
}, children), renderFooter());
}
;