Overlay.js 877 B

1234567891011121314151617181920212223
  1. import { composeRef, getNodeRef, supportRef } from "rc-util/es/ref";
  2. import React, { forwardRef, useMemo } from 'react';
  3. var Overlay = /*#__PURE__*/forwardRef(function (props, ref) {
  4. var overlay = props.overlay,
  5. arrow = props.arrow,
  6. prefixCls = props.prefixCls;
  7. var overlayNode = useMemo(function () {
  8. var overlayElement;
  9. if (typeof overlay === 'function') {
  10. overlayElement = overlay();
  11. } else {
  12. overlayElement = overlay;
  13. }
  14. return overlayElement;
  15. }, [overlay]);
  16. var composedRef = composeRef(ref, getNodeRef(overlayNode));
  17. return /*#__PURE__*/React.createElement(React.Fragment, null, arrow && /*#__PURE__*/React.createElement("div", {
  18. className: "".concat(prefixCls, "-arrow")
  19. }), /*#__PURE__*/React.cloneElement(overlayNode, {
  20. ref: supportRef(overlayNode) ? composedRef : undefined
  21. }));
  22. });
  23. export default Overlay;