UEA-PRODEM

This commit is contained in:
2026-06-10 12:14:46 -03:00
parent f54126b9d8
commit 9947565694
5319 changed files with 148520 additions and 129332 deletions
+35 -2
View File
@@ -2,7 +2,6 @@
// src/presence.tsx
import * as React2 from "react";
import { useComposedRefs } from "@radix-ui/react-compose-refs";
import { useLayoutEffect } from "@radix-ui/react-use-layout-effect";
// src/use-state-machine.tsx
@@ -19,7 +18,7 @@ var Presence = (props) => {
const { present, children } = props;
const presence = usePresence(present);
const child = typeof children === "function" ? children({ present: presence.isPresent }) : React2.Children.only(children);
const ref = useComposedRefs(presence.ref, getElementRef(child));
const ref = useStableComposedRefs(presence.ref, getElementRef(child));
const forceMount = typeof children === "function";
return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;
};
@@ -115,6 +114,40 @@ function usePresence(present) {
}, [])
};
}
function setRef(ref, value) {
if (typeof ref === "function") {
return ref(value);
} else if (ref !== null && ref !== void 0) {
ref.current = value;
}
}
function useStableComposedRefs(...refs) {
const refsRef = React2.useRef(refs);
refsRef.current = refs;
return React2.useCallback((node) => {
const currentRefs = refsRef.current;
let hasCleanup = false;
const cleanups = currentRefs.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(currentRefs[i], null);
}
}
};
}
}, []);
}
function getAnimationName(styles) {
return styles?.animationName || "none";
}