react-use
Version:
Collection of React Hooks
18 lines (17 loc) • 575 B
JavaScript
import { forwardRef, useEffect, useRef, } from 'react';
export default function useEnsuredForwardedRef(forwardedRef) {
var ensuredRef = useRef(forwardedRef && forwardedRef.current);
useEffect(function () {
if (!forwardedRef) {
return;
}
forwardedRef.current = ensuredRef.current;
}, [forwardedRef]);
return ensuredRef;
}
export function ensuredForwardRef(Component) {
return forwardRef(function (props, ref) {
var ensuredRef = useEnsuredForwardedRef(ref);
return Component(props, ensuredRef);
});
}