fix workflow page transitions#6877
Conversation
4 builds increased size
RevenueCat 1.0 (1)
|
| Item | Install Size Change |
|---|---|
| DYLD.String Table | ⬆️ 40.2 kB |
| Code Signature | ⬆️ 3.4 kB |
| DYLD.Fixups | ⬆️ 568 B |
| Other | ⬆️ 96.4 kB |
BinarySizeTest 1.0 (1)
com.revenuecat.binary-size-test.local-source
⚖️ Compare build
📦 Install build
⏱️ Analyze build performance
Total install size change: ⬆️ 23.0 kB (0.18%)
Total download size change: ⬆️ 7.4 kB (0.18%)
Largest size changes
| Item | Install Size Change |
|---|---|
| DYLD.String Table | ⬆️ 7.5 kB |
| 🗑 RevenueCatUI.View.apply(backgroundStyle,colorScheme,alignment,siz... | ⬇️ -5.6 kB |
| 📝 RevenueCatUI.View.apply(backgroundStyle,colorScheme,alignment,ign... | ⬆️ 5.5 kB |
| RevenueCatUI.WorkflowPaywallView.body | ⬆️ 2.3 kB |
| 📝 RevenueCatUI.View.ignoresSafeAreaIfNeeded(edges) | ⬆️ 1.9 kB |
BinarySizeTest 1.0 (1)
com.revenuecat.binary-size-test.cocoapods
⚖️ Compare build
📦 Install build
⏱️ Analyze build performance
Total install size change: ⬆️ 60.5 kB (0.22%)
Total download size change: ⬆️ 12.5 kB (0.2%)
Largest size changes
| Item | Install Size Change |
|---|---|
| DYLD.String Table | ⬆️ 38.0 kB |
| 🗑 RevenueCatUI.View.apply(backgroundStyle,colorScheme,alignment,siz... | ⬇️ -5.6 kB |
| 📝 RevenueCatUI.View.apply(backgroundStyle,colorScheme,alignment,ign... | ⬆️ 5.5 kB |
| RevenueCatUI.WorkflowPaywallView.body | ⬆️ 2.3 kB |
| 📝 RevenueCatUI.View.ignoresSafeAreaIfNeeded(edges) | ⬆️ 1.8 kB |
BinarySizeTest 1.0 (1)
com.revenuecat.binary-size-test.spm
⚖️ Compare build
📦 Install build
⏱️ Analyze build performance
Total install size change: ⬆️ 14.5 kB (0.13%)
Total download size change: ⬆️ 7.8 kB (0.18%)
Largest size changes
| Item | Install Size Change |
|---|---|
| 🗑 RevenueCatUI.View.apply(backgroundStyle,colorScheme,alignment,siz... | ⬇️ -5.6 kB |
| 📝 RevenueCatUI.View.apply(backgroundStyle,colorScheme,alignment,ign... | ⬆️ 5.5 kB |
| RevenueCatUI.WorkflowPaywallView.body | ⬆️ 2.3 kB |
| 📝 RevenueCatUI.View.ignoresSafeAreaIfNeeded(edges) | ⬆️ 1.9 kB |
| 📝 RevenueCatUI.WorkflowAnimationCompletionModifier.value witness | ⬆️ 1.4 kB |
🛸 Powered by Emerge Tools
Comment trigger: Size diff threshold of 100.00kB exceeded
MonikaMateska
left a comment
There was a problem hiding this comment.
Looks all good! Thanks for the implementation Facu!




Summary
Root Cause
Workflow pages are animated as preserved page snapshots, but child components could still run their own delayed transitions while the workflow slide was in progress. Background safe-area handling also needed to stay vertically stable during slides while avoiding horizontal bleed from pages that are offset and clipped.
Linear
WEB-4339: https://linear.app/revenuecat/issue/WEB-4339/page-transition-glitches-on-second-screen
Simulator.Screen.Recording.-.iPhone.17.Pro.-.2026-06-01.at.23.10.40.mov
Note
Medium Risk
Touches core Paywalls V2 workflow rendering and animation timing; behavior is localized to workflow transitions but affects all multi-step workflow navigation UX.
Overview
Fixes Paywalls V2 workflow page slide glitches by coordinating page-level motion with child views and tightening how transitions start and end.
WorkflowPageTransitionContextnow exposesisTransitioning, propagated fromWorkflowPaywallView. While a slide runs,TransitionModifiershows paywall component content immediately (no delayed entrance animations), andBackgroundStyleModifieronly ignores vertical safe areas so backgrounds stay stable without horizontal bleed past clipped page bounds.WorkflowPaywallViewrefactors transition timing: a short frame delay beforewithAnimation, per-page frame + clip mask, andWorkflowAnimationCompletionModifierto finish when rendered progress reaches 1 instead of a fixedasyncAfter—reducing flashes and early teardown of the outgoing page.Reviewed by Cursor Bugbot for commit 776564e. Bugbot is set up for automated code reviews on this repo. Configure here.