import React from 'react'; function setRef( ref: React.ForwardedRef | undefined, value: T | null, ): void { if (typeof ref === 'function') { ref(value); } else if (ref) { ref.current = value; } } /** * Returns a callback ref which sets its value to the provided refs. * Useful when you forward a ref but also need to access it inside a component. * * @example * const Component = React.forwardRef((props, ref) => { * const innerRef = useRef(null); * const combinedRef = useCombinedRef(ref, innerRef); * * return
Test
* }) */ export function useCombinedRef( refA: React.ForwardedRef | undefined, refB: React.ForwardedRef | undefined, ) { return React.useMemo(() => { if (!refA && !refB) { return null; } return (refValue => { setRef(refA, refValue); setRef(refB, refValue); }) as React.RefCallback; }, [refA, refB]); }