UNPKG

2.57 kBJavaScriptView Raw
1"use strict";
2
3exports.__esModule = true;
4exports.default = void 0;
5
6var _classnames = _interopRequireDefault(require("classnames"));
7
8var _propTypes = _interopRequireDefault(require("prop-types"));
9
10var _react = _interopRequireDefault(require("react"));
11
12var _SlideDownTransition = _interopRequireDefault(require("./SlideDownTransition"));
13
14var _PropTypes = require("./PropTypes");
15
16const _excluded = ["className", "dropUp", "open", "role", "id", "transition", "children"];
17
18function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
20function _extends() { _extends = Object.assign || 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); }
21
22function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
23
24const StaticContainer = /*#__PURE__*/_react.default.memo(({
25 children
26}) => children, (_, {
27 shouldUpdate
28}) => !shouldUpdate);
29
30const defaultProps = {
31 open: false,
32 transition: _SlideDownTransition.default
33};
34const propTypes = {
35 open: _propTypes.default.bool,
36 dropUp: _propTypes.default.bool,
37 onEntering: _propTypes.default.func,
38 onEntered: _propTypes.default.func,
39 transition: _PropTypes.elementType,
40 role: _propTypes.default.string,
41 id: _propTypes.default.string
42};
43
44const Popup = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
45 let {
46 className,
47 dropUp,
48 open,
49 role,
50 id,
51 transition,
52 children
53 } = _ref,
54 props = _objectWithoutPropertiesLoose(_ref, _excluded);
55
56 const Transition = transition;
57 return /*#__PURE__*/_react.default.createElement(Transition, _extends({}, props, {
58 in: open,
59 dropUp: dropUp,
60 timeout: undefined
61 /**hack*/
62 ,
63 className: (0, _classnames.default)('rw-popup-container', className)
64 }), /*#__PURE__*/_react.default.createElement("div", {
65 id: id,
66 className: "rw-popup",
67 ref: ref,
68 role: role
69 }, /*#__PURE__*/_react.default.createElement(StaticContainer, {
70 shouldUpdate: open
71 }, children)));
72});
73
74Popup.displayName = 'Popup';
75Popup.propTypes = propTypes;
76Popup.defaultProps = defaultProps;
77var _default = Popup;
78exports.default = _default;
\No newline at end of file