@navikt/ds-react
Version:
React components from the Norwegian Labour and Welfare Administration.
30 lines • 885 B
JavaScript
/* https://github.com/radix-ui/primitives/blob/main/packages/react/compose-refs/src/composeRefs.tsx */
import React from "react";
// https://github.com/gregberge/react-merge-refs
/**
* Use `useMergeRefs`
* @internal
*/
export 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)
*/
export function useMergeRefs(...refs) {
// eslint-disable-next-line react-hooks/exhaustive-deps
return React.useCallback(mergeRefs(refs), refs);
}
//# sourceMappingURL=useMergeRefs.js.map