Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

Overlay.js 2.8 KiB

há 3 anos
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
  3. import React, { useRef } from 'react';
  4. import classNames from 'classnames';
  5. import BaseOverlay from 'react-overlays/Overlay';
  6. import safeFindDOMNode from 'react-overlays/safeFindDOMNode';
  7. import usePopperMarginModifiers from './usePopperMarginModifiers';
  8. import Fade from './Fade';
  9. var defaultProps = {
  10. transition: Fade,
  11. rootClose: false,
  12. show: false,
  13. placement: 'top'
  14. };
  15. function wrapRefs(props, arrowProps) {
  16. var ref = props.ref;
  17. var aRef = arrowProps.ref;
  18. props.ref = ref.__wrapped || (ref.__wrapped = function (r) {
  19. return ref(safeFindDOMNode(r));
  20. });
  21. arrowProps.ref = aRef.__wrapped || (aRef.__wrapped = function (r) {
  22. return aRef(safeFindDOMNode(r));
  23. });
  24. }
  25. function Overlay(_ref) {
  26. var overlay = _ref.children,
  27. transition = _ref.transition,
  28. _ref$popperConfig = _ref.popperConfig,
  29. popperConfig = _ref$popperConfig === void 0 ? {} : _ref$popperConfig,
  30. outerProps = _objectWithoutPropertiesLoose(_ref, ["children", "transition", "popperConfig"]);
  31. var popperRef = useRef({});
  32. var _usePopperMarginModif = usePopperMarginModifiers(),
  33. ref = _usePopperMarginModif[0],
  34. marginModifiers = _usePopperMarginModif[1];
  35. transition = transition === true ? Fade : transition || null;
  36. return /*#__PURE__*/React.createElement(BaseOverlay, _extends({}, outerProps, {
  37. ref: ref,
  38. popperConfig: _extends({}, popperConfig, {
  39. modifiers: marginModifiers.concat(popperConfig.modifiers || [])
  40. }),
  41. transition: transition
  42. }), function (_ref2) {
  43. var overlayProps = _ref2.props,
  44. arrowProps = _ref2.arrowProps,
  45. show = _ref2.show,
  46. state = _ref2.state,
  47. scheduleUpdate = _ref2.scheduleUpdate,
  48. placement = _ref2.placement,
  49. outOfBoundaries = _ref2.outOfBoundaries,
  50. props = _objectWithoutPropertiesLoose(_ref2, ["props", "arrowProps", "show", "state", "scheduleUpdate", "placement", "outOfBoundaries"]);
  51. wrapRefs(overlayProps, arrowProps);
  52. var popper = Object.assign(popperRef.current, {
  53. state: state,
  54. scheduleUpdate: scheduleUpdate,
  55. placement: placement,
  56. outOfBoundaries: outOfBoundaries
  57. });
  58. if (typeof overlay === 'function') return overlay(_extends({}, props, {}, overlayProps, {
  59. placement: placement,
  60. show: show,
  61. popper: popper,
  62. arrowProps: arrowProps
  63. }));
  64. return React.cloneElement(overlay, _extends({}, props, {}, overlayProps, {
  65. placement: placement,
  66. arrowProps: arrowProps,
  67. popper: popper,
  68. className: classNames(overlay.props.className, !transition && show && 'show'),
  69. style: _extends({}, overlay.props.style, {}, overlayProps.style)
  70. }));
  71. });
  72. }
  73. Overlay.defaultProps = defaultProps;
  74. export default Overlay;