What's Changed
This is the third alpha release of react-native-screens 5.0.0, and it brings many new header customization options to Stack v5 on both Android and iOS, along with new features and a series of fixes for FormSheet v5 on Android. It also adds support for Swift Package Manager, as well as a number of stability fixes for Stack and Tabs.
✅ Improvements
- feat(Android, FormSheet v5): Separate onDismiss and onNativeDismiss events by @t0maboro in #4404
- feat(Android, Stack v5): expose overflow icon customization with tint configuration by @kligarski in #4434
- feat(Stack v5, iOS): Add identifier for header items animation by @kmichalikk in #4437
- feat(Android, Stack v5): add support for subtitle and title/subtitle positioning by @kligarski in #4387
- feat(Android, Stack v5): add title/subtitle font customization by @kligarski in #4415
- feat(Android, Stack v5): expose maxLines prop, add workaround for subtitle runtime change by @kligarski in #4436
- feat(Android, Stack v5): expose
contentInsetStart,contentInsetEndfor toolbar by @kligarski in #4516 - feat(Android, Stack v5): header background color customization by @kligarski in #4522
- feat(Android, FormSheet v5): Add support for sheet stacking behavior by @t0maboro in #4409
- feat(Android, Stack v5): expose
statusBarScrimColorfor the header by @kligarski in #4533 - feat(iOS, Stack v5): Add backButtonTitle and backButtonDisplayMode by @kmichalikk in #4542
- feat(iOS, Stack v5): Add
backButtonMenuEnabledprop for iOS header by @kmichalikk in #4544 - feat(Android, Stack v5): support for host-level color scheme configuration by @kligarski in #4556
- feat(iOS, Stack v5): Add
promptto stack header by @kmichalikk in #4590 - feat(iOS, Stack v5): Add (large) (sub)title appearance to header by @kmichalikk in #4560
- feat(Android, Stack v5): preserve toolbar menu state across header rebuilds by @kligarski in #4579
- feat(iOS, Stack v5): Add
hidesSharedBackgroundprop to header items by @kmichalikk in #4592 - feat(iOS): add support for SPM by @kacperzolkiewski in #4593
- feat(iOS, Tabs): add
tabBarHiddenAnimationEnabledprop (#4627) by @ilcato in #4632
🐞 Bug fixes
- fix(Android): use-after-free of RNSScreenRemovalListener registered as mounting override delegate by @mbSmaga in #4413
- fix(Android, Stack v5): change order of toolbar menu item prop application to ensure correct overflow behavior by @kligarski in #4507
- fix(Android, Tabs): prevent native view state restoration in TabsScreen by @kkafar in #4526
- fix(Android, Stack v5): prevent native view state restoration in stack screens by @kkafar in #4527
- fix(Example): Upgrade kotlin to 2.3.* by @t0maboro in #4536
- fix(Example): SAV import and
defaultRouteNametype in TabsContainer by @kligarski in #4541 - fix(Android, Tabs): expose tab item testID as viewIdResourceName by @mackbrowne in #4497
- fix(Example): update TestStackHeaderTitleAppearanceAndroid's route configs to new API by @kligarski in #4548
- fix(iOS, Stack v5): Refactor header coordination to hide header when no headerConfig is provided by @kmichalikk in #4535
- fix(Android, Stack v4): prevent adding preloaded and dismissed fragments when popping from opaque to translucent screen by @kligarski in #4571
- fix(Android, Tabs): use ViewIdGenerator to identify MenuItems instead of sequential ids by @Loloekk in #4558
- fix(Android, Stack v4+): append SwipeRefreshLayout transition filler by @drhops in #4519
- fix(Android, FormSheet v5): Recreate the dialog on every presentation cycle by @t0maboro in #4565
- fix(Android, FormSheet v5): Resolve sheet metrics in the measure pass to support orientation changes by @t0maboro in #4566
- fix(Android, Stack v5): handle forceLayout to ensure Stack is properly laid out on configuration change by @kligarski in #4580
- fix(Android, Tabs): handle forceLayout to ensure tab bar is properly laid out after configuration change by @kligarski in #4582
- fix(Android, Stack v5): scope header back button to its own stack by @kkafar in #4578
- fix(Android, FormSheet v5): Calculate detents relatively to the native container's size by @t0maboro in #4584
- fix(Android, FormSheet v5): Prevent translation to be overridden by
doOnStartcallback by @t0maboro in #4581 - fix(iOS): skip form sheet scroll view frame correction once the screen is invalidated by @saddlepaddle in #4652
- fix(Android, FormSheet v5): Move the sheet above the keyboard by @t0maboro in #4573
🔢 Misc
- chore(test): Android test-stack-toolbar-nested-menu-android coverage by @LKuchno in #4448
- chore(test): e2e test for test-stack-toolbar-menu-groups-android by @LKuchno in #4428
- chore(test, Android): add e2e test for Stack v5 prevent native dismiss (single stack) by @LKuchno in #4482
- chore(test): e2e test for test-stack-toolbar-menu-disabled-android by @LKuchno in #4464
- chore(iOS): silence release build warnings by @Loloekk in #4486
- chore(test): e2e test for test-stack-prevent-native-dismiss-nested-stack by @LKuchno in #4494
- refactor(FabricExample): migrate from component to element by @Loloekk in #4495
- chore(test): e2e test for test-stack-lift-on-scroll-android by @LKuchno in #4493
- chore(iOS): silence release build warnings for v5 components by @Loloekk in #4508
- chore(test): add script to create test screen directories by @LKuchno in #4318
- chore(test): mark stack overflow icon e2e coverage as not automated by @LKuchno in #4525
- chore(test): e2e test for test-stack-toolbar-menu-batch-commands-android by @LKuchno in #4509
- chore(docs): Update sponsors section by @m-bert in #4532
- chore(test): e2e test for test-stack-toolbar-menu-show-as-action-android by @LKuchno in #4520
- chore(docs): add privacy policy link to footer by @Sullyvahnn-v2 in #4506
- chore(docs): Add JSON-LD and llms.txt for AI search by @halskiszymon in #4529
- chore(test): document non-automatable Stack v5 e2e scenarios by @LKuchno in #4528
- chore: aggregate dependabot updates by @kkafar in #4543
- chore(test): e2e test for test-tabs-bottom-accessory-visibility-ios by @LKuchno in #4534
- chore(test): e2e test for test-stack-header-item-identifier-ios by @LKuchno in #4546
- chore(test): manual scenario for test-svm-configures-scroll-view by @LKuchno in #4547
- refactor(iOS): polish silence of warnings for v5 components by @Loloekk in #4562
- feat(release-tests): prepare setup script for automated app builds by @Loloekk in #4474
- refactor(iOS, FormSheet v5): Make
RNSFormSheetConfigurationApplicatorstateless by @t0maboro in #4567 - chore(FormSheet v5): Update testing scenarios and layout visibility in examples by @t0maboro in #4568
- chore(test): use a bundled image in the toolbar menu test-stack-toolbar-menu-batch-commands-android by @LKuchno in #4572
- chore(test): update tabs and stack scenarios after 4.27.0 / 5.0.0-alpha.2 release tests by @LKuchno in #4575
- test(FormSheet v5): Add test for ScrollView nested in FormSheet by @t0maboro in #4585
- chore: add support for react-native@0.87.0 by @kacperzolkiewski in #4596
- chore: remove redundant main-labs from CI workflows by @kacperzolkiewski in #4614
- feat(JS): add stack state config, update tabs one by @Loloekk in #4609
- refactor(iOS): clean up conversion logic by @Loloekk in #4576
- chore(test): replace local e2e helpers with shared e2e-utils exports by @LKuchno in #4569
- chore(iOS): add logs for invalid SFSymbols and xcassetss name by @Loloekk in #4617
- chore(deps): bump joi from 17.13.4 to 17.13.7 in /docs by @dependabot[bot] in #4631
- chore: aggregate dependabot updates by @kkafar in #4630
- refactor(iOS, SplitView): Decouple
SplitViewControllerfromReactEventEmitter&ShadowStateby @t0maboro in #4603 - refactor(iOS, SplitView): Read Host configuration through providers by @t0maboro in #4607
- chore(TVOSExample): bump RN to 0.87.1 by @kacperzolkiewski in #4657
- chore(FabricExample): bump libs to versions that support RN 0.87 by @kacperzolkiewski in #4658
New Contributors
- @mbSmaga made their first contribution in #4413
- @Sullyvahnn-v2 made their first contribution in #4506
- @halskiszymon made their first contribution in #4529
- @mackbrowne made their first contribution in #4497
- @drhops made their first contribution in #4519
- @kacperzolkiewski made their first contribution in #4596
- @ilcato made their first contribution in #4632
- @saddlepaddle made their first contribution in #4652
Full Changelog: 5.0.0-alpha.2...5.0.0-alpha.3