Reset CoreDataManager in the background and optimize logout #14154
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes: #14153
Description
This PR addresses some optimizations for logout:
CoreDataManager
also triggers a notification for the reset, which causes the existing result controllers to fetch data again. We have places in the dashboard where we refresh data upon storage reset. To avoid refreshing data in the unauthenticated state, a few checks have also been added for orders, Blaze, and dashboard cards.DefaultStoresManager
to resetsessionManager
before updating the state indeauthenticate
. This is to avoid an unexpected state where the user is unauthenticated but still has a default store. In [Crash] Attempt to fix crash with magic link login #11373, theAppCoordinator
would deauthenticate the app again in this state, triggering an unnecessary reset forCardPresentPaymentAction
again.Steps to reproduce
Testing information
Tested on simulator iPhone 16 Pro iOS 18.0 and confirmed that logout and login work as expected. The app functions normally after logging in again.
Screenshots
N/A
RELEASE-NOTES.txt
if necessary.TODO: @itsmeichigo to update the release notes before merging.
Reviewer (or Author, in the case of optional code reviews):
Please make sure these conditions are met before approving the PR, or request changes if the PR needs improvement: