Skip to content

[SET] SETBoundary - #9036

Closed
bartlomiejbloniarz wants to merge 2 commits into
gh/bartlomiejbloniarz/0/basefrom
gh/bartlomiejbloniarz/0/head
Closed

bartlomiejbloniarz wants to merge 2 commits into
gh/bartlomiejbloniarz/0/basefrom
gh/bartlomiejbloniarz/0/head

Conversation

@bartlomiejbloniarz

@bartlomiejbloniarz bartlomiejbloniarz commented Mar 2, 2026 •

Copy link
Copy Markdown
Member

Stack from ghstack (oldest at bottom):

##Summary:

This PR introduces a new concept for SETs, called SharedTransitionBoundary. It is supposed to replace the current approach where we use Screens from RNScreens to separate which shared elements should be displayed. With the new approach one can still wrap a screen to get the old behavior, but also new patterns are available, such as running a SharedTransition within one RNScreen.

Main pros of this solution:

  • easier to adapt to different navigators (this allows us to use the TabNavigator with no weird native changes)
  • more customization options for users
  • no native dependency on RNScreens

Cons:

  • the minimal manual setup that has to be done to enroll a RNScreen in running transitions
  • we have to guess the target boundary when doing a native back gesture on iOS. This should not be a big problem for the usual use-case

##Test Plan:

Screenless example

##Summary:

This PR introduces a new concept for SETs, called SharedTransitionBoundary. It is supposed to replace the current approach where we use Screens from RNScreens to separate which shared elements should be displayed. With the new approach one can still wrap a screen to get the old behavior, but also new patterns are available, such as running a SharedTransition within one RNScreen.

Main pros of this solution:
- easier to adapt to different navigators (this allows us to use the TabNavigator with no weird native changes)
- more customization options for users
- no native dependency on RNScreens

Cons:
- the minimal manual setup that has to be done to enroll a RNScreen in running transitions
- we have to guess the target boundary when doing a native back gesture on iOS. This should not be a big problem for the usual use-case

##Test Plan:

Screenless example

[ghstack-poisoned]
##Summary:

This PR introduces a new concept for SETs, called SharedTransitionBoundary. It is supposed to replace the current approach where we use Screens from RNScreens to separate which shared elements should be displayed. With the new approach one can still wrap a screen to get the old behavior, but also new patterns are available, such as running a SharedTransition within one RNScreen.

Main pros of this solution:
- easier to adapt to different navigators (this allows us to use the TabNavigator with no weird native changes)
- more customization options for users
- no native dependency on RNScreens

Cons:
- the minimal manual setup that has to be done to enroll a RNScreen in running transitions
- we have to guess the target boundary when doing a native back gesture on iOS. This should not be a big problem for the usual use-case

##Test Plan:

Screenless example

[ghstack-poisoned]
bartlomiejbloniarz added a commit that referenced this pull request Mar 11, 2026
##Summary:

This PR introduces a new concept for SETs, called SharedTransitionBoundary. It is supposed to replace the current approach where we use Screens from RNScreens to separate which shared elements should be displayed. With the new approach one can still wrap a screen to get the old behavior, but also new patterns are available, such as running a SharedTransition within one RNScreen.

Main pros of this solution:
- easier to adapt to different navigators (this allows us to use the TabNavigator with no weird native changes)
- more customization options for users
- no native dependency on RNScreens

Cons:
- the minimal manual setup that has to be done to enroll a RNScreen in running transitions
- we have to guess the target boundary when doing a native back gesture on iOS. This should not be a big problem for the usual use-case

##Test Plan:

Screenless example

ghstack-source-id: 0464881
Pull Request resolved: #9036
bartlomiejbloniarz added a commit that referenced this pull request Mar 19, 2026
This PR introduces a new concept for SETs, called SharedTransitionBoundary. It is supposed to replace the current approach where we use Screens from RNScreens to separate which shared elements should be displayed. With the new approach one can still wrap a screen to get the old behavior, but also new patterns are available, such as running a SharedTransition within one RNScreen.

Main pros of this solution:
- easier to adapt to different navigators (this allows us to use the TabNavigator with no weird native changes)
- more customization options for users
- no native dependency on RNScreens

Cons:
- the minimal manual setup that has to be done to enroll a RNScreen in running transitions
- we have to guess the target boundary when doing a native back gesture on iOS. This should not be a big problem for the usual use-case

Screenless example

ghstack-source-id: 0464881
Pull Request resolved: #9036
kasperski95 pushed a commit to kasperski95/react-native-reanimated that referenced this pull request May 18, 2026
This PR introduces a new concept for SETs, called SharedTransitionBoundary. It is supposed to replace the current approach where we use Screens from RNScreens to separate which shared elements should be displayed. With the new approach one can still wrap a screen to get the old behavior, but also new patterns are available, such as running a SharedTransition within one RNScreen.

Main pros of this solution:
- easier to adapt to different navigators (this allows us to use the TabNavigator with no weird native changes)
- more customization options for users
- no native dependency on RNScreens

Cons:
- the minimal manual setup that has to be done to enroll a RNScreen in running transitions
- we have to guess the target boundary when doing a native back gesture on iOS. This should not be a big problem for the usual use-case

Screenless example

ghstack-source-id: 0464881
Pull Request resolved: software-mansion#9036
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant