github software-mansion/react-native-screens 5.0.0-alpha.3

pre-release4 hours ago

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, contentInsetEnd for 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 statusBarScrimColor for the header by @kligarski in #4533
  • feat(iOS, Stack v5): Add backButtonTitle and backButtonDisplayMode by @kmichalikk in #4542
  • feat(iOS, Stack v5): Add backButtonMenuEnabled prop 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 prompt to 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 hidesSharedBackground prop to header items by @kmichalikk in #4592
  • feat(iOS): add support for SPM by @kacperzolkiewski in #4593
  • feat(iOS, Tabs): add tabBarHiddenAnimationEnabled prop (#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 defaultRouteName type 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 doOnStart callback 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 RNSFormSheetConfigurationApplicator stateless 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 SplitViewController from ReactEventEmitter & ShadowState by @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

Full Changelog: 5.0.0-alpha.2...5.0.0-alpha.3

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

NewReleases is sending notifications on new releases.