50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
|
|
import {
|
||
|
|
require_react
|
||
|
|
} from "./chunk-BXEBRY3I.js";
|
||
|
|
import {
|
||
|
|
__toESM
|
||
|
|
} from "./chunk-V4OQ3NZ2.js";
|
||
|
|
|
||
|
|
// node_modules/@radix-ui/react-compose-refs/dist/index.mjs
|
||
|
|
var React = __toESM(require_react(), 1);
|
||
|
|
function setRef(ref, value) {
|
||
|
|
if (typeof ref === "function") {
|
||
|
|
return ref(value);
|
||
|
|
} else if (ref !== null && ref !== void 0) {
|
||
|
|
ref.current = value;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function composeRefs(...refs) {
|
||
|
|
return (node) => {
|
||
|
|
let hasCleanup = false;
|
||
|
|
const cleanups = refs.map((ref) => {
|
||
|
|
const cleanup = setRef(ref, node);
|
||
|
|
if (!hasCleanup && typeof cleanup == "function") {
|
||
|
|
hasCleanup = true;
|
||
|
|
}
|
||
|
|
return cleanup;
|
||
|
|
});
|
||
|
|
if (hasCleanup) {
|
||
|
|
return () => {
|
||
|
|
for (let i = 0; i < cleanups.length; i++) {
|
||
|
|
const cleanup = cleanups[i];
|
||
|
|
if (typeof cleanup == "function") {
|
||
|
|
cleanup();
|
||
|
|
} else {
|
||
|
|
setRef(refs[i], null);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
};
|
||
|
|
}
|
||
|
|
};
|
||
|
|
}
|
||
|
|
function useComposedRefs(...refs) {
|
||
|
|
return React.useCallback(composeRefs(...refs), refs);
|
||
|
|
}
|
||
|
|
|
||
|
|
export {
|
||
|
|
composeRefs,
|
||
|
|
useComposedRefs
|
||
|
|
};
|
||
|
|
//# sourceMappingURL=chunk-OHANU4DK.js.map
|