@material-ui/core
Version:
React components that implement Google's Material Design.
19 lines (18 loc) • 570 B
JavaScript
import * as React from 'react';
import setRef from './setRef';
export default function useForkRef(refA, refB) {
/**
* This will create a new function if the ref props change and are defined.
* This means react will call the old forkRef with `null` and the new forkRef
* with the ref. Cleanup naturally emerges from this behavior
*/
return React.useMemo(function () {
if (refA == null && refB == null) {
return null;
}
return function (refValue) {
setRef(refA, refValue);
setRef(refB, refValue);
};
}, [refA, refB]);
}