amis-rpc-design/node_modules/@rc-component/trigger/lib/TriggerWrapper.js
2023-10-07 19:42:30 +08:00

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;