amis-rpc-design/node_modules/antd/lib/drawer/DrawerPanel.js

70 lines
2.4 KiB
JavaScript
Raw Normal View History

2023-10-07 19:42:30 +08:00
"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.default = void 0;
var _classnames = _interopRequireDefault(require("classnames"));
var React = _interopRequireWildcard(require("react"));
var _useClosable = _interopRequireDefault(require("../_util/hooks/useClosable"));
const DrawerPanel = props => {
const {
prefixCls,
title,
footer,
extra,
closeIcon,
closable,
onClose,
headerStyle,
drawerStyle,
bodyStyle,
footerStyle,
children
} = props;
const customCloseIconRender = React.useCallback(icon => /*#__PURE__*/React.createElement("button", {
type: "button",
onClick: onClose,
"aria-label": "Close",
className: `${prefixCls}-close`
}, icon), [onClose]);
const [mergedClosable, mergedCloseIcon] = (0, _useClosable.default)(closable, closeIcon, customCloseIconRender, undefined, true);
const headerNode = React.useMemo(() => {
if (!title && !mergedClosable) {
return null;
}
return /*#__PURE__*/React.createElement("div", {
style: headerStyle,
className: (0, _classnames.default)(`${prefixCls}-header`, {
[`${prefixCls}-header-close-only`]: mergedClosable && !title && !extra
})
}, /*#__PURE__*/React.createElement("div", {
className: `${prefixCls}-header-title`
}, mergedCloseIcon, title && /*#__PURE__*/React.createElement("div", {
className: `${prefixCls}-title`
}, title)), extra && /*#__PURE__*/React.createElement("div", {
className: `${prefixCls}-extra`
}, extra));
}, [mergedClosable, mergedCloseIcon, extra, headerStyle, prefixCls, title]);
const footerNode = React.useMemo(() => {
if (!footer) {
return null;
}
const footerClassName = `${prefixCls}-footer`;
return /*#__PURE__*/React.createElement("div", {
className: footerClassName,
style: footerStyle
}, footer);
}, [footer, footerStyle, prefixCls]);
return /*#__PURE__*/React.createElement("div", {
className: `${prefixCls}-wrapper-body`,
style: drawerStyle
}, headerNode, /*#__PURE__*/React.createElement("div", {
className: `${prefixCls}-body`,
style: bodyStyle
}, children), footerNode);
};
var _default = exports.default = DrawerPanel;