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

40 lines
1.2 KiB
JavaScript

import { arraysEqual } from './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.
*/
export 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 || !arraysEqual(local.refs, newRefs)) {
local.resolver = createResolver(local);
}
local.refs = newRefs;
return local.resolver;
};
};
//# sourceMappingURL=createMergedRef.js.map