Merge restoreEnterViewTransitions and restoreExitViewTransitions (#32585)
This is the exact same code in both cases. It's just general clean up. By unifying them it becomes less confusing to reuse these helpers in the Apply Gesture path where the naming is reversed.
Sebastian Markbåge committed
Mar 14, 2025 at 13:16 UTC
1b6e3dd985c0cfaa4f15fae6fda26f7b57bd25da
2 files changed
+13
-31
packages/react-reconciler/src/ReactFiberCommitViewTransitions.js
+9
-26
@@ -514,37 +514,20 @@ function restorePairedViewTransitions(parent: Fiber): void {
514
}
515
}
516
517
-export function restoreEnterViewTransitions(placement: Fiber): void {
518
- if (placement.tag === ViewTransitionComponent) {
519
- const instance: ViewTransitionState = placement.stateNode;
520
- instance.paired = null;
521
- restoreViewTransitionOnHostInstances(placement.child, false);
522
- restorePairedViewTransitions(placement);
523
- } else if ((placement.subtreeFlags & ViewTransitionStatic) !== NoFlags) {
524
- let child = placement.child;
525
- while (child !== null) {
526
- restoreEnterViewTransitions(child);
527
- child = child.sibling;
528
- }
529
- } else {
530
- restorePairedViewTransitions(placement);
531
- }
532
-}
533
-
534
-export function restoreExitViewTransitions(deletion: Fiber): void {
535
- if (deletion.tag === ViewTransitionComponent) {
536
- const instance: ViewTransitionState = deletion.stateNode;
517
+export function restoreEnterOrExitViewTransitions(fiber: Fiber): void {
518
+ if (fiber.tag === ViewTransitionComponent) {
519
+ const instance: ViewTransitionState = fiber.stateNode;
520
instance.paired = null;
538
- restoreViewTransitionOnHostInstances(deletion.child, false);
539
- restorePairedViewTransitions(deletion);
540
- } else if ((deletion.subtreeFlags & ViewTransitionStatic) !== NoFlags) {
541
- let child = deletion.child;
521
+ restoreViewTransitionOnHostInstances(fiber.child, false);
522
+ restorePairedViewTransitions(fiber);
523
+ } else if ((fiber.subtreeFlags & ViewTransitionStatic) !== NoFlags) {
524
+ let child = fiber.child;
525
while (child !== null) {
543
- restoreExitViewTransitions(child);
526
+ restoreEnterOrExitViewTransitions(child);
527
child = child.sibling;
528
}
529
} else {
547
- restorePairedViewTransitions(deletion);
530
+ restorePairedViewTransitions(fiber);
531
}
532
}
533
packages/react-reconciler/src/ReactFiberCommitWork.js
+4
-5
@@ -246,8 +246,7 @@ import {
246
commitExitViewTransitions,
247
commitBeforeUpdateViewTransition,
248
commitNestedViewTransitions,
249
- restoreEnterViewTransitions,
250
- restoreExitViewTransitions,
249
+ restoreEnterOrExitViewTransitions,
250
restoreUpdateViewTransition,
251
restoreNestedViewTransitions,
252
measureUpdateViewTransition,
@@ -3228,7 +3227,7 @@ function commitPassiveMountOnFiber(
3227
// This was a new mount. This means we could've triggered an enter animation on
3228
// the content. Restore the view transitions if there were any assigned in the
3229
// snapshot phase.
3231
- restoreEnterViewTransitions(finishedWork);
3230
+ restoreEnterOrExitViewTransitions(finishedWork);
3231
}
3232
3233
// When updating this function, also update reconnectPassiveEffects, which does
@@ -3529,7 +3528,7 @@ function commitPassiveMountOnFiber(
3528
// Content is now hidden but wasn't before. This means we could've
3529
// triggered an exit animation on the content. Restore the view
3530
// transitions if there were any assigned in the snapshot phase.
3532
- restoreExitViewTransitions(current);
3531
+ restoreEnterOrExitViewTransitions(current);
3532
}
3533
if (instance._visibility & OffscreenPassiveEffectsConnected) {
3534
// The effects are currently connected. Update them.
@@ -3576,7 +3575,7 @@ function commitPassiveMountOnFiber(
3575
// Content is now visible but wasn't before. This means we could've
3576
// triggered an enter animation on the content. Restore the view
3577
// transitions if there were any assigned in the snapshot phase.
3579
- restoreEnterViewTransitions(finishedWork);
3578
+ restoreEnterOrExitViewTransitions(finishedWork);
3579
}
3580
if (instance._visibility & OffscreenPassiveEffectsConnected) {
3581
// The effects are currently connected. Update them.