Fixes CustomerCenter state not refreshing when reopening#2202
Conversation
📸 Snapshot Test12 modified, 233 unchanged
🛸 Powered by Emerge Tools |
| } | ||
|
|
||
| LaunchedEffect(Unit) { | ||
| viewModel.loadCustomerCenter() |
There was a problem hiding this comment.
I see that loadCustomerCenter does not cancel previous calls, or at least doesn't seem to.
Is it worth checking something like ... ?
override suspend fun loadCustomerCenter() {
if (_state.value is CustomerCenterState.Loading) {. <--- early exit if its already loading
return
}
if (_state.value !is CustomerCenterState.Loading) {
_state.value = CustomerCenterState.Loading
}
try {
val customerCenterConfigData = purchases.awaitCustomerCenterConfigData()
val purchaseInformation = loadPurchaseInformation(dateFormatter, locale)
_state.value = CustomerCenterState.Success(
customerCenterConfigData,
purchaseInformation,
supportedPathsForManagementScreen = customerCenterConfigData.getManagementScreen()?.let {
supportedPaths(purchaseInformation, it)
},
)
} catch (e: PurchasesException) {
_state.value = CustomerCenterState.Error(e.error)
}
}There was a problem hiding this comment.
hmmm that's a good point. Actually we shouldn't be loading the initial state here. Let me rethink it
There was a problem hiding this comment.
What about a refreshIfNeeded kind of thing?
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #2202 +/- ##
=======================================
Coverage 80.54% 80.54%
=======================================
Files 277 277
Lines 9456 9456
Branches 1334 1334
=======================================
Hits 7616 7616
Misses 1280 1280
Partials 560 560 ☔ View full report in Codecov by Sentry. |
|
I found the root cause. It was a regression from #2171 |
|
I would love to add a test for this, but will do in a separate PR, it might be tricky |
|
Added a test |
…r-config-not-refreshed
**This is an automatic release.** ## RevenueCat SDK ### ✨ New Features * Add `hasPaywall` property to `Offering` (#2212) via Antonio Pallares (@ajpallares) ### 🐞 Bugfixes * Fix empty options in NoActive subscriptions screen (#2168) via Cesar de la Vega (@vegaro) ## RevenueCatUI SDK ### Customer Center #### ✨ New Features * Create `CustomerCenterListener` (#2199) via Cesar de la Vega (@vegaro) #### 🐞 Bugfixes * Reload Customer Center after a successful restore (#2203) via Cesar de la Vega (@vegaro) * Fixes CustomerCenter state not refreshing when reopening (#2202) via Cesar de la Vega (@vegaro) ### 🔄 Other Changes * Improves PaywallsTester multi-API-key support (#2218) via JayShortway (@JayShortway) * [EXTERNAL] Bump Emerge Gradle Plugin and Snaphsots version (#2211) via @runningcode (#2217) via JayShortway (@JayShortway) * [AUTOMATIC][Paywalls V2] Updates Compose previews of all templates (#2207) via RevenueCat Git Bot (@RCGitBot) * [Paywalls V2] Enables template previews again (#2215) via JayShortway (@JayShortway) * Adds support for switching between 2 API keys to PaywallsTester (#2213) via JayShortway (@JayShortway) * Adds a `LocalPreviewImageLoader` `CompositionLocal`. (#2201) via JayShortway (@JayShortway) * Logs from RevenueCatUI are now tagged with `[Purchases]` too. (#2206) via JayShortway (@JayShortway) * [Paywalls V2] Ignores template previews for now. (#2209) via JayShortway (@JayShortway) * [Paywalls V2] Some more template previews optimizations (#2208) via JayShortway (@JayShortway) * chore: Delete key from customer center survey event (#2204) via Facundo Menzella (@facumenzella) * [Paywalls V2] Extract ImageLoader to use a single one (#2146) via Toni Rico (@tonidero) * [Paywalls V2] Adds progress indicator to buttons (#2198) via JayShortway (@JayShortway) * Avoids triggering "unscheduled" workflows when triggering workflows via the CircleCI API (#2200) via JayShortway (@JayShortway) * [Paywalls V2] Adds a note on publishing to the missing paywall error. (#2193) via JayShortway (@JayShortway) * Adds X-Kotlin-Version header. (#2197) via JayShortway (@JayShortway) * [Paywalls V2] Adds docs on ignored arguments for Paywalls V2 in more places. (#2195) via JayShortway (@JayShortway) * chore: Add backend integration test for events (#2189) via Facundo Menzella (@facumenzella) * [Paywalls V2] Adds CI job to update template previews (#2192) via JayShortway (@JayShortway) --------- Co-authored-by: revenuecat-ops <ops@revenuecat.com> Co-authored-by: Cesar de la Vega <cesarvegaro@gmail.com> Co-authored-by: Toni Rico <antonio.rico.diez@revenuecat.com>
We noticed that the customer center wasn't reloading when reopening it, only after switching to another tab in the Paywalls Tester.
I moved the
loadCustomerCentertoLaunchedEffectnext to when we track the impression to fix it