Release/v3.7#116
Draft
eds2002 wants to merge 12 commits into
Draft
Conversation
✅ Deploy Preview for rnst-docs canceled.
|
Nested screen gestures could lose ownership while the top screen was closing. The child claim was ignored as soon as its dismissing flag flipped, which let an ancestor with the same horizontal gesture activate before the child route finished cleaning up. In the overlay example, a drag after dismissing C could be claimed by the outer overlay stack instead of B. Keep child direction claims authoritative until cleanup removes them, even while the child is dismissing. Register shadowing claims in a layout effect so ancestor claim maps update before the next paint, narrowing the window where a new top screen is visible but not yet blocking ancestors. Add a regression for the ancestor activation decision with a dismissing child claim.
Add an e2e stack example for keep, freeze, detach, and unmount inactive behavior policies. Each probe can push repeated copies of the same route and shows live mounted, created, render, tick, and retained payload metrics for memory profiling.
Owner
Author
|
Note to self, the expo glass cannot be seen on mobile devices only. For some reason it works on sims, so this branch should also include a fix for that 😬 |
Blocked screens used opacity: 0 before the first transition frame. On physical iOS devices that can break Liquid Glass sampling. Move blocked screens offscreen with a shared Y offset. Normalize blocked destination measurements before viewport guards and bounds writes. Add a measurement regression for the offset correction.
As of now, the zIndex approach does not seem to be reliable with layout constraints. Whilst it's not noticeable in same flatlist scenarios, the issues becomes obvious when theres outside flatlist content, e.g headers, other flatlist sections. To mitigate this, we'll switch over react-native-teleport which should be able to solve this issue for us.
Owner
Author
|
I GOTTA FIX MY AI DOC SLOP |
eds2002
commented
Jun 3, 2026
| * Controls whether blank-stack screens are rendered with react-native-screens. | ||
| * | ||
| * When enabled, inactive presentation state is backed by | ||
| * `ScreenContainer`/`Screen.activityState`. Set this to `false` to render |
Owner
Author
There was a problem hiding this comment.
What? Remove this entire 2nd paragraph
eds2002
commented
Jun 3, 2026
| * | ||
| * Leave this disabled for normal top-level app stacks. | ||
| */ | ||
| independent?: boolean; |
Owner
Author
There was a problem hiding this comment.
May deprecate in the future, you can just import independent navigation from react navigation and wrap it over blank stack. I guess convenience prop ?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Motivation
Blank stack currently has short lived lag spikes when routes close. This is usually hard to notice during normal navigation, but it becomes very visible when a user rapidly triggers navigation events.
This release also aims to provide a better way to handle native stack integration, which just avoids us forking react navigation.
Problem
Route reconciliation currently happens in React. That reconciliation work is heavier than it needs to be for close events, and it can cause avoidable render pressure during rapid stack updates.
This PR moves the close route management into a dedicated managed stack layer and lets the activity/native screen layer handle presentation state more directly.
Before & After