-
-
Notifications
You must be signed in to change notification settings - Fork 514
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: add onGestureCancel event #1810
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code looks fine. I see that Android Fabric CI build has passed.
🟢 from me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🚀
Could you change the name of the PR also? It is not only for internal usage at the end cc @piaskowyk 😅 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚀
## Summary This pull request introduces a new progress-based shared element transition animation that utilizes the progress value from `react-native-screens`. This value indicates the progress of the screen's transition. ## Changes 1. Now it is possible to use two different types of animation: - standard animation (uses `withTiming` etc.) - progress-based animation (uses transition progress from `react-native-screens`). This is the default type of animation for `SET`, but a user can change the default type. 2. It is possible to define custom standard and progress-based animations. ## Implementation The new implementation is based on event listeners. Events come from `rn-screens`. I added a new event to handle swipe back cancel on iOS - PR here - software-mansion/react-native-screens#1810 The approach assumes that exists one `onTransitionProgress` listener that computes all progress animations and updates all shared views. ## Animation Flow ### Scenario 1: Scenario assumption: The application consists of two screens - `ScreenA` and `ScreenB`, each having a shared element. When the user navigates from `ScreenA` to `ScreenB`, the following steps occur: #### Part 1: JS, JS Thread 1. Creation of the JS component on the JS thread. 2. The `createAnimatedComponent` method is called within which the `SharedTransition.registerTransition()` method is invoked. The `SharedTransition.registerTransition()` method performs the following tasks: * Sends information about the view and animation to the native side (`LayoutAnimationManager.cpp`). * Adds information about the transition progress to `ProgressTransitionManager`. * Registers a listener for the `transitionProgress` event. #### Part 2*: iOS, Native side, UI Thread 1. After mounting `ScreenB`, the `swizzled_viewDidLayoutSubviews` method is invoked, which is a swizzled version of the RNScreen's `viewDidLayoutSubviews` method. * This method is important because it ensures that all views on `ScreenB` have the correct layout, allowing for the creation of snapshots with accurate component styles. What is important, the screen header is attached too! 2. The `swizzled_viewDidLayoutSubviews` method calls the `LayoutAnimationManager.startAnimationForTag` method, which is a JS method that exists on the UI Thread. #### Part 2*: Android, Native side, UI Thread 1. After mounting `ScreenB`, the `SharedTransitionManager.screenDidLayout()` method is invoked. We don't need swizzling technique here like it was on iOS. We can detect when the screen is ready and all components have the proper layout in the `ReanimatedNativeHierarchyManager.updateLayout` method. 2. The `screenDidLayout` method calls the `startAnimationForTag` method, which is a JS method that exists on the UI Thread. #### Part 3: JS, UI Thread 1. The `LayoutAnimationManager[.cpp].startAnimationForTag` method, which is equivalent to `LayoutAnimationsManager[.js].start()`, is called. 2. The `start()` method invokes the `ProgressTransitionManager.onTransitionStart()` method responsible for saving snapshots with target style values. 4. At this point, everything is ready to react for the `RNScreen`'s `transitionProgress` event. #### Part 4: JS, Event Listener, UI Thread 1. Whenever the `transitionProgress` event occurs, the `ProgressTransitionManager.frame()` method is executed. 2. The `frame()` method computes the current styles for each registered shared view and applies those styles using the `_notifyAboutProgress` method. 3. Upon the occurrence of the screen's `onAppear` or `onDisappear` event, the `ProgressTransitionManager.onTransitionEnd()` method is called. This method invokes the native `_notifyAboutEnd` method responsible for cleaning and reparenting views after the shared transition. ### Scenario 2: Assumption: When the user navigates back from `ScreenB` to `ScreenA`, the flow is similar to Scenario 1, with the only difference in Part 2. #### Part 2*: iOS 1. Before removing `ScreenB`, the `swizzled_notifyWillDisappear` method is called, which is a swizzled version of the `RNScreen`'s `notifyWillDisappear` method. This method is invoked always before the screen removal from the top of the stack. Fact that screen is removed from the stack doesn’t mean that this screen is removed from React/Native tree too. It is applicable in three different iOS navigation scenarios: * Calling `navigation.navigate()` invokes `notifyWillDisappear`, pops the screen from the stack, removes it from the React tree, starts the transition, and finally after transition end, removes the screen from the native tree. * Using the header's "go back" button invokes `notifyWillDisappear`, pops the screen from the stack and starts the transition. After transition end removes the screen from the React tree and native tree after. * Interactive swiping back invokes `notifyWillDisappear`, and based on user actions, cancels the swipe and performs no action or completes the swipe to remove the screen. Then, the screen is popped from the stack, removed from the React tree, and finally removed from the native tree. #### Part 2*: Android 1. On removing `ScreenB`, the `SharedTransitionManager[.java].onViewsRemoval()` method is called, followed by starting the transition for the views on this screen. Unlike iOS, Android does not have interactive swiping. The "go back" button in the header works the same like calling `navigation.navigate()`, allowing for a simpler method to determine when to initiate a transition. ### Good to know: * _How is this change coupled with screens implementation and why?_ The change involves registering for the `transitionProgress` event of the screen and then computing and applying new styles to the shared views within the event callback. * _What_ is the role of `ProgressTransitionManager`?_ The `ProgressTransitionManager` is an object that exists on the UI Runtime. Its role is to store snapshots, view tags, and progress callbacks for shared views participating in the current transition. The manager also contains a `frame()` function that is used as an event callback for the `transitionProgress` event. During this event, the `ProgressTransitionManager` iterates over the stored view tags, computes new styles for each of them, and applies these styles to the views using the `_notifyAboutProgress` method. * Clearing configuration from `LayoutAnimationManager.cpp`: The configuration is cleared in two specific cases: 1. After the transition is finished (`finishSharedAnimation`). 2. After the removal of a screen or stack (`onScreenRemoval`). ## Current shared transition configuration API ```js const transition = SharedTransition .duration(3000) .animation((values) => { 'worklet'; return { width: withSpring(values.targetWidth), height: withSpring(values.targetHeight), originX: withSpring(values.targetOriginX), originY: withSpring(values.targetOriginY), }; }) .progressAnimation((values, progress) => { 'worklet'; return { width: progress * (values.targetWidth - values.currentWidth) + values.currentWidth, height: progress * (values.targetHeight - values.currentHeight) + values.currentHeight, originX: progress * (values.targetOriginX - values.currentOriginX) + values.currentOriginX, originY: progress * (values.targetOriginY - values.currentOriginY) + values.currentOriginY, }; }) .defaultTransitionType(SharedTransitionType.ANIMATION); ``` This PR is based on #4278 but I simplified the native part of the code responsible for worklet callback registration: Previous: <img width="145" alt="image" src="https://user-images.githubusercontent.com/36106620/236154156-6e0fb429-4b2b-4be1-b304-ee690157cc1f.png">
<!-- Thanks for submitting a pull request! We appreciate you spending the time to work on these changes. Please follow the template so that the reviewers can easily understand what the code changes affect. --> ## Summary Since software-mansion/react-native-screens#1810 got merged and included in `3.23.0` release we can use the npm published pack again. ## Test plan Yes
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [react-native-screens](https://github.com/software-mansion/react-native-screens) | [`^3.18.2` -> `^3.25.0`](https://renovatebot.com/diffs/npm/react-native-screens/3.18.2/3.25.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-native-screens/3.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-native-screens/3.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-native-screens/3.18.2/3.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-native-screens/3.18.2/3.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>software-mansion/react-native-screens (react-native-screens)</summary> ### [`v3.25.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.25.0) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.24.0...3.25.0) #### What's Changed Minor release focused on bug fixes & internals. #### 🐛 Bug fixes - iOS: Add missing call to super method in `RNSScreenView#finalizeUpdates` by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1855](https://github.com/software-mansion/react-native-screens/pull/1855) - Android: Shorten alpha animation to 83ms on default enter-out by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1835](https://github.com/software-mansion/react-native-screens/pull/1835) - iOS: Wrong title in back button menu for screens w/ hidden header by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1866](https://github.com/software-mansion/react-native-screens/pull/1866) - iOS: Full window overlay cannot receive tap when modal is full screen by [@​intergalacticspacehighway](https://github.com/intergalacticspacehighway) in [https://github.com/software-mansion/react-native-screens/pull/1872](https://github.com/software-mansion/react-native-screens/pull/1872) #### 🔢 Miscellaneous - Reinstall deps & pods in example apps after release by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1862](https://github.com/software-mansion/react-native-screens/pull/1862) - Fix typo in docs on `sheetCornerRadius` by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1863](https://github.com/software-mansion/react-native-screens/pull/1863) - Use `PlatformColor` instead of plain `string` for color related props by [@​retyui](https://github.com/retyui) in [https://github.com/software-mansion/react-native-screens/pull/1846](https://github.com/software-mansion/react-native-screens/pull/1846) - Android: Migrate `replaceSystemWindowInsets` to `Builder.setSystemWindowInsets` by [@​kirillzyusko](https://github.com/kirillzyusko) in [https://github.com/software-mansion/react-native-screens/pull/1868](https://github.com/software-mansion/react-native-screens/pull/1868) #### New Contributors - [@​intergalacticspacehighway](https://github.com/intergalacticspacehighway) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1872](https://github.com/software-mansion/react-native-screens/pull/1872) - [@​retyui](https://github.com/retyui) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1846](https://github.com/software-mansion/react-native-screens/pull/1846) **Full Changelog**: software-mansion/react-native-screens@3.24.0...3.25.0 ### [`v3.24.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.24.0) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.23.0...3.24.0) Minor release focused on fixing build issues reported in [#​1859](https://github.com/software-mansion/react-native-screens/issues/1859). #### What's Changed #### 🐛 Bug fixes - Bad parameter type in `toggleCancelButton` search bar command by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1854](https://github.com/software-mansion/react-native-screens/pull/1854) - Add missing iOS API availbility checks by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1860](https://github.com/software-mansion/react-native-screens/pull/1860) #### 🔢 Miscellaneous - Update RN + other deps in example apps by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1847](https://github.com/software-mansion/react-native-screens/pull/1847) - Annotate `sheetExpandsWhenScrollingToEdge` prop as iOS specific by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1851](https://github.com/software-mansion/react-native-screens/pull/1851) - Improve readability of C++ namespaced types by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1856](https://github.com/software-mansion/react-native-screens/pull/1856) **Full Changelog**: software-mansion/react-native-screens@3.23.0...3.24.0 ### [`v3.23.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.23.0) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.22.1...3.23.0) #### What's Changed #### 🐛 Bug fixes - Headerheight incorrect on phones with dynamic island by [@​dylancom](https://github.com/dylancom) in [https://github.com/software-mansion/react-native-screens/pull/1784](https://github.com/software-mansion/react-native-screens/pull/1784) - Buggy search bar / large title behaviour on Fabric by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1825](https://github.com/software-mansion/react-native-screens/pull/1825) - Make RNSFullWindowOverlay a modal for accessibility by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1842](https://github.com/software-mansion/react-native-screens/pull/1842) - Calculate large headers in `useHeaderHeight` hook by [@​tboba](https://github.com/tboba) in [https://github.com/software-mansion/react-native-screens/pull/1844](https://github.com/software-mansion/react-native-screens/pull/1844) #### 👍 Improvements - Add onGestureCancel event by [@​piaskowyk](https://github.com/piaskowyk) in [https://github.com/software-mansion/react-native-screens/pull/1810](https://github.com/software-mansion/react-native-screens/pull/1810) - Add support for search bar placement by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1843](https://github.com/software-mansion/react-native-screens/pull/1843) #### 🔢 Miscellaneous - Update `tough-cookie` and `semver` dependencies by [@​tboba](https://github.com/tboba) in [https://github.com/software-mansion/react-native-screens/pull/1823](https://github.com/software-mansion/react-native-screens/pull/1823) - Bump versions of RNScreens, FBReactNativeSpec and RCTAppDelegate deps by [@​tboba](https://github.com/tboba) in [https://github.com/software-mansion/react-native-screens/pull/1827](https://github.com/software-mansion/react-native-screens/pull/1827) - Update `word-wrap` by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1834](https://github.com/software-mansion/react-native-screens/pull/1834) - Format code in test examples by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1812](https://github.com/software-mansion/react-native-screens/pull/1812) - Unify class & method naming with respect to conventions by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1841](https://github.com/software-mansion/react-native-screens/pull/1841) #### New Contributors - [@​piaskowyk](https://github.com/piaskowyk) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1810](https://github.com/software-mansion/react-native-screens/pull/1810) - [@​tboba](https://github.com/tboba) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1823](https://github.com/software-mansion/react-native-screens/pull/1823) **Full Changelog**: software-mansion/react-native-screens@3.22.1...3.23.0 ### [`v3.22.1`](https://github.com/software-mansion/react-native-screens/releases/tag/3.22.1) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.22.0...3.22.1) Patch release bringing back old behaviour of `formSheet` modal on iOS when using `@react-navigation/native-stack`. #### What's Changed ##### Fixes - fix: move setting default values of medium-detent related props to `InnerScreen` by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1811](https://github.com/software-mansion/react-native-screens/pull/1811) ##### Internal - chore: fix CI by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1803](https://github.com/software-mansion/react-native-screens/pull/1803) - chore(deps): update selected deps in examples by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1807](https://github.com/software-mansion/react-native-screens/pull/1807) - chore: fix typo in docs by [@​aleqsio](https://github.com/aleqsio) in [https://github.com/software-mansion/react-native-screens/pull/1808](https://github.com/software-mansion/react-native-screens/pull/1808) #### New Contributors - [@​aleqsio](https://github.com/aleqsio) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1808](https://github.com/software-mansion/react-native-screens/pull/1808) **Full Changelog**: software-mansion/react-native-screens@3.22.0...3.22.1 ### [`v3.22.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.22.0) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.21.1...3.22.0) Minor release fixing some build issues that could happen on older Xcode versions & with Android SDK 34. #### What's Changed - fix: canvas nullability in ScreenStack for Android SDK 34 by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1795](https://github.com/software-mansion/react-native-screens/pull/1795) - fix: ifdef orientation code that requries iOS 16 by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1794](https://github.com/software-mansion/react-native-screens/pull/1794) - chore: update & reinstall selected deps by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1798](https://github.com/software-mansion/react-native-screens/pull/1798) **Full Changelog**: software-mansion/react-native-screens@3.21.1...3.22.0 ### [`v3.21.1`](https://github.com/software-mansion/react-native-screens/releases/tag/3.21.1) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.21.0...3.21.1) Patch release adding internal `isNewBackTitleImplementation` constant for use in `@react-navigation/native-stack`. See [#​1791](https://github.com/software-mansion/react-native-screens/issues/1791) & [https://github.com/react-navigation/react-navigation/pull/11423](https://github.com/react-navigation/react-navigation/pull/11423) for details. ### [`v3.21.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.21.0) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.20.0...3.21.0) Minor release with support for React Native 0.72 on New Architecture, fixing some bugs and adding new functionalities. Please note that support for `react-navigation` v4 has been dropped with this version and you can no longer use `native-stack` v4 starting from this version. It might be considered a **BREAKING CHANGE** so be careful with updating. #### What's Changed - chore: migrate codegen to TypeScript by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1600](https://github.com/software-mansion/react-native-screens/pull/1600) - chore: update README on Fabric support by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1687](https://github.com/software-mansion/react-native-screens/pull/1687) - feat(iOS): back button subview for Fabric by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1581](https://github.com/software-mansion/react-native-screens/pull/1581) - fix(iOS): image loading for back button on Fabric by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1688](https://github.com/software-mansion/react-native-screens/pull/1688) - chore: refactor medium detent iOS implementation by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1699](https://github.com/software-mansion/react-native-screens/pull/1699) - feat(Android): add native default animations on Android 13 by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1693](https://github.com/software-mansion/react-native-screens/pull/1693) - chore: fix e2e detox tests & `Example` by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1681](https://github.com/software-mansion/react-native-screens/pull/1681) - fix(iOS): status bar does not respect app theme by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1708](https://github.com/software-mansion/react-native-screens/pull/1708) - chore(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/software-mansion/react-native-screens/pull/1709](https://github.com/software-mansion/react-native-screens/pull/1709) - chore: change fabric flag by [@​WoLewicki](https://github.com/WoLewicki) in [https://github.com/software-mansion/react-native-screens/pull/1705](https://github.com/software-mansion/react-native-screens/pull/1705) - chore(CI): extend timeout for Android e2e by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1711](https://github.com/software-mansion/react-native-screens/pull/1711) - chore: update deps in examples by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1714](https://github.com/software-mansion/react-native-screens/pull/1714) - chore: update library & examples dependencies by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1721](https://github.com/software-mansion/react-native-screens/pull/1721) - fix: Android build for `compileSdk < 33` by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1723](https://github.com/software-mansion/react-native-screens/pull/1723) - feat: add imperative API for search bar by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1610](https://github.com/software-mansion/react-native-screens/pull/1610) - chore(deps): bump shell-quote from 1.6.1 to 1.8.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/software-mansion/react-native-screens/pull/1725](https://github.com/software-mansion/react-native-screens/pull/1725) - chore: improve Android anim resource management by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1727](https://github.com/software-mansion/react-native-screens/pull/1727) - chore: fix typo in build script by [@​Jace-Samsung](https://github.com/Jace-Samsung) in [https://github.com/software-mansion/react-native-screens/pull/1733](https://github.com/software-mansion/react-native-screens/pull/1733) - chore: set library namespace in build script by [@​Sprimage](https://github.com/Sprimage) in [https://github.com/software-mansion/react-native-screens/pull/1717](https://github.com/software-mansion/react-native-screens/pull/1717) - fix(iOS): back button not respecting style options by [@​tyler-coleman](https://github.com/tyler-coleman) in [https://github.com/software-mansion/react-native-screens/pull/1726](https://github.com/software-mansion/react-native-screens/pull/1726) - chore: override `onCreate` in example apps by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1736](https://github.com/software-mansion/react-native-screens/pull/1736) - feat: add `setText` command on SearchBar by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1739](https://github.com/software-mansion/react-native-screens/pull/1739) - chore(deps): bump activesupport from 6.1.4.6 to 7.0.4.3 by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1744](https://github.com/software-mansion/react-native-screens/pull/1744) - fix: do not apply namespace if it is not available in agp by [@​WoLewicki](https://github.com/WoLewicki) in [https://github.com/software-mansion/react-native-screens/pull/1749](https://github.com/software-mansion/react-native-screens/pull/1749) - chore(deps): bump vm2 from 3.9.14 to 3.9.15 by [@​dependabot](https://github.com/dependabot) in [https://github.com/software-mansion/react-native-screens/pull/1752](https://github.com/software-mansion/react-native-screens/pull/1752) - fix: use new rotation API for iOS 16 by [@​kirillzyusko](https://github.com/kirillzyusko) in [https://github.com/software-mansion/react-native-screens/pull/1732](https://github.com/software-mansion/react-native-screens/pull/1732) - chore: improve Android 13 animations by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1756](https://github.com/software-mansion/react-native-screens/pull/1756) - chore(deps): bump vm2 from 3.9.15 to 3.9.16 by [@​dependabot](https://github.com/dependabot) in [https://github.com/software-mansion/react-native-screens/pull/1755](https://github.com/software-mansion/react-native-screens/pull/1755) - fix: ScreenStackHeaderConfig type by [@​tomekzaw](https://github.com/tomekzaw) in [https://github.com/software-mansion/react-native-screens/pull/1760](https://github.com/software-mansion/react-native-screens/pull/1760) - feat: remove v4 from repo by [@​WoLewicki](https://github.com/WoLewicki) in [https://github.com/software-mansion/react-native-screens/pull/1790](https://github.com/software-mansion/react-native-screens/pull/1790) - fix:Compatible with version 0.72 by [@​NiuGuohui](https://github.com/NiuGuohui) in [https://github.com/software-mansion/react-native-screens/pull/1765](https://github.com/software-mansion/react-native-screens/pull/1765) - fix: proper handling of header events on Fabric and bumping examples to 0.72 by [@​WoLewicki](https://github.com/WoLewicki) in [https://github.com/software-mansion/react-native-screens/pull/1783](https://github.com/software-mansion/react-native-screens/pull/1783) - feat: prevent native back button dismissal on iOS by [@​WoLewicki](https://github.com/WoLewicki) in [https://github.com/software-mansion/react-native-screens/pull/1773](https://github.com/software-mansion/react-native-screens/pull/1773) #### New Contributors - [@​Jace-Samsung](https://github.com/Jace-Samsung) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1733](https://github.com/software-mansion/react-native-screens/pull/1733) - [@​Sprimage](https://github.com/Sprimage) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1717](https://github.com/software-mansion/react-native-screens/pull/1717) - [@​tyler-coleman](https://github.com/tyler-coleman) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1726](https://github.com/software-mansion/react-native-screens/pull/1726) - [@​NiuGuohui](https://github.com/NiuGuohui) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1765](https://github.com/software-mansion/react-native-screens/pull/1765) **Full Changelog**: software-mansion/react-native-screens@3.20.0...3.21.0 ### [`v3.20.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.20.0) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.19.0...3.20.0) Minior release aimed at fixing [#​1686](https://github.com/software-mansion/react-native-screens/issues/1686) (change of default behaviour for `stackPresentation: 'formSheet'`). No other changes were introduced with this release. Next "feature" release is in preparation. **Full Changelog**: software-mansion/react-native-screens@3.19.0...3.20.0 ### [`v3.19.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.19.0) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.18.2...3.19.0) Minor release with support for React Native 0.71 **Important**: Since this version, Fabric is only supported for React Native 0.71+. Support for older versions has beed dropped. #### 🐛 Bug fixes - Try to apply pointer events behaviors in overlay by [@​WoLewicki](https://github.com/WoLewicki) in [https://github.com/software-mansion/react-native-screens/pull/1582](https://github.com/software-mansion/react-native-screens/pull/1582) - Make enabling device orientation notifications internal by [@​kacperkapusciak](https://github.com/kacperkapusciak) & [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1596](https://github.com/software-mansion/react-native-screens/pull/1596) - Fix back button menu for headerBackTitleVisible prop by [@​kacperkapusciak](https://github.com/kacperkapusciak) in [https://github.com/software-mansion/react-native-screens/pull/1646](https://github.com/software-mansion/react-native-screens/pull/1646) - Override requiresMainQueueSetup in RNSScreenManager by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1670](https://github.com/software-mansion/react-native-screens/pull/1670) #### 👍 Improvements - Support for React Native 0.71.0 by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1631](https://github.com/software-mansion/react-native-screens/pull/1631) - Clarify installation instructions for Android by [@​evan1715](https://github.com/evan1715) in [https://github.com/software-mansion/react-native-screens/pull/1633](https://github.com/software-mansion/react-native-screens/pull/1633) #### 🔢 Miscellaneous - Fix FabricTestExample fails to start due to new `react-native.config.js` by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1624](https://github.com/software-mansion/react-native-screens/pull/1624) - Examples stopped to work after RN issue by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1632](https://github.com/software-mansion/react-native-screens/pull/1632) - Exclude android/.settings file form repo by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1642](https://github.com/software-mansion/react-native-screens/pull/1642) - Bump deps & fix tvOS build by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1667](https://github.com/software-mansion/react-native-screens/pull/1667) - Unify CI between platforms by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1676](https://github.com/software-mansion/react-native-screens/pull/1676) #### New Contributors - [@​evan1715](https://github.com/evan1715) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1633](https://github.com/software-mansion/react-native-screens/pull/1633) **Full Changelog**: software-mansion/react-native-screens@3.18.2...3.19.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 5pm,every weekend" in timezone America/Los_Angeles, Automerge - "after 5pm,every weekend" in timezone America/Los_Angeles. 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/valora-inc/wallet). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: valora-bot <valorabot@valoraapp.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [react-native-screens](https://github.com/software-mansion/react-native-screens) | [`^3.18.2` -> `^3.25.0`](https://renovatebot.com/diffs/npm/react-native-screens/3.18.2/3.25.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-native-screens/3.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-native-screens/3.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-native-screens/3.18.2/3.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-native-screens/3.18.2/3.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>software-mansion/react-native-screens (react-native-screens)</summary> ### [`v3.25.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.25.0) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.24.0...3.25.0) #### What's Changed Minor release focused on bug fixes & internals. #### 🐛 Bug fixes - iOS: Add missing call to super method in `RNSScreenView#finalizeUpdates` by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1855](https://github.com/software-mansion/react-native-screens/pull/1855) - Android: Shorten alpha animation to 83ms on default enter-out by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1835](https://github.com/software-mansion/react-native-screens/pull/1835) - iOS: Wrong title in back button menu for screens w/ hidden header by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1866](https://github.com/software-mansion/react-native-screens/pull/1866) - iOS: Full window overlay cannot receive tap when modal is full screen by [@​intergalacticspacehighway](https://github.com/intergalacticspacehighway) in [https://github.com/software-mansion/react-native-screens/pull/1872](https://github.com/software-mansion/react-native-screens/pull/1872) #### 🔢 Miscellaneous - Reinstall deps & pods in example apps after release by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1862](https://github.com/software-mansion/react-native-screens/pull/1862) - Fix typo in docs on `sheetCornerRadius` by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1863](https://github.com/software-mansion/react-native-screens/pull/1863) - Use `PlatformColor` instead of plain `string` for color related props by [@​retyui](https://github.com/retyui) in [https://github.com/software-mansion/react-native-screens/pull/1846](https://github.com/software-mansion/react-native-screens/pull/1846) - Android: Migrate `replaceSystemWindowInsets` to `Builder.setSystemWindowInsets` by [@​kirillzyusko](https://github.com/kirillzyusko) in [https://github.com/software-mansion/react-native-screens/pull/1868](https://github.com/software-mansion/react-native-screens/pull/1868) #### New Contributors - [@​intergalacticspacehighway](https://github.com/intergalacticspacehighway) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1872](https://github.com/software-mansion/react-native-screens/pull/1872) - [@​retyui](https://github.com/retyui) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1846](https://github.com/software-mansion/react-native-screens/pull/1846) **Full Changelog**: software-mansion/react-native-screens@3.24.0...3.25.0 ### [`v3.24.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.24.0) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.23.0...3.24.0) Minor release focused on fixing build issues reported in [#​1859](https://github.com/software-mansion/react-native-screens/issues/1859). #### What's Changed #### 🐛 Bug fixes - Bad parameter type in `toggleCancelButton` search bar command by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1854](https://github.com/software-mansion/react-native-screens/pull/1854) - Add missing iOS API availbility checks by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1860](https://github.com/software-mansion/react-native-screens/pull/1860) #### 🔢 Miscellaneous - Update RN + other deps in example apps by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1847](https://github.com/software-mansion/react-native-screens/pull/1847) - Annotate `sheetExpandsWhenScrollingToEdge` prop as iOS specific by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1851](https://github.com/software-mansion/react-native-screens/pull/1851) - Improve readability of C++ namespaced types by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1856](https://github.com/software-mansion/react-native-screens/pull/1856) **Full Changelog**: software-mansion/react-native-screens@3.23.0...3.24.0 ### [`v3.23.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.23.0) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.22.1...3.23.0) #### What's Changed #### 🐛 Bug fixes - Headerheight incorrect on phones with dynamic island by [@​dylancom](https://github.com/dylancom) in [https://github.com/software-mansion/react-native-screens/pull/1784](https://github.com/software-mansion/react-native-screens/pull/1784) - Buggy search bar / large title behaviour on Fabric by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1825](https://github.com/software-mansion/react-native-screens/pull/1825) - Make RNSFullWindowOverlay a modal for accessibility by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1842](https://github.com/software-mansion/react-native-screens/pull/1842) - Calculate large headers in `useHeaderHeight` hook by [@​tboba](https://github.com/tboba) in [https://github.com/software-mansion/react-native-screens/pull/1844](https://github.com/software-mansion/react-native-screens/pull/1844) #### 👍 Improvements - Add onGestureCancel event by [@​piaskowyk](https://github.com/piaskowyk) in [https://github.com/software-mansion/react-native-screens/pull/1810](https://github.com/software-mansion/react-native-screens/pull/1810) - Add support for search bar placement by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1843](https://github.com/software-mansion/react-native-screens/pull/1843) #### 🔢 Miscellaneous - Update `tough-cookie` and `semver` dependencies by [@​tboba](https://github.com/tboba) in [https://github.com/software-mansion/react-native-screens/pull/1823](https://github.com/software-mansion/react-native-screens/pull/1823) - Bump versions of RNScreens, FBReactNativeSpec and RCTAppDelegate deps by [@​tboba](https://github.com/tboba) in [https://github.com/software-mansion/react-native-screens/pull/1827](https://github.com/software-mansion/react-native-screens/pull/1827) - Update `word-wrap` by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1834](https://github.com/software-mansion/react-native-screens/pull/1834) - Format code in test examples by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1812](https://github.com/software-mansion/react-native-screens/pull/1812) - Unify class & method naming with respect to conventions by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1841](https://github.com/software-mansion/react-native-screens/pull/1841) #### New Contributors - [@​piaskowyk](https://github.com/piaskowyk) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1810](https://github.com/software-mansion/react-native-screens/pull/1810) - [@​tboba](https://github.com/tboba) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1823](https://github.com/software-mansion/react-native-screens/pull/1823) **Full Changelog**: software-mansion/react-native-screens@3.22.1...3.23.0 ### [`v3.22.1`](https://github.com/software-mansion/react-native-screens/releases/tag/3.22.1) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.22.0...3.22.1) Patch release bringing back old behaviour of `formSheet` modal on iOS when using `@react-navigation/native-stack`. #### What's Changed ##### Fixes - fix: move setting default values of medium-detent related props to `InnerScreen` by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1811](https://github.com/software-mansion/react-native-screens/pull/1811) ##### Internal - chore: fix CI by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1803](https://github.com/software-mansion/react-native-screens/pull/1803) - chore(deps): update selected deps in examples by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1807](https://github.com/software-mansion/react-native-screens/pull/1807) - chore: fix typo in docs by [@​aleqsio](https://github.com/aleqsio) in [https://github.com/software-mansion/react-native-screens/pull/1808](https://github.com/software-mansion/react-native-screens/pull/1808) #### New Contributors - [@​aleqsio](https://github.com/aleqsio) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1808](https://github.com/software-mansion/react-native-screens/pull/1808) **Full Changelog**: software-mansion/react-native-screens@3.22.0...3.22.1 ### [`v3.22.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.22.0) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.21.1...3.22.0) Minor release fixing some build issues that could happen on older Xcode versions & with Android SDK 34. #### What's Changed - fix: canvas nullability in ScreenStack for Android SDK 34 by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1795](https://github.com/software-mansion/react-native-screens/pull/1795) - fix: ifdef orientation code that requries iOS 16 by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1794](https://github.com/software-mansion/react-native-screens/pull/1794) - chore: update & reinstall selected deps by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1798](https://github.com/software-mansion/react-native-screens/pull/1798) **Full Changelog**: software-mansion/react-native-screens@3.21.1...3.22.0 ### [`v3.21.1`](https://github.com/software-mansion/react-native-screens/releases/tag/3.21.1) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.21.0...3.21.1) Patch release adding internal `isNewBackTitleImplementation` constant for use in `@react-navigation/native-stack`. See [#​1791](https://github.com/software-mansion/react-native-screens/issues/1791) & [https://github.com/react-navigation/react-navigation/pull/11423](https://github.com/react-navigation/react-navigation/pull/11423) for details. ### [`v3.21.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.21.0) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.20.0...3.21.0) Minor release with support for React Native 0.72 on New Architecture, fixing some bugs and adding new functionalities. Please note that support for `react-navigation` v4 has been dropped with this version and you can no longer use `native-stack` v4 starting from this version. It might be considered a **BREAKING CHANGE** so be careful with updating. #### What's Changed - chore: migrate codegen to TypeScript by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1600](https://github.com/software-mansion/react-native-screens/pull/1600) - chore: update README on Fabric support by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1687](https://github.com/software-mansion/react-native-screens/pull/1687) - feat(iOS): back button subview for Fabric by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1581](https://github.com/software-mansion/react-native-screens/pull/1581) - fix(iOS): image loading for back button on Fabric by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1688](https://github.com/software-mansion/react-native-screens/pull/1688) - chore: refactor medium detent iOS implementation by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1699](https://github.com/software-mansion/react-native-screens/pull/1699) - feat(Android): add native default animations on Android 13 by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1693](https://github.com/software-mansion/react-native-screens/pull/1693) - chore: fix e2e detox tests & `Example` by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1681](https://github.com/software-mansion/react-native-screens/pull/1681) - fix(iOS): status bar does not respect app theme by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1708](https://github.com/software-mansion/react-native-screens/pull/1708) - chore(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/software-mansion/react-native-screens/pull/1709](https://github.com/software-mansion/react-native-screens/pull/1709) - chore: change fabric flag by [@​WoLewicki](https://github.com/WoLewicki) in [https://github.com/software-mansion/react-native-screens/pull/1705](https://github.com/software-mansion/react-native-screens/pull/1705) - chore(CI): extend timeout for Android e2e by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1711](https://github.com/software-mansion/react-native-screens/pull/1711) - chore: update deps in examples by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1714](https://github.com/software-mansion/react-native-screens/pull/1714) - chore: update library & examples dependencies by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1721](https://github.com/software-mansion/react-native-screens/pull/1721) - fix: Android build for `compileSdk < 33` by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1723](https://github.com/software-mansion/react-native-screens/pull/1723) - feat: add imperative API for search bar by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1610](https://github.com/software-mansion/react-native-screens/pull/1610) - chore(deps): bump shell-quote from 1.6.1 to 1.8.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/software-mansion/react-native-screens/pull/1725](https://github.com/software-mansion/react-native-screens/pull/1725) - chore: improve Android anim resource management by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1727](https://github.com/software-mansion/react-native-screens/pull/1727) - chore: fix typo in build script by [@​Jace-Samsung](https://github.com/Jace-Samsung) in [https://github.com/software-mansion/react-native-screens/pull/1733](https://github.com/software-mansion/react-native-screens/pull/1733) - chore: set library namespace in build script by [@​Sprimage](https://github.com/Sprimage) in [https://github.com/software-mansion/react-native-screens/pull/1717](https://github.com/software-mansion/react-native-screens/pull/1717) - fix(iOS): back button not respecting style options by [@​tyler-coleman](https://github.com/tyler-coleman) in [https://github.com/software-mansion/react-native-screens/pull/1726](https://github.com/software-mansion/react-native-screens/pull/1726) - chore: override `onCreate` in example apps by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1736](https://github.com/software-mansion/react-native-screens/pull/1736) - feat: add `setText` command on SearchBar by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1739](https://github.com/software-mansion/react-native-screens/pull/1739) - chore(deps): bump activesupport from 6.1.4.6 to 7.0.4.3 by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1744](https://github.com/software-mansion/react-native-screens/pull/1744) - fix: do not apply namespace if it is not available in agp by [@​WoLewicki](https://github.com/WoLewicki) in [https://github.com/software-mansion/react-native-screens/pull/1749](https://github.com/software-mansion/react-native-screens/pull/1749) - chore(deps): bump vm2 from 3.9.14 to 3.9.15 by [@​dependabot](https://github.com/dependabot) in [https://github.com/software-mansion/react-native-screens/pull/1752](https://github.com/software-mansion/react-native-screens/pull/1752) - fix: use new rotation API for iOS 16 by [@​kirillzyusko](https://github.com/kirillzyusko) in [https://github.com/software-mansion/react-native-screens/pull/1732](https://github.com/software-mansion/react-native-screens/pull/1732) - chore: improve Android 13 animations by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1756](https://github.com/software-mansion/react-native-screens/pull/1756) - chore(deps): bump vm2 from 3.9.15 to 3.9.16 by [@​dependabot](https://github.com/dependabot) in [https://github.com/software-mansion/react-native-screens/pull/1755](https://github.com/software-mansion/react-native-screens/pull/1755) - fix: ScreenStackHeaderConfig type by [@​tomekzaw](https://github.com/tomekzaw) in [https://github.com/software-mansion/react-native-screens/pull/1760](https://github.com/software-mansion/react-native-screens/pull/1760) - feat: remove v4 from repo by [@​WoLewicki](https://github.com/WoLewicki) in [https://github.com/software-mansion/react-native-screens/pull/1790](https://github.com/software-mansion/react-native-screens/pull/1790) - fix:Compatible with version 0.72 by [@​NiuGuohui](https://github.com/NiuGuohui) in [https://github.com/software-mansion/react-native-screens/pull/1765](https://github.com/software-mansion/react-native-screens/pull/1765) - fix: proper handling of header events on Fabric and bumping examples to 0.72 by [@​WoLewicki](https://github.com/WoLewicki) in [https://github.com/software-mansion/react-native-screens/pull/1783](https://github.com/software-mansion/react-native-screens/pull/1783) - feat: prevent native back button dismissal on iOS by [@​WoLewicki](https://github.com/WoLewicki) in [https://github.com/software-mansion/react-native-screens/pull/1773](https://github.com/software-mansion/react-native-screens/pull/1773) #### New Contributors - [@​Jace-Samsung](https://github.com/Jace-Samsung) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1733](https://github.com/software-mansion/react-native-screens/pull/1733) - [@​Sprimage](https://github.com/Sprimage) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1717](https://github.com/software-mansion/react-native-screens/pull/1717) - [@​tyler-coleman](https://github.com/tyler-coleman) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1726](https://github.com/software-mansion/react-native-screens/pull/1726) - [@​NiuGuohui](https://github.com/NiuGuohui) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1765](https://github.com/software-mansion/react-native-screens/pull/1765) **Full Changelog**: software-mansion/react-native-screens@3.20.0...3.21.0 ### [`v3.20.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.20.0) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.19.0...3.20.0) Minior release aimed at fixing [#​1686](https://github.com/software-mansion/react-native-screens/issues/1686) (change of default behaviour for `stackPresentation: 'formSheet'`). No other changes were introduced with this release. Next "feature" release is in preparation. **Full Changelog**: software-mansion/react-native-screens@3.19.0...3.20.0 ### [`v3.19.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.19.0) [Compare Source](https://github.com/software-mansion/react-native-screens/compare/3.18.2...3.19.0) Minor release with support for React Native 0.71 **Important**: Since this version, Fabric is only supported for React Native 0.71+. Support for older versions has beed dropped. #### 🐛 Bug fixes - Try to apply pointer events behaviors in overlay by [@​WoLewicki](https://github.com/WoLewicki) in [https://github.com/software-mansion/react-native-screens/pull/1582](https://github.com/software-mansion/react-native-screens/pull/1582) - Make enabling device orientation notifications internal by [@​kacperkapusciak](https://github.com/kacperkapusciak) & [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1596](https://github.com/software-mansion/react-native-screens/pull/1596) - Fix back button menu for headerBackTitleVisible prop by [@​kacperkapusciak](https://github.com/kacperkapusciak) in [https://github.com/software-mansion/react-native-screens/pull/1646](https://github.com/software-mansion/react-native-screens/pull/1646) - Override requiresMainQueueSetup in RNSScreenManager by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1670](https://github.com/software-mansion/react-native-screens/pull/1670) #### 👍 Improvements - Support for React Native 0.71.0 by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1631](https://github.com/software-mansion/react-native-screens/pull/1631) - Clarify installation instructions for Android by [@​evan1715](https://github.com/evan1715) in [https://github.com/software-mansion/react-native-screens/pull/1633](https://github.com/software-mansion/react-native-screens/pull/1633) #### 🔢 Miscellaneous - Fix FabricTestExample fails to start due to new `react-native.config.js` by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1624](https://github.com/software-mansion/react-native-screens/pull/1624) - Examples stopped to work after RN issue by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1632](https://github.com/software-mansion/react-native-screens/pull/1632) - Exclude android/.settings file form repo by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1642](https://github.com/software-mansion/react-native-screens/pull/1642) - Bump deps & fix tvOS build by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1667](https://github.com/software-mansion/react-native-screens/pull/1667) - Unify CI between platforms by [@​kkafar](https://github.com/kkafar) in [https://github.com/software-mansion/react-native-screens/pull/1676](https://github.com/software-mansion/react-native-screens/pull/1676) #### New Contributors - [@​evan1715](https://github.com/evan1715) made their first contribution in [https://github.com/software-mansion/react-native-screens/pull/1633](https://github.com/software-mansion/react-native-screens/pull/1633) **Full Changelog**: software-mansion/react-native-screens@3.18.2...3.19.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 5pm,every weekend" in timezone America/Los_Angeles, Automerge - "after 5pm,every weekend" in timezone America/Los_Angeles. 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/valora-inc/wallet). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: valora-bot <valorabot@valoraapp.com>
Description
This PR adds new iOS only event. Event is triggered after canceled swipe back (as on video)
Screen.Recording.2023-07-06.at.14.22.32.mov