UNPKG

@braineet/ui

Version:

Braineet design system

31 lines 818 B
import * as React from 'react'; var assignRef = function assignRef(ref, value) { if (ref == null) return; if (typeof ref === 'function') { ref(value); return; } try { // eslint-disable-next-line no-param-reassign ref.current = value; } catch (error) { throw new Error("Cannot assign value '" + value + "' to ref '" + ref + "'"); } }; export var useMergeRefs = function useMergeRefs() { for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) { refs[_key] = arguments[_key]; } return React.useMemo(function () { if (refs.every(function (ref) { return ref == null; })) { return null; } return function (node) { refs.forEach(function (ref) { if (ref) assignRef(ref, node); }); }; }, refs); };