feat(RevenueCatUI): Tab selected-state (PWENG-65)#3664
Conversation
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## alvarobrey/pweng-57-resolver #3664 +/- ##
=============================================================
Coverage 80.49% 80.49%
=============================================================
Files 404 404
Lines 16771 16771
Branches 2397 2397
=============================================================
Hits 13500 13500
Misses 2327 2327
Partials 944 944 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
@cursor review |
d4e83d3 to
f712a7c
Compare
c7fa19c to
1d7720c
Compare
b3836e0 to
50f79b8
Compare
1c15d31 to
fd18a34
Compare
50f79b8 to
64862dc
Compare
fd18a34 to
abf2497
Compare
2073b6b to
3d2df28
Compare
abf2497 to
445a2cf
Compare
dda51db to
9a17073
Compare
445a2cf to
92cb005
Compare
9a17073 to
d77344e
Compare
92cb005 to
287498f
Compare
d77344e to
8f64ee7
Compare
447c5f0 to
13c315c
Compare
2019bef to
ef06a92
Compare
13c315c to
776f015
Compare
ef06a92 to
ebeb35c
Compare
776f015 to
3685a78
Compare
ebeb35c to
6bbbe94
Compare
3685a78 to
26892a7
Compare
5320435 to
71fe206
Compare
26892a7 to
196d178
Compare
71fe206 to
f464f20
Compare
196d178 to
4eab460
Compare
f464f20 to
8661e79
Compare
4eab460 to
0a3bab0
Compare
8661e79 to
120a967
Compare
19e96e5 to
7924dc1
Compare
072ff84 to
f6fdb83
Compare
7924dc1 to
68817b9
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit f6fdb83. Configure here.
…a hidden tab still publishes
…parity with iOS) Reverts the effect of e830f1e: a hidden Tabs component should not publish its selected tab id into the state store, matching the merged iOS reference implementation.
68817b9 to
e471070
Compare
f6fdb83 to
8be8aae
Compare


Wires tab selection into the store:
TabsComponent.stateUpdatesfires on selection, publishing the selected tab id as a$valuepayload. Hidden tabs still publish on first composition so sibling components aren't left on stale state. The 4 reader component states (Text, Image, Stack, Icon) passstateReader = stateStoreProvider()::currentValueOrDefaultintoConditionContext.End-to-end instrumentation tests for the read path (state condition drives a text swap) and write path (tab click publishes to store). Paywall-tester example (bottom text):
Screen_recording_20260629_125906.webm
Note
Medium Risk
Changes paywall override resolution and tab-driven state publishing across core component states; behavior is covered by new tests but affects dynamic paywall UI broadly.
Overview
Tab selection now drives shared paywall state so other components can react via
state_conditionoverrides.When a visible
TabsComponenthasstateUpdates,TabsComponentViewseeds and updates the store with the selected tab id (payload reference) on first composition and on every selection change; hidden tabs do not publish (iOS parity).TabsComponentStylecarriesstateUpdates, and each tab style entry now includes anid.Text, Image, Stack, and Icon component states pass
stateReader = stateStore::currentValueOrDefaultintoConditionContext, so overrides keyed on store values re-resolve when tabs (or anything else) updates state.The paywall-tester TabsWithButtons sample adds
selectedTabdeclarations, tabstateUpdates, and offer copy that swaps whenselectedTabequalstab-1. Compose instrumentation tests cover store-driven text overrides, tab-click publishing, and hidden-tabs behavior.Reviewed by Cursor Bugbot for commit 8be8aae. Bugbot is set up for automated code reviews on this repo. Configure here.