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
andhideNavigationBar
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 toautoCapitalize
prop inSearchBar
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
tosystemBackgroundColor
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
- @sharifhh made their first contribution in #3201
- @maxencehenneron made their first contribution in #3239
- @douglowder made their first contribution in #3236
- @johankasperi made their first contribution in #2987
Full Changelog: 4.15...4.17.0