UNPKG

rooks

Version:

Essential React custom hooks ⚓ to super charge your components!

36 lines (35 loc) 940 B
import { useMemo } from "react"; function setRef(ref, value) { if (typeof ref === "function") { ref(value); } else if (ref !== null && ref !== undefined) { ref.current = value; } } /** * useMergeRefs * Merges multiple refs into a single function ref. * Takes any number of refs. * Refs can be mutable refs or function refs. * * @param refs * @see https://react-hooks.org/docs/useMergeRefs */ export function useMergeRefs() { var refs = []; for (var _i = 0; _i < arguments.length; _i++) { refs[_i] = arguments[_i]; } return useMemo(function () { if (refs.every(function (ref) { return ref === null; })) { return null; } return function (refValue) { for (var _i = 0, refs_1 = refs; _i < refs_1.length; _i++) { var ref = refs_1[_i]; setRef(ref, refValue); } }; }, [refs]); }