From 29d719b848f647406487c34a0ea609ff31b2bf40 Mon Sep 17 00:00:00 2001 From: lauri865 Date: Tue, 21 Jan 2025 11:27:45 +0100 Subject: [PATCH 1/2] cleanup observer in react 18 --- .../features/virtualization/useGridVirtualScroller.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/x-data-grid/src/hooks/features/virtualization/useGridVirtualScroller.tsx b/packages/x-data-grid/src/hooks/features/virtualization/useGridVirtualScroller.tsx index 29fda99ba17a7..b3ff760430476 100644 --- a/packages/x-data-grid/src/hooks/features/virtualization/useGridVirtualScroller.tsx +++ b/packages/x-data-grid/src/hooks/features/virtualization/useGridVirtualScroller.tsx @@ -127,10 +127,17 @@ export const useGridVirtualScroller = () => { const previousSize = React.useRef<{ width: number; height: number }>(null); + const observerRef = React.useRef(null); const mainRefCallback = React.useCallback( (node: HTMLDivElement | null) => { mainRef.current = node; + // Cleanup for React 18 that calls the ref callback with null when unmounting + if (observerRef.current) { + observerRef.current.disconnect(); + observerRef.current = null; + } + if (!node) { return undefined; } @@ -167,12 +174,14 @@ export const useGridVirtualScroller = () => { lastSize = newSize; }); + observerRef.current = observer; observer.observe(node); if (reactMajor >= 19) { return () => { mainRef.current = null; observer.disconnect(); + observerRef.current = null; }; } return undefined; From 153fee8949a28fabf8d6c78eb40c5703dc6b5f43 Mon Sep 17 00:00:00 2001 From: Rom Grk Date: Wed, 22 Jan 2025 17:18:37 -0500 Subject: [PATCH 2/2] ci: run (empty commit)