WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Releases: software-mansion/react-native-screens

4.19.0

15 Dec 19:24
f65b107

Choose a tag to compare

What's Changed

Minor release. It comes with many improvements & bug fixes. Notably:

  1. bottomAccessory support for native tabs on iOS,
  2. special effects support for tabs on Android,
  3. support for synchronous state updates (behind a feature flag),
  4. quite few more.

⚠️ This release also removes long-deprecated native-stack v5 code from the repository.

See the full change set below 👇🏻

Improvements

  • feat: Remove native-stack v5 from screens repo by @kmichalikk in #3433
  • feat(iOS, Tabs): add bottomAccessory support by @kligarski in #3288
  • feat(Android, Tabs): Add special effects to bottom tabs on Android by @Ubax in #3337
  • feat(iOS, SplitView): Add support for primaryBackgroundStyle prop by @t0maboro in #3320
  • feat(Stack): Add support for synchronous state updates on fabric for native stack by @t0maboro in #3282
  • feat(iOS, SafeAreaView): use synchronous state updates by @kligarski in #3335
  • feat(iOS, SplitView): Add an option for changing number of columns dynamically by @t0maboro in #3339
  • feat(iOS, SplitView): Migrate to new invalidate method by @t0maboro in #3364
  • feat(iOS, Tabs): add prop to hide the tab bar by @kligarski in #3343
  • fix(iOS, Stack): handle icon rendering modes for bar button items by @kligarski in #3347
  • feat(Android, Tabs): add prop to hide the tab bar by @kligarski in #3344
  • feat: Bring back gestureResponseDistance on iOS 26 by @kmichalikk in #3353
  • feat(iOS, Stack): Add controller invalidating to new stack impl by @t0maboro in #3219
  • feat: add snapshotAfterUpdates property to RNSScreenView by @bartlomiejbloniarz in #3296
  • feat(iOS, Stack, Tabs, experimental): add prop to override user interface style by @kligarski in #3342
  • fix(Android, Stack): Moving formsheet above keyboard by @t0maboro in #3248
  • chore: Update installation steps in docs by @t0maboro in #3391
  • feat(iOS): add missing features to bar button items by @Ubax in #3396
  • feat(Tabs): special effects refactor by @kligarski in #3440
  • chore: bump FabricExample & lib to [email protected] by @t0maboro in #3456
  • refactor: Remove codegen-related deep imports by @t0maboro in #3458

Bug fixes

  • fix(iOS, SplitView): Track visible columns from delegate by @t0maboro in #3319
  • fix(iOS): Verify that ScrollView gesture hasn't begun when triggering pan gesture by @kmichalikk in #3271
  • fix(iOS, SplitView): Remove tracking presentation layer in favor of sync state update by @t0maboro in #3285
  • fix(iOS, Tabs): fix problems with dynamically changing title, icon, systemItem by @kligarski in #3333
  • fix(iOS, FormSheet): Always use absolute positioning by @t0maboro in #3351
  • fix(Android, Stack): Make MountingCoordinator vector access thread safe by @t0maboro in #3363
  • fix(iOS, Stack): Prevent overriding invalidate callback on Fabric by @t0maboro in #3359
  • fix: RCTViewComponentViewProtocol -> RCTComponentViewProtocol by @t0maboro in #3365
  • fix(iOS, FullWindowOverlay): Show overlay when app returns from background by @t0maboro in #3369
  • fix(iOS): load header items icons synchronously when feasible by @johankasperi in #3355
  • fix(JS, Stack): consider default value for stackPresentation and headerConfig.hidden in ScreenStackItem by @kligarski in #3374
  • fix(iOS, FullWindowOverlay): Move show logic to didMoveToWindow by @t0maboro in #3379
  • fix(Android, Stack): Fix flex-end positioning in formSheet by @t0maboro in #3346
  • fix: circular import in src/types.tsx by @kligarski in #3394
  • fix: Disable interactions on minimal required subroot by @kmichalikk in #3311
  • fix(Android, SAV+Tabs+Stack v4): fix CustomToolbar's insets handling to use insets received from ancestor views by @kligarski in #3240
  • fix(iOS): fix header height in modal, add TestHeaderHeight by @kligarski in #3393
  • fix(Android, Stack): Fix FormSheet - SafeAreaView integration by @t0maboro in #3336
  • fix(Android, Tabs): Fix tabs icons loading in release mode by @t0maboro in #3413
  • fix(Android, Stack): incorrect header height values by @kligarski in #3402
  • fix(iOS, Tabs): remove incorrect warning on none environment in Bottom Accessory by @kligarski in #3416
  • fix(iOS): Distinguish horizontal and vertical scroll in gesture failure requirements by @kmichalikk in #3420
  • fix(Android): layout shift on orientation change by @kmichalikk in #3295
  • fix(iOS, Tabs): tab screen height when tabs are rendered dynamically by @kligarski in #3425
  • fix(iOS, Stack): delay setting navigation bar visibility to mitigate bar button bug on iOS 26 by @kligarski in #3422
  • fix(Android, Stack): Constraint FormSheet height by top inset by @t0maboro in #3404
  • fix(SplitView, Android & Web): move split view warnings to components by @Ubax in #3431
  • fix(examples): Stop triggering CPU intensive tasks in top level scope in example apps by @kkafar in #3432
  • chore: fix imports in bottom accessory by @kligarski in #3439
  • fix(iOS, FormSheet): Add fallback for searching ScrollView which is inside SAV by @t0maboro in #3479
  • fix(Android, FormSheet): Fix pressables with TextInput for Fabric by @t0maboro in #3435
  • fix(JS, stack): Fix push fail after 3rd screen in JS stack by @kmichalikk in #3450
  • fix(Android, Stack, Fabric): Fix jumping content in nested stack for Fabric by @t0maboro in #3442
  • fix(iOS, Tabs): overrideScrollViewContentInsetAdjustmentBehavior in managed tabs by @kligarski in #3441
  • fix(iOS, Stack, Fabric): Pressable hitSlop in header subviews on Fabric by @kligarski in #3446
  • fix(iOS 26, Stack): center view inside bar button item by @kligarski in #3449
  • fix(iOS, Tabs): bottom accessory opacity on appearance change by @kligarski in #3467
  • fix(iOS, FormSheet): Allow handling dynamic content size in FormSheet since 0.82 with synchronous updates enabled by @t0maboro in #3454
  • fix(iOS, Stack): Fix enum conversion for landscape right by @t0maboro in #3474
  • fix(Android): crash on hot reload when FabricUIManagerBinding is null by @kimchi-developer in #3475

Misc

Read more

4.18.0

22 Oct 15:31
f6be5f3

Choose a tag to compare

Minor release with important changes in bottom tabs icons API, recently added header items API and few more.

What's Changed

🟢 Improvements / Changes

  • refactor(Tabs): Refactor APIs for icons by @t0maboro in #3214
  • fix(iOS): accept multiple attributes for menu items by @satya164 in #3308
  • refactor(iOS): add type to header bar button items by @johankasperi in #3306
  • refactor(iOS): rename label -> title in context of header items API by @kkafar in #3318
  • refactor!(iOS): move changesSelectionAsPrimaryAction to menu button item by @kkafar in #3331

🐞 Bug fixes

  • fix(iOS, Tabs): use default UITabBarItem's title font as a base for font configuration by @kligarski in #3310
  • fix(iOS, Tabs): tabBarTintColor on iPadOS by @kligarski in #3314
  • fix: prevent freeze from unmounting native components by @kkafar in #3324
  • fix(iOS): handle variable icons in header items by @johankasperi in #3323

🔢 Misc

  • chore: Remove orientation settings in BottomTabsTest by @kmichalikk in #3312
  • chore: use label instead of title in example using react-navigation by @kkafar in #3329
  • release: 4.18.0 by @kkafar in #3332

Full Changelog: 4.17.1...4.18.0

4.17.1

15 Oct 22:34
b3267df

Choose a tag to compare

Patch release with fix for failing iOS build in release mode.

What's Changed

  • fix(iOS): build error in release mode - imageLoader not defined by @kkafar in #3300

Full Changelog: 4.17.0...4.17.1

4.17.0

15 Oct 17:09
69d37f3

Choose a tag to compare

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 [email protected] by @kligarski in #3259
  • fix(Android): sync architectures after bump to [email protected] 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

4.16.0

04 Sep 14:04

Choose a tag to compare

This release introduces support for dark mode in Bottom Tabs on Android, new search bar placements and search bar integration with the toolbar on iOS 26.

Caution

In this release, library installation steps for Android have been modified - please refer to the "Installation" section of README and this PR for more details.

Important

In order to align our library with native iOS 26 behavior, we've decided to change default placement value in RNSSearchBar to 'automatic'. This change will make it easier for users to adopt the new integrated search bar on iOS 26.
Additionally, we've fixed the default value for hideWhenScrolling prop in new architecture to match the old architecture and native UIKit behavior.

What's Changed

🟢 Improvements

  • feat(iOS, Tabs): add shadow color to appearance by @Ubax in #3180
  • feat(iOS, Stack v4): bring back view recycling for ContentWrapper by @kligarski in #3187
  • feat(Android): Support dark mode in android BottomTabs by @kmichalikk in #3167
  • feat(iOS 26, Stack v4): support for new search bar placements, integration with toolbar by @kligarski in #3168
  • feat!(iOS, Stack v4): change search bar related prop defaults by @kligarski in #3186

🐞 Bug fixes

  • fix(Android): add custom fragment factory & modify library installation steps to prevent on-restoration crashes by @Skalakid in #3089

🔢 Misc

  • chore(FabricExample): bump react-native-safe-area-context by @kmichalikk in #3175
  • refactor: review of #3073 - rename few methods, move update logic to shadow state proxy by @kkafar in #3176
  • chore(deps): bump RN to 0.81.1 in lib & apps by @kkafar in #3185
  • chore(iOS): add RNS_IPHONE_OS_VERSION_AVAILABLE macro by @kligarski in #3171

New Contributors

Full Changelog: 4.15.4...4.16.0

4.15.4

28 Aug 07:36

Choose a tag to compare

Patch version fixing a bug on iOS with back button title disappearing when stack was used in bottom tabs.

What's Changed

  • fix(iOS, Stack v4 + Tabs): back button title disappearing when nested in tab by @kligarski in #3166

Full Changelog: 4.15.3...4.15.4

4.15.3

26 Aug 07:24

Choose a tag to compare

Patch version fixing bugs related to systemItem on iOS Bottom Tabs.

What's Changed

Full Changelog: 4.15.2...4.15.3

4.15.2

22 Aug 10:06

Choose a tag to compare

Patch version downgrading Coil library to resolve Android build issues on RN 0.79 #3157

What's Changed

  • fix(android): Fix RNScreens 4.15 build on android by @t0maboro in #3157

Full Changelog: 4.15.1...4.15.2

4.15.1

21 Aug 09:21

Choose a tag to compare

Patch version with fixing imports for backward compatibility #3153

What's Changed

  • fix(JS): Keep relative imports for backward compatibility by @t0maboro in #3153

Full Changelog: 4.15...4.15.1

4.15.0

20 Aug 13:07
4672e9c

Choose a tag to compare

This release includes enhancements to bottom tabs, such as support for loading icons from external sources on Android, a refactored tab bar appearance API, and added support for orientation and system items on iOS. It also contains some improvements related to the new experimental native components like new native stack and split view.

What's Changed

🟢 Improvements

  • feat(iOS, Tabs, ScreenStack): orientation for Tabs and ScreenStack by @kligarski in #3014
  • feat(iOS, SplitView): Add support for orientation on SplitViewHost by @t0maboro in #3106
  • feat(android, Tabs): Loading bottom tab icons from external source by @t0maboro in #3143
  • feat(iOS, Tabs): support system items on iOS by @Ubax in #3149
  • feat!(iOS, Tabs): support for appearance types, layouts and states by @kligarski in #3078

🐞 Bug fixes

  • fix(iOS, SplitView): Update the logic for syncing ShadowNode state on transition by @t0maboro in #3073
  • fix(iOS, SplitView): Align width of Stack component with SplitView column before transition by @t0maboro in #3097
  • fix(iOS 26, Stack v4): fix RNSScreen being partially obstructed by UINavigationBar on iOS 26 by @kligarski in #3111
  • fix(iOS, Stack v4): crash on modal dismiss gesture with Pressable by @kligarski in #3133
  • fix(iOS): Disable interactiveContentPopGestureRecognizer by @kmichalikk in #3141
  • fix(iOS): Disable second transition coming from gestures when one is in progress by @kmichalikk in #3142
  • fix(iOS, Tabs): Updated logic for breaking retain cycles by @t0maboro in #3099
  • fix(android, Tabs): Fix loading external resources in release mode by @t0maboro in #3148

🔢 Misc

  • chore(iOS, SplitView): Add more tests for SplitView - NativeStack integration by @t0maboro in #3112
  • chore: Update imports after 0.81 upgrade by @t0maboro in #3145
  • chore: Hide native logs by @Ubax in #3144

Full Changelog: 4.14.1...4.15.0