import type * as React from 'react'; /** * A function that merges React refs into one. * Supports both functions and ref objects created using createRef() and useRef(). * * Usage: * ```tsx *
* ``` * * @param {(React.Ref | undefined)[]} inputRefs Array of refs * @returns {React.Ref | React.RefCallback} Merged refs */ export default function mergeRefs( ...inputRefs: (React.Ref | undefined)[] ): React.Ref | React.RefCallback { const filteredInputRefs = inputRefs.filter(Boolean); if (filteredInputRefs.length <= 1) { const firstRef = filteredInputRefs[0]; return firstRef || null; } return function mergedRefs(ref) { filteredInputRefs.forEach((inputRef) => { if (typeof inputRef === 'function') { inputRef(ref); } else if (inputRef) { (inputRef as React.MutableRefObject).current = ref; } }); }; }