@navikt/ds-react
Version:
React components from the Norwegian Labour and Welfare Administration.
37 lines • 1.19 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.mergeRefs = mergeRefs;
exports.useMergeRefs = useMergeRefs;
/* https://github.com/radix-ui/primitives/blob/main/packages/react/compose-refs/src/composeRefs.tsx */
const react_1 = __importDefault(require("react"));
// https://github.com/gregberge/react-merge-refs
/**
* Use `useMergeRefs`
* @internal
*/
function mergeRefs(refs) {
return (instance) => {
refs.forEach((ref) => {
if (typeof ref === "function") {
ref(instance);
}
else if (ref !== null && ref !== undefined) {
ref.current = instance;
}
});
};
}
/**
* Merges refs within useCallback
* @internal
* @param ...refs: React.Ref<T> | undefined
* @returns React.useCallback(mergeRefs(refs), refs)
*/
function useMergeRefs(...refs) {
// eslint-disable-next-line react-hooks/exhaustive-deps
return react_1.default.useCallback(mergeRefs(refs), refs);
}
//# sourceMappingURL=useMergeRefs.js.map