28 lines
1.0 KiB
JavaScript
28 lines
1.0 KiB
JavaScript
|
"use strict";
|
||
|
|
||
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = void 0;
|
||
|
var _ref = require("rc-util/lib/ref");
|
||
|
var React = _interopRequireWildcard(require("react"));
|
||
|
var TriggerWrapper = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
||
|
var children = props.children,
|
||
|
getTriggerDOMNode = props.getTriggerDOMNode;
|
||
|
var canUseRef = (0, _ref.supportRef)(children);
|
||
|
|
||
|
// When use `getTriggerDOMNode`, we should do additional work to get the real dom
|
||
|
var setRef = React.useCallback(function (node) {
|
||
|
(0, _ref.fillRef)(ref, getTriggerDOMNode ? getTriggerDOMNode(node) : node);
|
||
|
}, [getTriggerDOMNode]);
|
||
|
var mergedRef = (0, _ref.useComposeRef)(setRef, children.ref);
|
||
|
return canUseRef ? /*#__PURE__*/React.cloneElement(children, {
|
||
|
ref: mergedRef
|
||
|
}) : children;
|
||
|
});
|
||
|
if (process.env.NODE_ENV !== 'production') {
|
||
|
TriggerWrapper.displayName = 'TriggerWrapper';
|
||
|
}
|
||
|
var _default = TriggerWrapper;
|
||
|
exports.default = _default;
|