@jannie-shao/components-antd4
Version:
95 lines (94 loc) • 4.85 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
require("antd/es/drawer/style");
var _drawer = _interopRequireDefault(require("antd/es/drawer"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _icons = require("@ant-design/icons");
var _utils = require("../utils");
var _config = require("../style/config");
var _excluded = ["container", "children", "placement", "title", "beforePop", "afterClose", "zIndex", "getContainer"];
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var prefix = _config.rootPrefix + "-drawer";
var DrawerOver = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
var container = _ref.container,
children = _ref.children,
placement = _ref.placement,
title = _ref.title,
beforePop = _ref.beforePop,
afterClose = _ref.afterClose,
zIndex = _ref.zIndex,
getContainer = _ref.getContainer,
moreProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
var _useState = (0, _react.useState)(false),
visible = _useState[0],
setVisible = _useState[1];
var _useState2 = (0, _react.useState)(false),
showContainer = _useState2[0],
setShowContainer = _useState2[1];
var handleShow = function handleShow() {
setShowContainer(true);
(0, _utils.callFun)(function () {
return beforePop();
}, function () {
return setVisible(true);
});
};
var handleClose = function handleClose() {
setVisible(false);
afterClose();
};
(0, _react.useImperativeHandle)(ref, function () {
return {
handleShow: handleShow,
handleClose: handleClose,
handleShowContainer: function handleShowContainer() {
return setShowContainer(true);
}
};
});
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, (0, _utils.cloneElement)(children, {
onClick: handleShow
}), /*#__PURE__*/_react["default"].createElement(_drawer["default"], (0, _extends2["default"])({}, moreProps, {
className: prefix + " " + (moreProps.className || ''),
getContainer: getContainer,
width: "100%",
zIndex: zIndex,
push: false,
closable: false,
placement: placement,
open: visible,
title: /*#__PURE__*/_react["default"].createElement("div", {
className: prefix + "-top-bar"
}, /*#__PURE__*/_react["default"].createElement("a", {
onClick: handleClose
}, /*#__PURE__*/_react["default"].createElement(_icons.LeftOutlined, null), "Return"), title)
}), showContainer && (0, _utils.cloneElement)(container)));
});
DrawerOver.propTypes = {
container: _propTypes["default"].node,
children: _propTypes["default"].node,
placement: _propTypes["default"].string,
title: _propTypes["default"].string,
beforePop: _propTypes["default"].func,
afterClose: _propTypes["default"].func,
zIndex: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]),
getContainer: _propTypes["default"].any
};
DrawerOver.defaultProps = {
container: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null),
children: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null),
placement: 'right',
title: '',
beforePop: function beforePop() {},
afterClose: function afterClose() {},
zIndex: 9,
getContainer: false
};
var _default = DrawerOver;
exports["default"] = _default;