Skip to content

Commit e3eb168

Browse files
committed
suspense boundary deleted
1 parent b808483 commit e3eb168

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
@@ -2091,12 +2091,21 @@ function commitDeletionEffectsOnFiber(
20912091
if (enableTransitionTracing) {
20922092
// We need to mark this fiber's parents as deleted
20932093
const instance: OffscreenInstance = deletedFiber.stateNode;
2094-
const markers = instance.pendingMarkers;
2095-
if (markers !== null) {
2096-
markers.forEach(marker => {
2097-
if (marker.pendingBoundaries.has(instance)) {
2098-
marker.pendingBoundaries.delete(instance);
2099-
}
2094+
const transitions = instance.transitions;
2095+
if (transitions !== null) {
2096+
let name = null;
2097+
const parent = deletedFiber.return;
2098+
if (
2099+
parent !== null &&
2100+
parent.tag === SuspenseComponent &&
2101+
parent.memoizedProps.unstable_name
2102+
) {
2103+
name = parent.memoizedProps.unstable_name;
2104+
}
2105+
2106+
abortParentMarkerTransitions(deletedFiber, nearestMountedAncestor, {
2107+
reason: 'suspense',
2108+
name,
21002109
});
21012110
}
21022111
}

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,13 @@ function getFilteredDeletion(abort: TransitionAbort, endTime: number) {
168168
endTime,
169169
};
170170
}
171+
case 'suspense': {
172+
return {
173+
type: 'suspense',
174+
name: abort.name,
175+
endTime,
176+
};
177+
}
171178
default: {
172179
return null;
173180
}

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)