TriggerWrapper.js 1.1 KB

123456789101112131415161718192021222324252627
  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = void 0;
  7. var _ref = require("rc-util/lib/ref");
  8. var React = _interopRequireWildcard(require("react"));
  9. var TriggerWrapper = /*#__PURE__*/React.forwardRef(function (props, ref) {
  10. var children = props.children,
  11. getTriggerDOMNode = props.getTriggerDOMNode;
  12. var canUseRef = (0, _ref.supportRef)(children);
  13. // When use `getTriggerDOMNode`, we should do additional work to get the real dom
  14. var setRef = React.useCallback(function (node) {
  15. (0, _ref.fillRef)(ref, getTriggerDOMNode ? getTriggerDOMNode(node) : node);
  16. }, [getTriggerDOMNode]);
  17. var mergedRef = (0, _ref.useComposeRef)(setRef, (0, _ref.getNodeRef)(children));
  18. return canUseRef ? /*#__PURE__*/React.cloneElement(children, {
  19. ref: mergedRef
  20. }) : children;
  21. });
  22. if (process.env.NODE_ENV !== 'production') {
  23. TriggerWrapper.displayName = 'TriggerWrapper';
  24. }
  25. var _default = exports.default = TriggerWrapper;