Skip to content

Commit 128d2b1

Browse files
committed
suspense boundary deleted
1 parent eb54476 commit 128d2b1

File tree

4 files changed

+440
-12
lines changed

4 files changed

+440
-12
lines changed

packages/react-reconciler/src/ReactFiberCommitWork.new.js

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2100,12 +2100,21 @@ function commitDeletionEffectsOnFiber(
21002100
if (enableTransitionTracing) {
21012101
// We need to mark this fiber's parents as deleted
21022102
const instance: OffscreenInstance = deletedFiber.stateNode;
2103-
const markers = instance.pendingMarkers;
2104-
if (markers !== null) {
2105-
markers.forEach(marker => {
2106-
if (marker.pendingBoundaries.has(instance)) {
2107-
marker.pendingBoundaries.delete(instance);
2108-
}
2103+
const transitions = instance.transitions;
2104+
if (transitions !== null) {
2105+
let name = null;
2106+
const parent = deletedFiber.return;
2107+
if (
2108+
parent !== null &&
2109+
parent.tag === SuspenseComponent &&
2110+
parent.memoizedProps.unstable_name
2111+
) {
2112+
name = parent.memoizedProps.unstable_name;
2113+
}
2114+
2115+
abortParentMarkerTransitions(deletedFiber, nearestMountedAncestor, {
2116+
reason: 'suspense',
2117+
name,
21092118
});
21102119
}
21112120
}

packages/react-reconciler/src/ReactFiberTracingMarkerComponent.new.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,13 @@ function getFilteredDeletion(abort: TransitionAbort, endTime: number) {
173173
endTime,
174174
};
175175
}
176+
case 'suspense': {
177+
return {
178+
type: 'suspense',
179+
name: abort.name,
180+
endTime,
181+
};
182+
}
176183
default: {
177184
return null;
178185
}

packages/react-reconciler/src/ReactInternalTypes.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ export type TransitionTracingCallbacks = {
291291
startTime: number,
292292
deletions: Array<{
293293
type: string,
294-
name?: string,
294+
name?: string | null,
295295
endTime: number,
296296
}>,
297297
) => void,
@@ -313,7 +313,7 @@ export type TransitionTracingCallbacks = {
313313
startTime: number,
314314
deletions: Array<{
315315
type: string,
316-
name?: string,
316+
name?: string | null,
317317
endTime: number,
318318
}>,
319319
) => void,

0 commit comments

Comments
 (0)