Skip to content
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

fix(iOS): buggy search bar / large title behaviour on Fabric #1825

Merged
merged 28 commits into from
Jul 19, 2023

Conversation

kkafar
Copy link
Member

@kkafar kkafar commented Jul 11, 2023

Description

UIKit requires ScrollView to be at index 0 in given view's subview array to enable it's interaction with navigation bar. On Fabric our MaybeNestedStack view got flattened, however it was not removed from hierarchy -- instead the view was attached as first child of the RNSScreenView disabling system interaction between navigation bar and a scroll view.

Changes

  1. Added collapsable={false} to MaybeNestedStack view, preventing it from being flattened by React Native.
  2. Moved HeaderConfig component "down" -- so it is attached as second child of a Screen. It was necessary, because currently on Fabric we are adding RNSScreenStackHeaderConfig into subviews of the Screen and it also interrupted the interaction.
  3. Refactored code that relied on RNSScreenStackHeaderConfig being first child of a Screen (if present at all).

Initially I've played around with fixing (modyfing) the view hierarchy on the native side just by removing / adding some views when scroll view was being attached under the RNSScreenView, however such approach led to cascade of bugs (fixing first, caused another one and so on). We can assume that in general discrepancy between native & shadow tree leads to unpleasant bugs.

Possible alternative solution would be to not add RNSScreenStackHeaderConfig as a subview of RNSScreenView on Fabric. I did not research it, but it seems that it would require more changes.

Note

We need to consult with @react-navigation whether the @react-navigation/native-stack has to be adjusted.

Before

Simulator.Screen.Recording.-.iPhone.14.-.2023-07-18.at.23.31.05.mp4

After

Simulator.Screen.Recording.-.iPhone.14.-.2023-07-18.at.23.28.42.mp4

Test code and steps to reproduce

Test1097 in FabricTestExample can be used to test these changes. Just use the scroll view and observe that the navigation bar gets stretched / dwindled while scrolling down / up respectively.

Checklist

  • Included code example that can be used to test this change
  • Ensured that CI passes

@kkafar kkafar changed the title fix(iOS): buggy search bar behaviour on Fabric fix(iOS): buggy search bar / large title behaviour on Fabric Jul 11, 2023
kkafar added 21 commits July 14, 2023 11:08
1. Prevent MaybeNestedStack from being flattened! <-- this was the view
   that was put at bad location in hierarchy by react.
2. Assert that `HeaderConfig` is not first child (so that scroll view is
   first).

**IMPORTANT**

I remember that there is some Paper code that relies on the fact that
config is mounted as the first child (at index 0) (it uses it for
checking) -> it must be
refactored -> maybe just create property on scrollview indicating
whether the config is present or not.
Just to have general diff on GitHub & I'll revert unnecessary changes 1
by 1 later
@kkafar kkafar requested a review from tboba July 18, 2023 21:26
Copy link
Member

@tboba tboba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job with this one! I just left some comments to consider 🎉

ios/RNSScreen.h Show resolved Hide resolved
ios/RNSScreen.h Show resolved Hide resolved
src/native-stack/views/NativeStackView.tsx Show resolved Hide resolved
@kkafar kkafar requested a review from tboba July 19, 2023 10:53
@kkafar kkafar merged commit ca6c9dc into main Jul 19, 2023
@kkafar kkafar deleted the @kkafar/searchbar-fabric branch July 19, 2023 13:08
satya164 pushed a commit to react-navigation/react-navigation that referenced this pull request Jul 31, 2023
…e stack v7 (#11501)

## Description

`UIKit` requires `ScrollView` to be at index 0 in given view's subview array to enable it's interaction with navigation bar. On Fabric our `MaybeNestedStack` view got flattened, however it was not removed from hierarchy -- instead the view was attached as first child of the `RNSScreenView` disabling system interaction between navigation bar and a scroll view. 

## Changes

1. Added `collapsable={false}` to `MaybeNestedStack` view, preventing it from being flattened by React Native. 
2. Moved `HeaderConfig` component "down" -- so it is attached as second child of a `Screen`. It was necessary, because currently on Fabric we are adding `RNSScreenStackHeaderConfig` into subviews of the `Screen` and it also interrupted the interaction. 
3. Refactored code that relied on `RNSScreenStackHeaderConfig` being first child of a `Screen` (if present at all).

Initially I've played around with fixing (modyfing) the view hierarchy on the native side just by removing / adding some views when scroll view was being attached under the `RNSScreenView`, however such approach led to cascade of bugs (fixing first, caused another one and so on). We can assume that in general discrepancy between native & shadow tree leads to unpleasant bugs.

Possible alternative solution would be to not add `RNSScreenStackHeaderConfig` as a subview of `RNSScreenView` on Fabric. I did not research it, but it seems that it would require more changes. 

See

* software-mansion/react-native-screens#1825

**Test plan**

### Before


https://github.com/software-mansion/react-native-screens/assets/50801299/3b89dee8-a307-44ba-a9f4-02e4dfdd95ac


### After


https://github.com/software-mansion/react-native-screens/assets/50801299/205f24d4-590b-402e-8b0a-848fd4482d59
tboba added a commit that referenced this pull request Sep 6, 2023
…#1883)

## Description

It looks like the change introduced in #1825 has also came with a bug
where at least Search Bar was not working on Android.
The reason for that has turned out to be the wrong implementation of
`headerConfig` property on Android, which was looking for the first
child and assuming that it is ScreenStackHeaderConfig - which was wrong,
because the change in #1825 has moved the ScreenStackHeaderConfig to the
bottom of the hierarchy.

Fixes not working Search Bar on Android (and some other unknown things
maybe?).

## Changes

From now `Screen#headerConfig` will traverse through all children of the
View and will check if one of them is `ScreenStackHeaderConfig`.

## Test code and steps to reproduce

You can check Test1166 if SearchBar is working right now; from now the
Search Bar in Example section should work properly.

## Checklist

- [ ] Ensured that CI passes
renovate bot referenced this pull request in valora-inc/wallet Oct 17, 2023
[![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://togithub.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://togithub.com/software-mansion/react-native-screens/releases/tag/3.25.0)

[Compare
Source](https://togithub.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
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1855](https://togithub.com/software-mansion/react-native-screens/pull/1855)
- Android: Shorten alpha animation to 83ms on default enter-out by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1835](https://togithub.com/software-mansion/react-native-screens/pull/1835)
- iOS: Wrong title in back button menu for screens w/ hidden header by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1866](https://togithub.com/software-mansion/react-native-screens/pull/1866)
- iOS: Full window overlay cannot receive tap when modal is full screen
by
[@&#8203;intergalacticspacehighway](https://togithub.com/intergalacticspacehighway)
in
[https://github.com/software-mansion/react-native-screens/pull/1872](https://togithub.com/software-mansion/react-native-screens/pull/1872)

#### 🔢 Miscellaneous

- Reinstall deps & pods in example apps after release by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1862](https://togithub.com/software-mansion/react-native-screens/pull/1862)
- Fix typo in docs on `sheetCornerRadius` by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1863](https://togithub.com/software-mansion/react-native-screens/pull/1863)
- Use `PlatformColor` instead of plain `string` for color related props
by [@&#8203;retyui](https://togithub.com/retyui) in
[https://github.com/software-mansion/react-native-screens/pull/1846](https://togithub.com/software-mansion/react-native-screens/pull/1846)
- Android: Migrate `replaceSystemWindowInsets` to
`Builder.setSystemWindowInsets` by
[@&#8203;kirillzyusko](https://togithub.com/kirillzyusko) in
[https://github.com/software-mansion/react-native-screens/pull/1868](https://togithub.com/software-mansion/react-native-screens/pull/1868)

#### New Contributors

-
[@&#8203;intergalacticspacehighway](https://togithub.com/intergalacticspacehighway)
made their first contribution in
[https://github.com/software-mansion/react-native-screens/pull/1872](https://togithub.com/software-mansion/react-native-screens/pull/1872)
- [@&#8203;retyui](https://togithub.com/retyui) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/1846](https://togithub.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://togithub.com/software-mansion/react-native-screens/releases/tag/3.24.0)

[Compare
Source](https://togithub.com/software-mansion/react-native-screens/compare/3.23.0...3.24.0)

Minor release focused on fixing build issues reported in
[#&#8203;1859](https://togithub.com/software-mansion/react-native-screens/issues/1859).

#### What's Changed

#### 🐛 Bug fixes

- Bad parameter type in `toggleCancelButton` search bar command by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1854](https://togithub.com/software-mansion/react-native-screens/pull/1854)
- Add missing iOS API availbility checks by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1860](https://togithub.com/software-mansion/react-native-screens/pull/1860)

#### 🔢 Miscellaneous

- Update RN + other deps in example apps by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1847](https://togithub.com/software-mansion/react-native-screens/pull/1847)
- Annotate `sheetExpandsWhenScrollingToEdge` prop as iOS specific by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1851](https://togithub.com/software-mansion/react-native-screens/pull/1851)
- Improve readability of C++ namespaced types by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1856](https://togithub.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://togithub.com/software-mansion/react-native-screens/releases/tag/3.23.0)

[Compare
Source](https://togithub.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
[@&#8203;dylancom](https://togithub.com/dylancom) in
[https://github.com/software-mansion/react-native-screens/pull/1784](https://togithub.com/software-mansion/react-native-screens/pull/1784)
- Buggy search bar / large title behaviour on Fabric by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1825](https://togithub.com/software-mansion/react-native-screens/pull/1825)
- Make RNSFullWindowOverlay a modal for accessibility by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1842](https://togithub.com/software-mansion/react-native-screens/pull/1842)
- Calculate large headers in `useHeaderHeight` hook by
[@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/1844](https://togithub.com/software-mansion/react-native-screens/pull/1844)

#### 👍 Improvements

- Add onGestureCancel event by
[@&#8203;piaskowyk](https://togithub.com/piaskowyk) in
[https://github.com/software-mansion/react-native-screens/pull/1810](https://togithub.com/software-mansion/react-native-screens/pull/1810)
- Add support for search bar placement by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1843](https://togithub.com/software-mansion/react-native-screens/pull/1843)

#### 🔢 Miscellaneous

- Update `tough-cookie` and `semver` dependencies by
[@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/1823](https://togithub.com/software-mansion/react-native-screens/pull/1823)
- Bump versions of RNScreens, FBReactNativeSpec and RCTAppDelegate deps
by [@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/1827](https://togithub.com/software-mansion/react-native-screens/pull/1827)
- Update `word-wrap` by [@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1834](https://togithub.com/software-mansion/react-native-screens/pull/1834)
- Format code in test examples by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1812](https://togithub.com/software-mansion/react-native-screens/pull/1812)
- Unify class & method naming with respect to conventions by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1841](https://togithub.com/software-mansion/react-native-screens/pull/1841)

#### New Contributors

- [@&#8203;piaskowyk](https://togithub.com/piaskowyk) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/1810](https://togithub.com/software-mansion/react-native-screens/pull/1810)
- [@&#8203;tboba](https://togithub.com/tboba) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/1823](https://togithub.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://togithub.com/software-mansion/react-native-screens/releases/tag/3.22.1)

[Compare
Source](https://togithub.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 [@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1811](https://togithub.com/software-mansion/react-native-screens/pull/1811)

##### Internal

- chore: fix CI by [@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1803](https://togithub.com/software-mansion/react-native-screens/pull/1803)
- chore(deps): update selected deps in examples by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1807](https://togithub.com/software-mansion/react-native-screens/pull/1807)
- chore: fix typo in docs by
[@&#8203;aleqsio](https://togithub.com/aleqsio) in
[https://github.com/software-mansion/react-native-screens/pull/1808](https://togithub.com/software-mansion/react-native-screens/pull/1808)

#### New Contributors

- [@&#8203;aleqsio](https://togithub.com/aleqsio) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/1808](https://togithub.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://togithub.com/software-mansion/react-native-screens/releases/tag/3.22.0)

[Compare
Source](https://togithub.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
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1795](https://togithub.com/software-mansion/react-native-screens/pull/1795)
- fix: ifdef orientation code that requries iOS 16 by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1794](https://togithub.com/software-mansion/react-native-screens/pull/1794)
- chore: update & reinstall selected deps by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1798](https://togithub.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://togithub.com/software-mansion/react-native-screens/releases/tag/3.21.1)

[Compare
Source](https://togithub.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
[#&#8203;1791](https://togithub.com/software-mansion/react-native-screens/issues/1791)
&
[https://github.com/react-navigation/react-navigation/pull/11423](https://togithub.com/react-navigation/react-navigation/pull/11423)
for details.

###
[`v3.21.0`](https://togithub.com/software-mansion/react-native-screens/releases/tag/3.21.0)

[Compare
Source](https://togithub.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
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1600](https://togithub.com/software-mansion/react-native-screens/pull/1600)
- chore: update README on Fabric support by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1687](https://togithub.com/software-mansion/react-native-screens/pull/1687)
- feat(iOS): back button subview for Fabric by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1581](https://togithub.com/software-mansion/react-native-screens/pull/1581)
- fix(iOS): image loading for back button on Fabric by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1688](https://togithub.com/software-mansion/react-native-screens/pull/1688)
- chore: refactor medium detent iOS implementation by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1699](https://togithub.com/software-mansion/react-native-screens/pull/1699)
- feat(Android): add native default animations on Android 13 by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1693](https://togithub.com/software-mansion/react-native-screens/pull/1693)
- chore: fix e2e detox tests & `Example` by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1681](https://togithub.com/software-mansion/react-native-screens/pull/1681)
- fix(iOS): status bar does not respect app theme by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1708](https://togithub.com/software-mansion/react-native-screens/pull/1708)
- chore(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/software-mansion/react-native-screens/pull/1709](https://togithub.com/software-mansion/react-native-screens/pull/1709)
- chore: change fabric flag by
[@&#8203;WoLewicki](https://togithub.com/WoLewicki) in
[https://github.com/software-mansion/react-native-screens/pull/1705](https://togithub.com/software-mansion/react-native-screens/pull/1705)
- chore(CI): extend timeout for Android e2e by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1711](https://togithub.com/software-mansion/react-native-screens/pull/1711)
- chore: update deps in examples by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1714](https://togithub.com/software-mansion/react-native-screens/pull/1714)
- chore: update library & examples dependencies by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1721](https://togithub.com/software-mansion/react-native-screens/pull/1721)
- fix: Android build for `compileSdk < 33` by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1723](https://togithub.com/software-mansion/react-native-screens/pull/1723)
- feat: add imperative API for search bar by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1610](https://togithub.com/software-mansion/react-native-screens/pull/1610)
- chore(deps): bump shell-quote from 1.6.1 to 1.8.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/software-mansion/react-native-screens/pull/1725](https://togithub.com/software-mansion/react-native-screens/pull/1725)
- chore: improve Android anim resource management by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1727](https://togithub.com/software-mansion/react-native-screens/pull/1727)
- chore: fix typo in build script by
[@&#8203;Jace-Samsung](https://togithub.com/Jace-Samsung) in
[https://github.com/software-mansion/react-native-screens/pull/1733](https://togithub.com/software-mansion/react-native-screens/pull/1733)
- chore: set library namespace in build script by
[@&#8203;Sprimage](https://togithub.com/Sprimage) in
[https://github.com/software-mansion/react-native-screens/pull/1717](https://togithub.com/software-mansion/react-native-screens/pull/1717)
- fix(iOS): back button not respecting style options by
[@&#8203;tyler-coleman](https://togithub.com/tyler-coleman) in
[https://github.com/software-mansion/react-native-screens/pull/1726](https://togithub.com/software-mansion/react-native-screens/pull/1726)
- chore: override `onCreate` in example apps by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1736](https://togithub.com/software-mansion/react-native-screens/pull/1736)
- feat: add `setText` command on SearchBar by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1739](https://togithub.com/software-mansion/react-native-screens/pull/1739)
- chore(deps): bump activesupport from 6.1.4.6 to 7.0.4.3 by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1744](https://togithub.com/software-mansion/react-native-screens/pull/1744)
- fix: do not apply namespace if it is not available in agp by
[@&#8203;WoLewicki](https://togithub.com/WoLewicki) in
[https://github.com/software-mansion/react-native-screens/pull/1749](https://togithub.com/software-mansion/react-native-screens/pull/1749)
- chore(deps): bump vm2 from 3.9.14 to 3.9.15 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/software-mansion/react-native-screens/pull/1752](https://togithub.com/software-mansion/react-native-screens/pull/1752)
- fix: use new rotation API for iOS 16 by
[@&#8203;kirillzyusko](https://togithub.com/kirillzyusko) in
[https://github.com/software-mansion/react-native-screens/pull/1732](https://togithub.com/software-mansion/react-native-screens/pull/1732)
- chore: improve Android 13 animations by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1756](https://togithub.com/software-mansion/react-native-screens/pull/1756)
- chore(deps): bump vm2 from 3.9.15 to 3.9.16 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/software-mansion/react-native-screens/pull/1755](https://togithub.com/software-mansion/react-native-screens/pull/1755)
- fix: ScreenStackHeaderConfig type by
[@&#8203;tomekzaw](https://togithub.com/tomekzaw) in
[https://github.com/software-mansion/react-native-screens/pull/1760](https://togithub.com/software-mansion/react-native-screens/pull/1760)
- feat: remove v4 from repo by
[@&#8203;WoLewicki](https://togithub.com/WoLewicki) in
[https://github.com/software-mansion/react-native-screens/pull/1790](https://togithub.com/software-mansion/react-native-screens/pull/1790)
- fix:Compatible with version 0.72 by
[@&#8203;NiuGuohui](https://togithub.com/NiuGuohui) in
[https://github.com/software-mansion/react-native-screens/pull/1765](https://togithub.com/software-mansion/react-native-screens/pull/1765)
- fix: proper handling of header events on Fabric and bumping examples
to 0.72 by [@&#8203;WoLewicki](https://togithub.com/WoLewicki) in
[https://github.com/software-mansion/react-native-screens/pull/1783](https://togithub.com/software-mansion/react-native-screens/pull/1783)
- feat: prevent native back button dismissal on iOS by
[@&#8203;WoLewicki](https://togithub.com/WoLewicki) in
[https://github.com/software-mansion/react-native-screens/pull/1773](https://togithub.com/software-mansion/react-native-screens/pull/1773)

#### New Contributors

- [@&#8203;Jace-Samsung](https://togithub.com/Jace-Samsung) made their
first contribution in
[https://github.com/software-mansion/react-native-screens/pull/1733](https://togithub.com/software-mansion/react-native-screens/pull/1733)
- [@&#8203;Sprimage](https://togithub.com/Sprimage) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/1717](https://togithub.com/software-mansion/react-native-screens/pull/1717)
- [@&#8203;tyler-coleman](https://togithub.com/tyler-coleman) made their
first contribution in
[https://github.com/software-mansion/react-native-screens/pull/1726](https://togithub.com/software-mansion/react-native-screens/pull/1726)
- [@&#8203;NiuGuohui](https://togithub.com/NiuGuohui) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/1765](https://togithub.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://togithub.com/software-mansion/react-native-screens/releases/tag/3.20.0)

[Compare
Source](https://togithub.com/software-mansion/react-native-screens/compare/3.19.0...3.20.0)

Minior release aimed at fixing
[#&#8203;1686](https://togithub.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://togithub.com/software-mansion/react-native-screens/releases/tag/3.19.0)

[Compare
Source](https://togithub.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
[@&#8203;WoLewicki](https://togithub.com/WoLewicki) in
[https://github.com/software-mansion/react-native-screens/pull/1582](https://togithub.com/software-mansion/react-native-screens/pull/1582)
- Make enabling device orientation notifications internal by
[@&#8203;kacperkapusciak](https://togithub.com/kacperkapusciak) &
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1596](https://togithub.com/software-mansion/react-native-screens/pull/1596)
- Fix back button menu for headerBackTitleVisible prop by
[@&#8203;kacperkapusciak](https://togithub.com/kacperkapusciak) in
[https://github.com/software-mansion/react-native-screens/pull/1646](https://togithub.com/software-mansion/react-native-screens/pull/1646)
- Override requiresMainQueueSetup in RNSScreenManager by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1670](https://togithub.com/software-mansion/react-native-screens/pull/1670)

#### 👍 Improvements

- Support for React Native 0.71.0 by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1631](https://togithub.com/software-mansion/react-native-screens/pull/1631)
- Clarify installation instructions for Android by
[@&#8203;evan1715](https://togithub.com/evan1715) in
[https://github.com/software-mansion/react-native-screens/pull/1633](https://togithub.com/software-mansion/react-native-screens/pull/1633)

#### 🔢 Miscellaneous

- Fix FabricTestExample fails to start due to new
`react-native.config.js` by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1624](https://togithub.com/software-mansion/react-native-screens/pull/1624)
- Examples stopped to work after RN issue by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1632](https://togithub.com/software-mansion/react-native-screens/pull/1632)
- Exclude android/.settings file form repo by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1642](https://togithub.com/software-mansion/react-native-screens/pull/1642)
- Bump deps & fix tvOS build by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1667](https://togithub.com/software-mansion/react-native-screens/pull/1667)
- Unify CI between platforms by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1676](https://togithub.com/software-mansion/react-native-screens/pull/1676)

#### New Contributors

- [@&#8203;evan1715](https://togithub.com/evan1715) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/1633](https://togithub.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 <[email protected]>
bakoushin referenced this pull request in valora-inc/wallet Oct 17, 2023
[![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://togithub.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://togithub.com/software-mansion/react-native-screens/releases/tag/3.25.0)

[Compare
Source](https://togithub.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
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1855](https://togithub.com/software-mansion/react-native-screens/pull/1855)
- Android: Shorten alpha animation to 83ms on default enter-out by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1835](https://togithub.com/software-mansion/react-native-screens/pull/1835)
- iOS: Wrong title in back button menu for screens w/ hidden header by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1866](https://togithub.com/software-mansion/react-native-screens/pull/1866)
- iOS: Full window overlay cannot receive tap when modal is full screen
by
[@&#8203;intergalacticspacehighway](https://togithub.com/intergalacticspacehighway)
in
[https://github.com/software-mansion/react-native-screens/pull/1872](https://togithub.com/software-mansion/react-native-screens/pull/1872)

#### 🔢 Miscellaneous

- Reinstall deps & pods in example apps after release by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1862](https://togithub.com/software-mansion/react-native-screens/pull/1862)
- Fix typo in docs on `sheetCornerRadius` by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1863](https://togithub.com/software-mansion/react-native-screens/pull/1863)
- Use `PlatformColor` instead of plain `string` for color related props
by [@&#8203;retyui](https://togithub.com/retyui) in
[https://github.com/software-mansion/react-native-screens/pull/1846](https://togithub.com/software-mansion/react-native-screens/pull/1846)
- Android: Migrate `replaceSystemWindowInsets` to
`Builder.setSystemWindowInsets` by
[@&#8203;kirillzyusko](https://togithub.com/kirillzyusko) in
[https://github.com/software-mansion/react-native-screens/pull/1868](https://togithub.com/software-mansion/react-native-screens/pull/1868)

#### New Contributors

-
[@&#8203;intergalacticspacehighway](https://togithub.com/intergalacticspacehighway)
made their first contribution in
[https://github.com/software-mansion/react-native-screens/pull/1872](https://togithub.com/software-mansion/react-native-screens/pull/1872)
- [@&#8203;retyui](https://togithub.com/retyui) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/1846](https://togithub.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://togithub.com/software-mansion/react-native-screens/releases/tag/3.24.0)

[Compare
Source](https://togithub.com/software-mansion/react-native-screens/compare/3.23.0...3.24.0)

Minor release focused on fixing build issues reported in
[#&#8203;1859](https://togithub.com/software-mansion/react-native-screens/issues/1859).

#### What's Changed

#### 🐛 Bug fixes

- Bad parameter type in `toggleCancelButton` search bar command by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1854](https://togithub.com/software-mansion/react-native-screens/pull/1854)
- Add missing iOS API availbility checks by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1860](https://togithub.com/software-mansion/react-native-screens/pull/1860)

#### 🔢 Miscellaneous

- Update RN + other deps in example apps by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1847](https://togithub.com/software-mansion/react-native-screens/pull/1847)
- Annotate `sheetExpandsWhenScrollingToEdge` prop as iOS specific by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1851](https://togithub.com/software-mansion/react-native-screens/pull/1851)
- Improve readability of C++ namespaced types by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1856](https://togithub.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://togithub.com/software-mansion/react-native-screens/releases/tag/3.23.0)

[Compare
Source](https://togithub.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
[@&#8203;dylancom](https://togithub.com/dylancom) in
[https://github.com/software-mansion/react-native-screens/pull/1784](https://togithub.com/software-mansion/react-native-screens/pull/1784)
- Buggy search bar / large title behaviour on Fabric by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1825](https://togithub.com/software-mansion/react-native-screens/pull/1825)
- Make RNSFullWindowOverlay a modal for accessibility by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1842](https://togithub.com/software-mansion/react-native-screens/pull/1842)
- Calculate large headers in `useHeaderHeight` hook by
[@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/1844](https://togithub.com/software-mansion/react-native-screens/pull/1844)

#### 👍 Improvements

- Add onGestureCancel event by
[@&#8203;piaskowyk](https://togithub.com/piaskowyk) in
[https://github.com/software-mansion/react-native-screens/pull/1810](https://togithub.com/software-mansion/react-native-screens/pull/1810)
- Add support for search bar placement by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1843](https://togithub.com/software-mansion/react-native-screens/pull/1843)

#### 🔢 Miscellaneous

- Update `tough-cookie` and `semver` dependencies by
[@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/1823](https://togithub.com/software-mansion/react-native-screens/pull/1823)
- Bump versions of RNScreens, FBReactNativeSpec and RCTAppDelegate deps
by [@&#8203;tboba](https://togithub.com/tboba) in
[https://github.com/software-mansion/react-native-screens/pull/1827](https://togithub.com/software-mansion/react-native-screens/pull/1827)
- Update `word-wrap` by [@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1834](https://togithub.com/software-mansion/react-native-screens/pull/1834)
- Format code in test examples by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1812](https://togithub.com/software-mansion/react-native-screens/pull/1812)
- Unify class & method naming with respect to conventions by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1841](https://togithub.com/software-mansion/react-native-screens/pull/1841)

#### New Contributors

- [@&#8203;piaskowyk](https://togithub.com/piaskowyk) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/1810](https://togithub.com/software-mansion/react-native-screens/pull/1810)
- [@&#8203;tboba](https://togithub.com/tboba) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/1823](https://togithub.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://togithub.com/software-mansion/react-native-screens/releases/tag/3.22.1)

[Compare
Source](https://togithub.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 [@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1811](https://togithub.com/software-mansion/react-native-screens/pull/1811)

##### Internal

- chore: fix CI by [@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1803](https://togithub.com/software-mansion/react-native-screens/pull/1803)
- chore(deps): update selected deps in examples by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1807](https://togithub.com/software-mansion/react-native-screens/pull/1807)
- chore: fix typo in docs by
[@&#8203;aleqsio](https://togithub.com/aleqsio) in
[https://github.com/software-mansion/react-native-screens/pull/1808](https://togithub.com/software-mansion/react-native-screens/pull/1808)

#### New Contributors

- [@&#8203;aleqsio](https://togithub.com/aleqsio) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/1808](https://togithub.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://togithub.com/software-mansion/react-native-screens/releases/tag/3.22.0)

[Compare
Source](https://togithub.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
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1795](https://togithub.com/software-mansion/react-native-screens/pull/1795)
- fix: ifdef orientation code that requries iOS 16 by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1794](https://togithub.com/software-mansion/react-native-screens/pull/1794)
- chore: update & reinstall selected deps by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1798](https://togithub.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://togithub.com/software-mansion/react-native-screens/releases/tag/3.21.1)

[Compare
Source](https://togithub.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
[#&#8203;1791](https://togithub.com/software-mansion/react-native-screens/issues/1791)
&
[https://github.com/react-navigation/react-navigation/pull/11423](https://togithub.com/react-navigation/react-navigation/pull/11423)
for details.

###
[`v3.21.0`](https://togithub.com/software-mansion/react-native-screens/releases/tag/3.21.0)

[Compare
Source](https://togithub.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
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1600](https://togithub.com/software-mansion/react-native-screens/pull/1600)
- chore: update README on Fabric support by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1687](https://togithub.com/software-mansion/react-native-screens/pull/1687)
- feat(iOS): back button subview for Fabric by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1581](https://togithub.com/software-mansion/react-native-screens/pull/1581)
- fix(iOS): image loading for back button on Fabric by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1688](https://togithub.com/software-mansion/react-native-screens/pull/1688)
- chore: refactor medium detent iOS implementation by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1699](https://togithub.com/software-mansion/react-native-screens/pull/1699)
- feat(Android): add native default animations on Android 13 by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1693](https://togithub.com/software-mansion/react-native-screens/pull/1693)
- chore: fix e2e detox tests & `Example` by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1681](https://togithub.com/software-mansion/react-native-screens/pull/1681)
- fix(iOS): status bar does not respect app theme by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1708](https://togithub.com/software-mansion/react-native-screens/pull/1708)
- chore(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/software-mansion/react-native-screens/pull/1709](https://togithub.com/software-mansion/react-native-screens/pull/1709)
- chore: change fabric flag by
[@&#8203;WoLewicki](https://togithub.com/WoLewicki) in
[https://github.com/software-mansion/react-native-screens/pull/1705](https://togithub.com/software-mansion/react-native-screens/pull/1705)
- chore(CI): extend timeout for Android e2e by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1711](https://togithub.com/software-mansion/react-native-screens/pull/1711)
- chore: update deps in examples by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1714](https://togithub.com/software-mansion/react-native-screens/pull/1714)
- chore: update library & examples dependencies by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1721](https://togithub.com/software-mansion/react-native-screens/pull/1721)
- fix: Android build for `compileSdk < 33` by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1723](https://togithub.com/software-mansion/react-native-screens/pull/1723)
- feat: add imperative API for search bar by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1610](https://togithub.com/software-mansion/react-native-screens/pull/1610)
- chore(deps): bump shell-quote from 1.6.1 to 1.8.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/software-mansion/react-native-screens/pull/1725](https://togithub.com/software-mansion/react-native-screens/pull/1725)
- chore: improve Android anim resource management by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1727](https://togithub.com/software-mansion/react-native-screens/pull/1727)
- chore: fix typo in build script by
[@&#8203;Jace-Samsung](https://togithub.com/Jace-Samsung) in
[https://github.com/software-mansion/react-native-screens/pull/1733](https://togithub.com/software-mansion/react-native-screens/pull/1733)
- chore: set library namespace in build script by
[@&#8203;Sprimage](https://togithub.com/Sprimage) in
[https://github.com/software-mansion/react-native-screens/pull/1717](https://togithub.com/software-mansion/react-native-screens/pull/1717)
- fix(iOS): back button not respecting style options by
[@&#8203;tyler-coleman](https://togithub.com/tyler-coleman) in
[https://github.com/software-mansion/react-native-screens/pull/1726](https://togithub.com/software-mansion/react-native-screens/pull/1726)
- chore: override `onCreate` in example apps by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1736](https://togithub.com/software-mansion/react-native-screens/pull/1736)
- feat: add `setText` command on SearchBar by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1739](https://togithub.com/software-mansion/react-native-screens/pull/1739)
- chore(deps): bump activesupport from 6.1.4.6 to 7.0.4.3 by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1744](https://togithub.com/software-mansion/react-native-screens/pull/1744)
- fix: do not apply namespace if it is not available in agp by
[@&#8203;WoLewicki](https://togithub.com/WoLewicki) in
[https://github.com/software-mansion/react-native-screens/pull/1749](https://togithub.com/software-mansion/react-native-screens/pull/1749)
- chore(deps): bump vm2 from 3.9.14 to 3.9.15 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/software-mansion/react-native-screens/pull/1752](https://togithub.com/software-mansion/react-native-screens/pull/1752)
- fix: use new rotation API for iOS 16 by
[@&#8203;kirillzyusko](https://togithub.com/kirillzyusko) in
[https://github.com/software-mansion/react-native-screens/pull/1732](https://togithub.com/software-mansion/react-native-screens/pull/1732)
- chore: improve Android 13 animations by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1756](https://togithub.com/software-mansion/react-native-screens/pull/1756)
- chore(deps): bump vm2 from 3.9.15 to 3.9.16 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/software-mansion/react-native-screens/pull/1755](https://togithub.com/software-mansion/react-native-screens/pull/1755)
- fix: ScreenStackHeaderConfig type by
[@&#8203;tomekzaw](https://togithub.com/tomekzaw) in
[https://github.com/software-mansion/react-native-screens/pull/1760](https://togithub.com/software-mansion/react-native-screens/pull/1760)
- feat: remove v4 from repo by
[@&#8203;WoLewicki](https://togithub.com/WoLewicki) in
[https://github.com/software-mansion/react-native-screens/pull/1790](https://togithub.com/software-mansion/react-native-screens/pull/1790)
- fix:Compatible with version 0.72 by
[@&#8203;NiuGuohui](https://togithub.com/NiuGuohui) in
[https://github.com/software-mansion/react-native-screens/pull/1765](https://togithub.com/software-mansion/react-native-screens/pull/1765)
- fix: proper handling of header events on Fabric and bumping examples
to 0.72 by [@&#8203;WoLewicki](https://togithub.com/WoLewicki) in
[https://github.com/software-mansion/react-native-screens/pull/1783](https://togithub.com/software-mansion/react-native-screens/pull/1783)
- feat: prevent native back button dismissal on iOS by
[@&#8203;WoLewicki](https://togithub.com/WoLewicki) in
[https://github.com/software-mansion/react-native-screens/pull/1773](https://togithub.com/software-mansion/react-native-screens/pull/1773)

#### New Contributors

- [@&#8203;Jace-Samsung](https://togithub.com/Jace-Samsung) made their
first contribution in
[https://github.com/software-mansion/react-native-screens/pull/1733](https://togithub.com/software-mansion/react-native-screens/pull/1733)
- [@&#8203;Sprimage](https://togithub.com/Sprimage) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/1717](https://togithub.com/software-mansion/react-native-screens/pull/1717)
- [@&#8203;tyler-coleman](https://togithub.com/tyler-coleman) made their
first contribution in
[https://github.com/software-mansion/react-native-screens/pull/1726](https://togithub.com/software-mansion/react-native-screens/pull/1726)
- [@&#8203;NiuGuohui](https://togithub.com/NiuGuohui) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/1765](https://togithub.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://togithub.com/software-mansion/react-native-screens/releases/tag/3.20.0)

[Compare
Source](https://togithub.com/software-mansion/react-native-screens/compare/3.19.0...3.20.0)

Minior release aimed at fixing
[#&#8203;1686](https://togithub.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://togithub.com/software-mansion/react-native-screens/releases/tag/3.19.0)

[Compare
Source](https://togithub.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
[@&#8203;WoLewicki](https://togithub.com/WoLewicki) in
[https://github.com/software-mansion/react-native-screens/pull/1582](https://togithub.com/software-mansion/react-native-screens/pull/1582)
- Make enabling device orientation notifications internal by
[@&#8203;kacperkapusciak](https://togithub.com/kacperkapusciak) &
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1596](https://togithub.com/software-mansion/react-native-screens/pull/1596)
- Fix back button menu for headerBackTitleVisible prop by
[@&#8203;kacperkapusciak](https://togithub.com/kacperkapusciak) in
[https://github.com/software-mansion/react-native-screens/pull/1646](https://togithub.com/software-mansion/react-native-screens/pull/1646)
- Override requiresMainQueueSetup in RNSScreenManager by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1670](https://togithub.com/software-mansion/react-native-screens/pull/1670)

#### 👍 Improvements

- Support for React Native 0.71.0 by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1631](https://togithub.com/software-mansion/react-native-screens/pull/1631)
- Clarify installation instructions for Android by
[@&#8203;evan1715](https://togithub.com/evan1715) in
[https://github.com/software-mansion/react-native-screens/pull/1633](https://togithub.com/software-mansion/react-native-screens/pull/1633)

#### 🔢 Miscellaneous

- Fix FabricTestExample fails to start due to new
`react-native.config.js` by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1624](https://togithub.com/software-mansion/react-native-screens/pull/1624)
- Examples stopped to work after RN issue by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1632](https://togithub.com/software-mansion/react-native-screens/pull/1632)
- Exclude android/.settings file form repo by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1642](https://togithub.com/software-mansion/react-native-screens/pull/1642)
- Bump deps & fix tvOS build by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1667](https://togithub.com/software-mansion/react-native-screens/pull/1667)
- Unify CI between platforms by
[@&#8203;kkafar](https://togithub.com/kkafar) in
[https://github.com/software-mansion/react-native-screens/pull/1676](https://togithub.com/software-mansion/react-native-screens/pull/1676)

#### New Contributors

- [@&#8203;evan1715](https://togithub.com/evan1715) made their first
contribution in
[https://github.com/software-mansion/react-native-screens/pull/1633](https://togithub.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 <[email protected]>
kkafar added a commit that referenced this pull request Dec 27, 2023
## Description

Since #1825 header config is no longer first child of a screen &
`hitTest:withEvent:` method assumed this invariant to be true.

Fixed that by using appropriate screen method instead of blind
assumption.

Fixes #1981

## Changes

* Fixed `hitTest:withEvent:` method by using `findHeaderConfig`
`RNSScreenView`'s method
* Improved `findHeaderConfig` method itself

## Test code and steps to reproduce

`Test1981`

## Checklist

- [x] Included code example that can be used to test this change
- [x] Ensured that CI passes
@t1gu1
Copy link

t1gu1 commented Jun 17, 2024

On the web, HeaderConfig must be first child of a Screen.
Otherwise A11y on web is kinda broken because the header is the last element of the DOM.

ja1ns pushed a commit to WiseOwlTech/react-native-screens that referenced this pull request Oct 9, 2024
…software-mansion#1883)

## Description

It looks like the change introduced in software-mansion#1825 has also came with a bug
where at least Search Bar was not working on Android.
The reason for that has turned out to be the wrong implementation of
`headerConfig` property on Android, which was looking for the first
child and assuming that it is ScreenStackHeaderConfig - which was wrong,
because the change in software-mansion#1825 has moved the ScreenStackHeaderConfig to the
bottom of the hierarchy.

Fixes not working Search Bar on Android (and some other unknown things
maybe?).

## Changes

From now `Screen#headerConfig` will traverse through all children of the
View and will check if one of them is `ScreenStackHeaderConfig`.

## Test code and steps to reproduce

You can check Test1166 if SearchBar is working right now; from now the
Search Bar in Example section should work properly.

## Checklist

- [ ] Ensured that CI passes
ja1ns pushed a commit to WiseOwlTech/react-native-screens that referenced this pull request Oct 9, 2024
…nsion#1995)

## Description

Since software-mansion#1825 header config is no longer first child of a screen &
`hitTest:withEvent:` method assumed this invariant to be true.

Fixed that by using appropriate screen method instead of blind
assumption.

Fixes software-mansion#1981

## Changes

* Fixed `hitTest:withEvent:` method by using `findHeaderConfig`
`RNSScreenView`'s method
* Improved `findHeaderConfig` method itself

## Test code and steps to reproduce

`Test1981`

## Checklist

- [x] Included code example that can be used to test this change
- [x] Ensured that CI passes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants