@vtex/styleguide
Version:
> VTEX Styleguide React components ([Docs](https://vtex.github.io/styleguide))
47 lines (37 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require("react");
var mergeRefs = function mergeRefs() {
for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
refs[_key] = arguments[_key];
}
return function (node) {
refs.forEach(function (ref) {
if (ref == null) {
return;
}
if (typeof ref === 'function') {
ref(node);
return;
} // The typescript definition for a ref
// object types the `current` property
// as read-only, but we can safely write
// to it.
// eslint-disable-next-line @typescript-eslint/no-explicit-any
;
ref.current = node;
});
};
};
var useMergeRefs = function useMergeRefs() {
for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
refs[_key2] = arguments[_key2];
}
return (0, _react.useMemo)(function () {
return mergeRefs.apply(void 0, refs);
}, // eslint-disable-next-line react-hooks/exhaustive-deps
refs);
};
exports.default = useMergeRefs;