UNPKG

3.02 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
5var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
7exports.__esModule = true;
8exports.default = void 0;
9
10var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
12var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
13
14var _react = _interopRequireWildcard(require("react"));
15
16var _reactDom = require("react-dom");
17
18var _classnames = _interopRequireDefault(require("classnames"));
19
20var _Overlay = _interopRequireDefault(require("react-overlays/Overlay"));
21
22var _Fade = _interopRequireDefault(require("./Fade"));
23
24var defaultProps = {
25 transition: _Fade.default,
26 rootClose: false,
27 show: false,
28 placement: 'top'
29};
30
31function wrapRefs(props, arrowProps) {
32 var ref = props.ref;
33 var aRef = arrowProps.ref;
34
35 props.ref = ref.__wrapped || (ref.__wrapped = function (r) {
36 return ref((0, _reactDom.findDOMNode)(r));
37 });
38
39 arrowProps.ref = aRef.__wrapped || (aRef.__wrapped = function (r) {
40 return aRef((0, _reactDom.findDOMNode)(r));
41 });
42}
43
44function Overlay(_ref) {
45 var overlay = _ref.children,
46 transition = _ref.transition,
47 outerProps = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["children", "transition"]);
48 var popperRef = (0, _react.useRef)({});
49 transition = transition === true ? _Fade.default : transition || null;
50 return _react.default.createElement(_Overlay.default, (0, _extends2.default)({}, outerProps, {
51 transition: transition
52 }), function (_ref2) {
53 var overlayProps = _ref2.props,
54 arrowProps = _ref2.arrowProps,
55 show = _ref2.show,
56 state = _ref2.state,
57 scheduleUpdate = _ref2.scheduleUpdate,
58 placement = _ref2.placement,
59 outOfBoundaries = _ref2.outOfBoundaries,
60 props = (0, _objectWithoutPropertiesLoose2.default)(_ref2, ["props", "arrowProps", "show", "state", "scheduleUpdate", "placement", "outOfBoundaries"]);
61 wrapRefs(overlayProps, arrowProps);
62 var popper = Object.assign(popperRef.current, {
63 state: state,
64 scheduleUpdate: scheduleUpdate,
65 placement: placement,
66 outOfBoundaries: outOfBoundaries
67 });
68 if (typeof overlay === 'function') return overlay((0, _extends2.default)({}, props, {}, overlayProps, {
69 placement: placement,
70 show: show,
71 popper: popper,
72 arrowProps: arrowProps
73 }));
74 return _react.default.cloneElement(overlay, (0, _extends2.default)({}, props, {}, overlayProps, {
75 placement: placement,
76 arrowProps: arrowProps,
77 popper: popper,
78 className: (0, _classnames.default)(overlay.props.className, !transition && show && 'show'),
79 style: (0, _extends2.default)({}, overlay.props.style, {}, overlayProps.style)
80 }));
81 });
82}
83
84Overlay.defaultProps = defaultProps;
85var _default = Overlay;
86exports.default = _default;
87module.exports = exports["default"];
\No newline at end of file