Skip to content

Commit 273e94d

Browse files
committed
[DevTools] Measure when reconnecting Suspense
1 parent dd2acf4 commit 273e94d

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

packages/react-devtools-shared/src/__tests__/store-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3391,7 +3391,7 @@ describe('Store', () => {
33913391
<Component key="inner-content">
33923392
[suspense-root] rects={[{x:1,y:2,width:15,height:1}, {x:1,y:2,width:14,height:1}]}
33933393
<Suspense name="outer" rects={[{x:1,y:2,width:15,height:1}, {x:1,y:2,width:14,height:1}]}>
3394-
<Suspense name="inner" rects={[{x:1,y:2,width:13,height:1}]}>
3394+
<Suspense name="inner" rects={[{x:1,y:2,width:14,height:1}]}>
33953395
`);
33963396
});
33973397
});

packages/react-devtools-shared/src/backend/fiber/renderer.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2586,6 +2586,17 @@ export function attach(
25862586
}
25872587
}
25882588
} else {
2589+
const suspenseNode = fiberInstance.suspenseNode;
2590+
if (suspenseNode !== null && fiber.memoizedState === null) {
2591+
// We're reconnecting an unsuspended Suspense. Measure to see if anything changed.
2592+
const prevRects = suspenseNode.rects;
2593+
const nextRects = measureInstance(fiberInstance);
2594+
if (!areEqualRects(prevRects, nextRects)) {
2595+
suspenseNode.rects = nextRects;
2596+
recordSuspenseResize(suspenseNode);
2597+
}
2598+
}
2599+
25892600
const {key} = fiber;
25902601
const displayName = getDisplayNameForFiber(fiber);
25912602
const elementType = getElementTypeForFiber(fiber);

0 commit comments

Comments
 (0)