UNPKG

@uiw/react-drawer

Version:

Drawer component

87 lines (86 loc) 4.41 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireWildcard(require("react")); var _reactOverlay = _interopRequireDefault(require("@uiw/react-overlay")); var _reactIcon = _interopRequireDefault(require("@uiw/react-icon")); var _reactButton = _interopRequireDefault(require("@uiw/react-button")); var _jsxRuntime = require("react/jsx-runtime"); var _excluded = ["prefixCls", "className", "style", "placement", "size", "title", "footer", "icon", "isCloseButtonShown", "bodyProps", "timeout", "isOpen", "maskClosable"]; var _default = exports["default"] = function _default() { var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _props$prefixCls = props.prefixCls, prefixCls = _props$prefixCls === void 0 ? 'w-drawer' : _props$prefixCls, className = props.className, style = props.style, _props$placement = props.placement, placement = _props$placement === void 0 ? 'right' : _props$placement, _props$size = props.size, size = _props$size === void 0 ? 260 : _props$size, title = props.title, footer = props.footer, icon = props.icon, _props$isCloseButtonS = props.isCloseButtonShown, isCloseButtonShown = _props$isCloseButtonS === void 0 ? true : _props$isCloseButtonS, bodyProps = props.bodyProps, _props$timeout = props.timeout, timeout = _props$timeout === void 0 ? 300 : _props$timeout, _props$isOpen = props.isOpen, isOpen = _props$isOpen === void 0 ? false : _props$isOpen, _props$maskClosable = props.maskClosable, maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable, overlayProps = (0, _objectWithoutProperties2["default"])(props, _excluded); var cls = [className, prefixCls, placement].filter(Boolean).join(' ').trim(); var bodyCls = [bodyProps ? bodyProps.className : null, prefixCls ? "".concat(prefixCls, "-body-inner") : null].filter(Boolean).join(' ').trim(); var styl = (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, style), {}, (0, _defineProperty2["default"])({}, /^(top|bottom)$/.test(placement) ? 'height' : 'width', size)); var footerView = (0, _react.useMemo)(function () { return footer ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: "".concat(prefixCls, "-footer"), children: footer }) : null; }, [footer]); var iconView = (0, _react.useMemo)(function () { return icon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIcon["default"], { type: icon }) : null; }, [icon]); var titleView = (0, _react.useMemo)(function () { return title ? /*#__PURE__*/(0, _jsxRuntime.jsx)("h4", { children: title }) : null; }, [title]); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactOverlay["default"], (0, _objectSpread3["default"])((0, _objectSpread3["default"])({ className: cls, timeout: timeout, isOpen: isOpen, maskClosable: maskClosable }, overlayProps), {}, { children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { className: "".concat(prefixCls, "-wrapper"), style: styl, children: [(title || icon) && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { className: "".concat(prefixCls, "-header"), children: [iconView, titleView, title && isCloseButtonShown && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactButton["default"], { basic: true, onClick: props.onClose, icon: "close", type: "light" })] }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: "".concat(prefixCls, "-body"), children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, bodyProps), {}, { className: bodyCls, children: props.children })) }), footerView] }) })); }; module.exports = exports.default;