@etsoo/react
Version:
TypeScript ReactJs UI Independent Framework
30 lines (29 loc) • 739 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useCombinedRefs = useCombinedRefs;
/**
* Combined refs
* @param refs Refs
* @returns Callback
*/
function useCombinedRefs(...refs) {
return (target) => {
// Ignore null reference
if (target == null)
return;
// Update all refs
refs.forEach((ref) => {
// Null ref
if (!ref)
return;
// Callback function
if (typeof ref === "function") {
ref(target);
}
else {
// as any to update readonly property
Reflect.set(ref, "current", target);
}
});
};
}