TriggerWrapper.js 837 B

1234567891011121314151617181920
  1. import { fillRef, getNodeRef, supportRef, useComposeRef } from "rc-util/es/ref";
  2. import * as React from 'react';
  3. var TriggerWrapper = /*#__PURE__*/React.forwardRef(function (props, ref) {
  4. var children = props.children,
  5. getTriggerDOMNode = props.getTriggerDOMNode;
  6. var canUseRef = supportRef(children);
  7. // When use `getTriggerDOMNode`, we should do additional work to get the real dom
  8. var setRef = React.useCallback(function (node) {
  9. fillRef(ref, getTriggerDOMNode ? getTriggerDOMNode(node) : node);
  10. }, [getTriggerDOMNode]);
  11. var mergedRef = useComposeRef(setRef, getNodeRef(children));
  12. return canUseRef ? /*#__PURE__*/React.cloneElement(children, {
  13. ref: mergedRef
  14. }) : children;
  15. });
  16. if (process.env.NODE_ENV !== 'production') {
  17. TriggerWrapper.displayName = 'TriggerWrapper';
  18. }
  19. export default TriggerWrapper;