Skip to content

Bump react-native-screens from 4.27.0 to 4.30.0 - #933

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/npm_and_yarn/react-native-screens-4.30.0
Open

dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/npm_and_yarn/react-native-screens-4.30.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 26, 2026

Copy link
Copy Markdown
Contributor

Bumps react-native-screens from 4.27.0 to 4.30.0.

Release notes

Sourced from react-native-screens's releases.

4.30.0

What's changed

This release focuses on iOS 27 and iPhone Duo support in Stack v4. On iOS 26+ screens are now laid out under an opaque navigation bar and inset through the safe area instead of UIKit's extended-layout frame and useHeaderHeight reports the visible height of the bar while it is minimized. The new unstable_safeAreaEdges prop on ScreenStackItem lets a screen override the insets applied on iOS 26+, and opaque headers no longer minimize on scroll. Tabs.Host gains prominentScreenKey (iOS 27+), backed by prominentTabIdentifier, so a chosen tab stays visible when the tab bar minimizes.


iOS 26+: opaque headers in native stack (iOS)

Starting with iOS 26, Apple recommends against custom navigation bar backgrounds. Bars are transparent by default and content is meant to extend under them - see WWDC25: Build a UIKit app with the new design. Opaque headers (headerTransparent: false) aren't deprecated, but UIKit's support for them is getting worse:

  • On iOS 26, edgesForExtendedLayout (which we used to lay out the screen below an opaque header) doesn't position the screen correctly in landscape and in modals. We partially worked around this with a SafeAreaView (#3231).
  • On iPhone Duo (iOS 27) the same problem affects regular screens in portrait. The screen ended up partially under the header. Additionally, changes to internal hierarchy of the header introduced new bugs related to Pressables.
  • An opaque header's background doesn't reach the top of the screen and leaves a strip above it. When this was reported on the Apple Developer Forums, Apple didn't treat it as a bug and pointed to the guidance against custom bar backgrounds instead.

[!TIP] We recommend following Apple's guidance and using a transparent header on iOS 26+.

✅ Improvements

  • feat(iOS, Tabs): add prominentScreenKey so a chosen tab stays visible when the tab bar minimizes (#4724)
  • feat(iOS, Stack v4): add unstable_safeAreaEdges prop (#4872)
  • feat(iOS, Stack v4): prevent header minimization for opaque header (#4873)

🐞 Bugfixes

  • fix: fix broken types being published for tabs host and screen (#4871)
  • fix(iOS, Stack v4): use native screen origin as shadow tree offset (#4725)
  • fix(iOS, Stack v4): lay out screens under an opaque navigation bar on iOS 26+ (#4757)
  • fix(iOS, Stack v4): update header subview positions after navigation bar layout on iOS 26+ (#4758)
  • fix(iOS, Stack v4): report minimized header height on iOS 27+ via useHeaderHeight (#4734)
  • fix(iOS, Tabs): don't drop user selection of UISearchTab on mount transactions (#4862)
  • fix(iOS, Tabs): apply async-loaded icons to tabs that overflow into More on the UITab path (#4889)
  • fix(iOS, Tabs): filter UIKit's didSelectTab: for programmatic selection while More is active (#4890)
  • fix(Android): prevent legacy and tabs containers from delaying child pressed state (#4771)

4.29.0

What's changed

This release migrates the Tabs implementation on iOS 26.1+ to the UITab API and extends the Tabs component with several new props: tabBarHiddenAnimationEnabled, tabBarSidebarPreferredPlacement, automaticallyActivatesSearch (backed by UISearchTab) and custom drawable/symbol tab-bar icons with per-slot coloring and per-tab sizing. Header items in Stack v4 gain a visibilityPriority prop on iOS.

It also brings a number of fixes, most notably hardening of the Android fragment lifecycle (R8-safe restoration, orphaned fragment cleanup, no crash during instance teardown) and corrections to form sheet scroll view handling on iOS.

✅ Improvements

  • feat(iOS, Tabs): add tabBarHiddenAnimationEnabled prop (#4627)
  • feat(iOS, Tabs): add tabBarSidebarPreferredPlacement prop to choose between sidebar and tab bar on iOS 27 (#4668)
  • feat(iOS, Tabs): Migrate to UITab API for iOS >= 26.1 (#4675)
  • feat(iOS, Tabs): Use UISearchTab with automaticallyActivatesSearch prop (#4679)
  • feat(Tabs): custom drawable/symbol tab-bar icons — per-slot coloring, per-tab size, indicator sizing, iOS fallback (#4209)

... (truncated)

Commits
  • b0bae38 release: 4.30.0 (#4884)
  • 621ac37 fix(iOS, Tabs): filter UIKit's didSelectTab: for programmatic selection while...
  • 45d538d fix(iOS, Tabs): apply async-loaded icons to tabs that overflow into More on t...
  • 5939f6b fix(e2e): Patch backported e2e (#4886) (#4887)
  • 8efcdbf feat(iOS, Stack v4): prevent header minimization for opaque header (#4873) (#...
  • ff151c7 feat(iOS, Stack v4): add unstable_safeAreaEdges prop (#4872) (#4882)
  • a01ea8f fix(iOS, Stack v4): report minimized header height on iOS 27+ via `useHeaderH...
  • 2a718b1 fix(iOS, Stack v4): update header subview positions after navigation bar layo...
  • e62d0bc fix(iOS, Stack v4): lay out screens under an opaque navigation bar on iOS 26+...
  • 411d2e5 feat(iOS, Tabs): add prominentScreenKey so a chosen tab stays visible when ...
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [react-native-screens](https://github.com/software-mansion/react-native-screens) from 4.27.0 to 4.30.0.
- [Release notes](https://github.com/software-mansion/react-native-screens/releases)
- [Commits](software-mansion/react-native-screens@4.27.0...4.30.0)

---
updated-dependencies:
- dependency-name: react-native-screens
  dependency-version: 4.30.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update Javascript code labels Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update Javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants