Skip to content

Commit

Permalink
[Transition Tracing] Push Transition When Offscreen Becomes Visible (#…
Browse files Browse the repository at this point in the history
…24718)

This PR pushes all of a suspense boundary's transitions onto the transition stack when it goes from hidden to visible so we can pass it to any child suspense boundaries or tracing markers.
  • Loading branch information
lunaruan authored Jun 15, 2022
1 parent 522f473 commit fcd720d
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 2 deletions.
12 changes: 11 additions & 1 deletion packages/react-reconciler/src/ReactFiberBeginWork.new.js
Original file line number Diff line number Diff line change
Expand Up @@ -779,7 +779,17 @@ function updateOffscreenComponent(
prevCachePool = prevState.cachePool;
}

pushTransition(workInProgress, prevCachePool, null);
let transitions = null;
if (
workInProgress.memoizedState !== null &&
workInProgress.memoizedState.transitions !== null
) {
// We have now gone from hidden to visible, so any transitions should
// be added to the stack to get added to any Offscreen/suspense children
transitions = workInProgress.memoizedState.transitions;
}

pushTransition(workInProgress, prevCachePool, transitions);

// Since we're not hidden anymore, reset the state
workInProgress.memoizedState = null;
Expand Down
12 changes: 11 additions & 1 deletion packages/react-reconciler/src/ReactFiberBeginWork.old.js
Original file line number Diff line number Diff line change
Expand Up @@ -779,7 +779,17 @@ function updateOffscreenComponent(
prevCachePool = prevState.cachePool;
}

pushTransition(workInProgress, prevCachePool, null);
let transitions = null;
if (
workInProgress.memoizedState !== null &&
workInProgress.memoizedState.transitions !== null
) {
// We have now gone from hidden to visible, so any transitions should
// be added to the stack to get added to any Offscreen/suspense children
transitions = workInProgress.memoizedState.transitions;
}

pushTransition(workInProgress, prevCachePool, transitions);

// Since we're not hidden anymore, reset the state
workInProgress.memoizedState = null;
Expand Down

0 comments on commit fcd720d

Please sign in to comment.