UNPKG

@hitachivantara/uikit-react-core

Version:
23 lines (22 loc) 657 B
import { useMemo } from "react"; //#region src/hooks/useForkRef.ts var setRef = (ref, value) => { if (typeof ref === "function") ref(value); else if (ref) ref.current = value; }; var 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 useMemo(() => { if (refA == null && refB == null) return null; return (refValue) => { setRef(refA, refValue); setRef(refB, refValue); }; }, [refA, refB]); }; //#endregion export { useForkRef };