Skip to content

fix workflow page transitions#6877

Merged
facumenzella merged 5 commits into
mainfrom
codex/codex-20260601-180245
Jun 2, 2026
Merged

fix workflow page transitions#6877
facumenzella merged 5 commits into
mainfrom
codex/codex-20260601-180245

Conversation

@facumenzella

@facumenzella facumenzella commented Jun 1, 2026

Copy link
Copy Markdown
Member

Summary

  • Improve Paywalls V2 workflow page transitions
  • Keeps workflow backgrounds stable (they were animating pretty weirdly) vertical safe areas during transitions without allowing horizontal safe-area expansion to escape the clipped page bounds.

header animations are still not great, working on a refactor

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.

WorkflowPageTransitionContext now exposes isTransitioning, propagated from WorkflowPaywallView. While a slide runs, TransitionModifier shows paywall component content immediately (no delayed entrance animations), and BackgroundStyleModifier only ignores vertical safe areas so backgrounds stay stable without horizontal bleed past clipped page bounds.

WorkflowPaywallView refactors transition timing: a short frame delay before withAnimation, per-page frame + clip mask, and WorkflowAnimationCompletionModifier to finish when rendered progress reaches 1 instead of a fixed asyncAfter—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.

@facumenzella facumenzella changed the title [codex] Polish workflow page transitions Polish workflow page transitions Jun 1, 2026
@facumenzella facumenzella changed the title Polish workflow page transitions fix workflow page transitions Jun 1, 2026
@emerge-tools

emerge-tools Bot commented Jun 1, 2026

Copy link
Copy Markdown

4 builds increased size

Name Version Download Change Install Change Approval
RevenueCat
com.revenuecat.PaywallsTester
1.0 (1) 18.3 MB ⬆️ 31.9 kB (0.17%) 66.0 MB ⬆️ 140.6 kB (0.21%) N/A
BinarySizeTest
com.revenuecat.binary-size-test.local-source
1.0 (1) 4.2 MB ⬆️ 7.4 kB (0.18%) 12.6 MB ⬆️ 23.0 kB (0.18%) N/A
BinarySizeTest
com.revenuecat.binary-size-test.cocoapods
1.0 (1) 6.3 MB ⬆️ 12.5 kB (0.2%) 27.9 MB ⬆️ 60.5 kB (0.22%) ⏳ Needs approval
BinarySizeTest
com.revenuecat.binary-size-test.spm
1.0 (1) 4.3 MB ⬆️ 7.8 kB (0.18%) 11.0 MB ⬆️ 14.5 kB (0.13%) N/A

RevenueCat 1.0 (1)
com.revenuecat.PaywallsTester

⚖️ Compare build
⏱️ Analyze build performance

Total install size change: ⬆️ 140.6 kB (0.21%)
Total download size change: ⬆️ 31.9 kB (0.17%)

Largest size changes

Item Install Size Change
DYLD.String Table ⬆️ 40.2 kB
Code Signature ⬆️ 3.4 kB
DYLD.Fixups ⬆️ 568 B
Other ⬆️ 96.4 kB
View Treemap

Image of diff

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
View Treemap

Image of diff

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
View Treemap

Image of diff

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
View Treemap

Image of diff


🛸 Powered by Emerge Tools

Comment trigger: Size diff threshold of 100.00kB exceeded

@facumenzella facumenzella marked this pull request as ready for review June 2, 2026 07:13
@facumenzella facumenzella requested review from a team as code owners June 2, 2026 07:13

@MonikaMateska MonikaMateska left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks all good! Thanks for the implementation Facu!

@facumenzella facumenzella merged commit 3a0f95e into main Jun 2, 2026
17 of 20 checks passed
@facumenzella facumenzella deleted the codex/codex-20260601-180245 branch June 2, 2026 12:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants