[Transition Tracing] Push Transition When Offscreen Becomes Visible (#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.
This commit is contained in:
Luna Ruan
2022-06-15 11:51:51 -07:00
committed by GitHub
parent 522f47345f
commit fcd720d363
2 changed files with 22 additions and 2 deletions
@@ -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;
@@ -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;