UNPKG

rooks

Version:

Essential React custom hooks ⚓ to super charge your components!

40 lines (39 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useMergeRefs = void 0; var react_1 = require("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 */ function useMergeRefs() { var refs = []; for (var _i = 0; _i < arguments.length; _i++) { refs[_i] = arguments[_i]; } return (0, react_1.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]); } exports.useMergeRefs = useMergeRefs;