UNPKG

1.83 kBJavaScriptView Raw
1import _extends from "@babel/runtime/helpers/esm/extends";
2import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3import React from 'react';
4import { findDOMNode } from 'react-dom';
5import classNames from 'classnames';
6import BaseOverlay from 'react-overlays/Overlay';
7import Fade from './Fade';
8var defaultProps = {
9 transition: Fade,
10 rootClose: false,
11 show: false,
12 placement: 'top'
13};
14
15function wrapRefs(props, arrowProps) {
16 var ref = props.ref;
17 var aRef = arrowProps.ref;
18
19 props.ref = ref.__wrapped || (ref.__wrapped = function (r) {
20 return ref(findDOMNode(r));
21 });
22
23 arrowProps.ref = aRef.__wrapped || (aRef.__wrapped = function (r) {
24 return aRef(findDOMNode(r));
25 });
26}
27
28function Overlay(_ref) {
29 var overlay = _ref.children,
30 transition = _ref.transition,
31 outerProps = _objectWithoutPropertiesLoose(_ref, ["children", "transition"]);
32
33 transition = transition === true ? Fade : transition || null;
34 return React.createElement(BaseOverlay, _extends({}, outerProps, {
35 transition: transition
36 }), function (_ref2) {
37 var overlayProps = _ref2.props,
38 arrowProps = _ref2.arrowProps,
39 show = _ref2.show,
40 props = _objectWithoutPropertiesLoose(_ref2, ["props", "arrowProps", "show"]);
41
42 wrapRefs(overlayProps, arrowProps);
43 if (typeof overlay === 'function') return overlay(_extends({}, props, {}, overlayProps, {
44 show: show,
45 arrowProps: arrowProps
46 }));
47 return React.cloneElement(overlay, _extends({}, props, {}, overlayProps, {
48 arrowProps: arrowProps,
49 className: classNames(overlay.props.className, !transition && show && 'show'),
50 style: _extends({}, overlay.props.style, {}, overlayProps.style)
51 }));
52 });
53}
54
55Overlay.defaultProps = defaultProps;
56export default Overlay;
\No newline at end of file