UNPKG

@uifabric/utilities

Version:

Fluent UI React utilities for building components.

39 lines 1.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var array_1 = require("./array"); /** * Set up a ref resolver function given internal state managed for the ref. * @param local Set */ var createResolver = function (local) { return function (newValue) { for (var _i = 0, _a = local.refs; _i < _a.length; _i++) { var ref = _a[_i]; if (typeof ref === 'function') { ref(newValue); } else if (ref) { // work around the immutability of the React.Ref type ref.current = newValue; } } }; }; /** * Helper to merge refs from within class components. */ exports.createMergedRef = function (value) { var local = { refs: [], }; return function () { var newRefs = []; for (var _i = 0; _i < arguments.length; _i++) { newRefs[_i] = arguments[_i]; } if (!local.resolver || !array_1.arraysEqual(local.refs, newRefs)) { local.resolver = createResolver(local); } local.refs = newRefs; return local.resolver; }; }; //# sourceMappingURL=createMergedRef.js.map