npm react-native-screens 4.17.0

latest releases: 4.18.0-nightly-20251015-6fc018367, 4.17.1
12 hours ago

Minor release including:

  • 👉🏻 Important patches for iOS 26 behaviour
  • 👉🏻 New API for specifying native header items on iOS by @johankasperi,
  • 👉🏻 New experimental safe area component handling native header / bottom tabs, etc.,
  • 👉🏻 Support for UIScrollEdgeEffect,
  • 👉🏻 Support for "glassy" form sheets on iOS 26,
  • 👉🏻 Many other important patches & improvements.

See the full list of PRs below 👇🏻

What's Changed

🟢 Improvements

  • feat(iOS): support UIBarButtonItem in header by @johankasperi in #2987
  • feat(iOS): add support for using native behavior in hideNavigationBar, obscureBackground props in SearchBar by @kligarski in #3211
  • feat: safe area component PoC by @kligarski in #3208
  • feat(iOS): safe area component for iOS by @kligarski in #3209
  • feat(iOS): Handle interactiveContentPopGesture for iOS 26 by @kmichalikk in #3173
  • feat(iOS): Add scroll edge effects by @kmichalikk in #3212
  • feat(Android, Tabs): Update approach for loading external sources for tab icons by @t0maboro in #3216
  • feat(Android, Tabs): safe area component for Android by @kligarski in #3215
  • feat(iOS): Bring back fullScreenSwipeEnabled prop by @kmichalikk in #3242
  • feat(iOS): Support UITabBarController.Mode for iPad sidebar feature by @douglowder in #3236
  • feat(iOS, SplitView): SplitView synchronous updates by @t0maboro in #3274
  • feat: move SafeAreaView component from /private to /experimental by @kkafar in #3286

🐞 Bug fixes

  • fix(iOS): fix possible build issues for Mac Catalyst due to implicit conversions by @kkafar in #3202
  • fix(iOS): Prevent delay when dismissing transparentModals by @kmichalikk in #3189
  • fix(iOS, Stack v4): ensure consistent defaults for obscureBackground and hideNavigationBar by @kligarski in #3199
  • fix(iOS 26, Stack v4): remove workaround for content under header in modal by @kligarski in #3206
  • fix(iOS, Tabs): Implement missing method from RNSViewControllerInvalidating protocol for Screen by @t0maboro in #3227
  • fix(iOS, Stack): Deduplicate contentStyle on Screen and ScreenContentWrapper by @t0maboro in #3228
  • fix(Android): header config shadow node has wrong origin when translucent == true by @maxencehenneron in #3239
  • fix(iOS, Stack v4): use SafeAreaView in Stack v4 to fix content rendering under UINavigationBar on iOS 26 by @kligarski in #3231
  • fix(Android, Stack v4): fix canceling search on Android by @kligarski in #3255
  • fix(Android, Fabric, Stack v4): add autoFocus to SearchBar Fabric spec file by @kligarski in #3258
  • fix(Android, Tabs): tab label flashing on tab change in labeled visbility mode by @kligarski in #3260
  • fix(iOS, Stack v4): add systemDefault option to autoCapitalize prop in SearchBar by @kligarski in #3251
  • fix(Android, Stack): Add logic for reattaching mounting override delegate by @t0maboro in #3241
  • feat!(Android, Stack v4): remove native code/deps related to props deprecated by edge-to-edge enforcement by @kligarski in #3264
  • fix(iOS): Fix content pop with horizontal scroll by @kmichalikk in #3265
  • fix(Android, SplitView): Add fallback for SplitView import error by @t0maboro in #3277
  • fix(Android,Tabs): fix usage of transitive R class attr:colorError with material:1.13.0 by @Ubax in #3280
  • fix(iOS): Clear _shouldUpdateScrollEdgeEffects flag in RNSScreen.finalizeUpdates by @kmichalikk in #3283
  • Fix custom screen swipe transitions by @piaskowyk in #3254
  • fix(iOS, Tabs): change whiteColor to systemBackgroundColor in tabs background workaround by @kligarski in #3279
  • fix(Android, FormSheet): Add fallback for undefined corner radius by @t0maboro in #3291
  • fix(Android): crash API 25 when going back from screen with flat list by @maciekstosio in #2964
  • fix(iOS, Tabs): update tab bar item only when necessary by @kligarski in #3290

🔢 Misc

  • chore: create react-native-screens/experimental submodule by @kkafar in #3222
  • chore: move gamma symbols into experimental package by @kkafar in #3223
  • docs: fix testimonial name by @ferrannp in #3194
  • Update README.md by @sharifhh in #3201
  • chore(deps): bump brace-expansion from 1.1.11 to 1.1.12 in /Example by @dependabot[bot] in #3151
  • chore(iOS): remove outdated SDK version checks (iOS < 15.1) by @kligarski in #3204
  • refactor: review 3097 - make split screen controller & component the frame correction provider by @kkafar in #3179
  • chore: Configure OIDC for nightly builds by @kmagiera in #3220
  • chore(deps): bump rexml from 3.3.9 to 3.4.2 in /FabricExample by @dependabot[bot] in #3225
  • refactor: move types related to ScreenStackHost & StackScreen to separate files by @kkafar in #3224
  • chore: move gamma components into dedicated directories by @kligarski in #3243
  • chore: Move ScrollEdgeEffectApplicator to helpers/scroll-view, backport by @kmichalikk in #3253
  • chore(Example, Tabs): use SAV in BottomTabsContainer by @kligarski in #3256
  • chore: bump FabricExample & lib to react-native@0.82 by @kligarski in #3259
  • fix(Android): sync architectures after bump to react-native@0.82 by @kligarski in #3261
  • chore(deps): bump rexml from 3.3.9 to 3.4.2 in /TVOSExample by @dependabot[bot] in #3262
  • chore: Move BottomTabs props configuration outside of BottomTabsContainer by @kmichalikk in #3246
  • chore: Uncomment tabBarMinimizeBehavior config in TestSafeAreaViewIOS by @kmichalikk in #3247
  • chore(deps): bump rexml from 3.3.9 to 3.4.2 in /Example by @dependabot[bot] in #3267
  • chore(iOS): Add test case for scrollEdgeEffects by @kmichalikk in #3244
  • feat(iOS): Implement ScrollViewProviding protocol by @kmichalikk in #3238
  • test(iOS, SplitView): Add example for testing performance by @t0maboro in #3287
  • refactor(Android, Tabs): Move image loader logic to TabsImageLoader by @t0maboro in #3292

New Contributors

Full Changelog: 4.15...4.17.0

Don't miss a new react-native-screens release

NewReleases is sending notifications on new releases.