Skip invalidation of FabricUIManager on instance destroy #44122
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.
Summary:
On Twilight app, we destroy the ReactInstanceManager in 2 different places: on login and on logout. The reason we decided to destroy ReactInstanceManager on login and logout is because we needed to reset the module parameters for our network requests so we could make them with the correct user identity when the user logs in and revoke the ability to make these requests when user logs out (see D37537716).
However, the call to FabricUIManager.invalidate() is problematic as it fails to properly clean up the surfaces on Twilight, causing the app to crash. Instead of destroying it, because the app is 95% ReactNative is defaulted to using the FabricUIManager by statically setting ReactFeatureFlags.enableFabricRenderer = true. This way, we still perform the clean up of the modules and re-create them on auth change, but we avoid the app crashing when it tries to destroy the UI manager.
Changelog: [Internal]
Differential Revision: D56208758