Files
med-notes/.pnpm-store/v10/files/4b/1f0a3ec3948ec820b5ebf21a5f326cbeb24ed6beba5d4ef7adcccd056a4bbcde9f5ec9c98544497c6cbbf53591d3cec9c30cfef7dd94e5e7b7bdf5b8890cb7
2025-05-09 05:30:08 +02:00

37 lines
1.0 KiB
Plaintext

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* A function that merges React refs into one.
* Supports both functions and ref objects created using createRef() and useRef().
*
* Usage:
* ```tsx
* <div ref={mergeRefs(ref1, ref2, ref3)} />
* ```
*
* @param {(React.Ref<T> | undefined)[]} inputRefs Array of refs
* @returns {React.Ref<T> | React.RefCallback<T>} Merged refs
*/
function mergeRefs() {
var inputRefs = [];
for (var _i = 0; _i < arguments.length; _i++) {
inputRefs[_i] = arguments[_i];
}
var filteredInputRefs = inputRefs.filter(Boolean);
if (filteredInputRefs.length <= 1) {
var firstRef = filteredInputRefs[0];
return firstRef || null;
}
return function mergedRefs(ref) {
filteredInputRefs.forEach(function (inputRef) {
if (typeof inputRef === 'function') {
inputRef(ref);
}
else if (inputRef) {
inputRef.current = ref;
}
});
};
}
exports.default = mergeRefs;