mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-03-10 10:33:11 +03:00
- Patch @radix-ui/react-compose-refs@1.1.2: stabilize useComposedRefs to prevent infinite render loops from unstable ref callbacks https://github.com/radix-ui/primitives/issues/3799 - Patch @radix-ui/react-slot@1.2.4: use useComposedRefs hook in SlotClone instead of inline composeRefs to prevent re-render cycles https://github.com/radix-ui/primitives/pull/3804 - Patch react-use-websocket@4.8.1: remove flushSync wrappers that cause "Maximum update depth exceeded" with React 19 auto-batching https://github.com/facebook/react/issues/27613 - Add npm overrides to ensure single hoisted copies of compose-refs and react-slot across all Radix packages - Add postinstall script for patch-package - Remove leftover react-transition-group dependency
76 lines
2.3 KiB
Diff
76 lines
2.3 KiB
Diff
diff --git a/node_modules/@radix-ui/react-compose-refs/dist/index.js b/node_modules/@radix-ui/react-compose-refs/dist/index.js
|
|
index 5ba7a95..65aa7be 100644
|
|
--- a/node_modules/@radix-ui/react-compose-refs/dist/index.js
|
|
+++ b/node_modules/@radix-ui/react-compose-refs/dist/index.js
|
|
@@ -69,6 +69,31 @@ function composeRefs(...refs) {
|
|
};
|
|
}
|
|
function useComposedRefs(...refs) {
|
|
- return React.useCallback(composeRefs(...refs), refs);
|
|
+ const refsRef = React.useRef(refs);
|
|
+ React.useLayoutEffect(() => {
|
|
+ refsRef.current = refs;
|
|
+ });
|
|
+ return React.useCallback((node) => {
|
|
+ let hasCleanup = false;
|
|
+ const cleanups = refsRef.current.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(refsRef.current[i], null);
|
|
+ }
|
|
+ }
|
|
+ };
|
|
+ }
|
|
+ }, []);
|
|
}
|
|
//# sourceMappingURL=index.js.map
|
|
diff --git a/node_modules/@radix-ui/react-compose-refs/dist/index.mjs b/node_modules/@radix-ui/react-compose-refs/dist/index.mjs
|
|
index 7dd9172..d1b53a5 100644
|
|
--- a/node_modules/@radix-ui/react-compose-refs/dist/index.mjs
|
|
+++ b/node_modules/@radix-ui/react-compose-refs/dist/index.mjs
|
|
@@ -32,7 +32,32 @@ function composeRefs(...refs) {
|
|
};
|
|
}
|
|
function useComposedRefs(...refs) {
|
|
- return React.useCallback(composeRefs(...refs), refs);
|
|
+ const refsRef = React.useRef(refs);
|
|
+ React.useLayoutEffect(() => {
|
|
+ refsRef.current = refs;
|
|
+ });
|
|
+ return React.useCallback((node) => {
|
|
+ let hasCleanup = false;
|
|
+ const cleanups = refsRef.current.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(refsRef.current[i], null);
|
|
+ }
|
|
+ }
|
|
+ };
|
|
+ }
|
|
+ }, []);
|
|
}
|
|
export {
|
|
composeRefs,
|