Files
starface-outlook-sync-addin/node_modules/@fluentui/utilities/lib-commonjs/createMergedRef.js
T
Stefan Hacker 37ad745546 first commit
2026-04-03 09:38:48 +02:00

44 lines
1.3 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createMergedRef = void 0;
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
// eslint-disable-next-line @typescript-eslint/no-deprecated
ref.current = newValue;
}
}
};
};
/**
* Helper to merge refs from within class components.
*/
var 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 || !(0, array_1.arraysEqual)(local.refs, newRefs)) {
local.resolver = createResolver(local);
}
local.refs = newRefs;
return local.resolver;
};
};
exports.createMergedRef = createMergedRef;
//# sourceMappingURL=createMergedRef.js.map