Files
2024-02-15 17:01:50 +00:00

17 lines
456 B
TypeScript

/**
* Combine refs to allow assignment to all passed refs
*/
export default function mergeRefs<T = any>(
refs: Array<React.MutableRefObject<T> | React.LegacyRef<T> | undefined>
): React.RefCallback<T> {
return value => {
refs.forEach(ref => {
if (typeof ref === 'function') {
ref(value);
} else if (ref !== null && ref !== undefined) {
(ref as React.MutableRefObject<T | null>).current = value;
}
});
};
}