Releases: software-mansion/react-native-screens
4.0.0
What's Changed
Stable 4.0.0 🎉 Huge thanks & shoutout to all the contributors, issue reporters & the team of react-native-screens
.
While these release notes might be daunting, we have a blog incoming that should lay out all the changes nicely, in more digestive form.
Cheers!
Important
Highlights
- Refactor of
formSheet
API for Android (atm. it comes with few limitations, see very bottom of these notes 👇🏻 ) react-native-screens/native-stack
(native stack v5) is now marked for removal- Few props changed names & default values, e.g.
simple_push
transition uses now shadow by default - Raw native components are no longer part of public API
- Preload support for native-stack in
react-navigation
- native header now uses flexbox model (in VDOM) - long story short - long titles are now truncated properly
- Tons of fixes dedicated for Fabric support
- Support for
react-navigation
v7 (limited to! older versions of react-navigation are no longer supported on 4.x line) - iOS custom animations got refactored and should look a lot more like the native defaults (especially
simple_push
) - few more things.... 👇🏻
👍 Improvements / API changes
- feat!: iOS custom detents & Android form sheets by @kkafar in #2045
- refactor!: remove deprecated ios stack animation by @maciekstosio in #2361
- refactor!: add "index" suffix to selected sheet props & add better error handling by @kkafar in #2380
- fix(Android)!: overflowing text in native header by @kkafar in #2325
- feat: allow preload using activityState by @maciekstosio in #2389
- feat!: expose library
compatibilityFlags
with new flag regarding header implementation by @kkafar in #2411 - feat!: remove
shouldUseActivityState
flag by @kkafar in #2414 - docs: Add landing page for React Native Screens by @patrycjakalinska in #2240
- feat!: remove native components from public API by @maciekstosio in #2412
- refactor!: drop support for native-stack v5 by @kkafar in #2373
- feat(iOS)!: change default of
fullScreenSwipeShadowEnabled
to true by @kkafar in #2481 - feat(iOS)!: change default animation curve & duration by @kkafar in #2477
- feat(iOS): Implement blurEffect for new architecture by @janicduplessis in #2207
- feat: add support for dynamic frameworks by @WoLewicki in #2315
- feat(Android): add ios like
ios_from_left
slide animation by @chrispader in #2328 - feat: add basic React Server Component support by @EvanBacon in #2170
- feat: add monorepo support for Android builds by @kkafar in #2352
- feat: add compat mode for previously removed formSheet prop values by @kkafar in #2356
- feat: expose
none
&largest
values forsheetLargestUndimmedDetent
prop by @kkafar in #2359 - feat: add stub implementations for
ScreenFooter
for web by @kkafar in #2369 - feat: add stub implementations for
ScreenContentWrapper
for web by @kkafar in #2368 - feat(iOS): sheetInitialDetent support by @alduzy in #2367
- chore: add support for 0.76-rc.6 by @maciekstosio in #2407
- feat: add a ScreenStackItem component by @satya164 in #2433
🐛 Bug fixes
- fix!: always set Zindex to undefined for InnerScreen by @adrianryt in #2351
- fix(iOS): onNativeDismissCancelled called too early during modal dismissal by @zetavg in #2129
- fix(android): disappearing search icon on opening transparent modal by @alduzy in #2274
- fix(Android,Fabric): add missing
DoNotStrip
annotation to JNI-accessed methods by @kkafar in #2290 - fix(Android,Fabric,bridgeless): crash on RN hot reload in dev mode when redbox in presentation by @kkafar in #2289
- fix(Android): incorrect childCount in removeViewAt when using flatlist on fabric by @alduzy in #2307
- fix(iOS): Change import of RectUtil.h file to react/renderer/components by @tboba in #2319
- fix(Android,Fabric): pressable on
Screen
loses focus on pointer movement by @kkafar in #2292 - fix: do not force set
translucent
nav bar (until it's explicitly specified) by @kirillzyusko in #2301 - fix(Android): getChildDrawingOrder when using refreshcontrol by @BenIrving in #2330
- fix(Android): Request layout manually for CustomToolbar below Android API 29 by @tboba in #2332
- fix(iOS): modal not presenting when deep in stack by @maksg in #2335
- fix(Android): minSdkVersion fallback to default 21 but RN 0.74 require minSdkVersion 23 by @adrianryt in #2346
- fix(iOS): right header incorrect position by @alduzy in #2316
- fix: bring back headers when using "modal" presentation on Android by @kkafar in #2372
- fix: prevent crash when there is no appearance model built by @kkafar in #2375
- fix: align units of sheet corner radius in different callsites by @kkafar in #2378
- feat: assert that detents array is sorted in dev mode by @kkafar in #2381
- fix(iOS): full screen modal crash on paper by @maksg in #2336
- fix: check for surplus values in sheet detents array not only in dev mode by @kkafar in #2387
- fix(Android): do not crash in case background can not be casted to MaterialShapeDrawable by @kkafar in #2388
- fix(iOS): header subviews layout on tab change by @alduzy in #2385
- fix(Android): going back on fabric with nested list by @alduzy in #2383
- fix:
HeaderConfig
impacts layout ofScreen
's contents by @alduzy in #2395 - fix(Android): modal insets not applying by @alduzy in #2371
- fix(Android,Fabric): invalid behaviour of
fitToContents
sheet detent by @kkafar in #2398 - fix(iOS,Fabric): prevent memory leak by calling
invalidate
on deleted screens by @kkafar in #2402 - fix(Android): going back on fabric with horizontal list crash by @alduzy in #2403
- fix(iOS): header snapshots not working by @alduzy in #2393
- fix(iOS):
activityState
regression check false-positive by @kkafar in #2404 - fix(iOS): do not force API user to set
activityState
by @kkafar in #2406 - fix: prevent Require cycles warning by @alduzy in #2410
- fix(iOS):
extraLight
blur not working by @maksg, @kkafar in #2338 - fix(Android): crash on tab change with open form sheet by @kkafar in #2416
- fix(iOS): FullWindowOverlay layout height by @alduzy in #2430
- fix: support specifying ref on Screen by @satya164 in #2400
- fix: header config missing ref by @alduzy in #243...
4.0.0-beta.16
What's Changed
👍 Improvements / API changes
- refactor: Separate API props and NativeProps for ScreenStack by @maciekstosio in #2450
- feat: add a ScreenStackItem component by @satya164 in #2433
🐛 Bug fixes
- fix: header config missing ref by @alduzy in #2434
- fix(Android): center headerTitleAlign below Android API 29 by @alduzy in #2439
- fix(Android): title invisible with searchbar enabled by @alduzy in #2456
- fix(Paper,iOS): dismiss all attached view controllers correctly on reload by @hirbod in #2175
🔢 Miscellaneous
- docs: Manage system color scheme changes by @patrycjakalinska in #2440
- chore: bump RN to stable 0.76 by @maciekstosio in #2446
Full Changelog: 4.0.0-beta.14...4.0.0-beta.16
3.35.0
What's Changed
Minor release supporting RN 0.76 with a lot of fixes and improvements cherry picked from 4.0.0
line.
Most notably, the formSheet
presentation is not in its best shape on 3.x line of this library, we highly recommend using latest beta of 4.0.0
.
👍 Improvements
- feat(iOS): Implement blurEffect for new architecture by @janicduplessis in #2207
- docs: Manage system color scheme changes (#2440) (b849bdf) by @patrycjakalinska
- chore: add support for 0.76-rc.6 (#2407) (dc8c058) by @maciekstosio
- feat: add basic React Server Component support (#2170) (3b8033d) by @EvanBacon
- feat: add monorepo support for Android builds (#2352) (09fe805) by @kkafar
- feat(Android): add ios like
ios_from_left
slide animation (#2328) (6bdb770) by @chrispader - feat: add support for dynamic frameworks (#2315) (ad9d975) by @WoLewicki
🐛 Bug fixes
- fix(iOS): onNativeDismissCancelled called too early during modal dismissal by @zetavg in #2129
- fix(android): disappearing search icon on opening transparent modal by @alduzy in #2274
- fix(Android,Fabric): add missing
DoNotStrip
annotation to JNI-accessed methods by @kkafar in #2290 - fix(Android,Fabric,bridgeless): crash on RN hot reload in dev mode when redbox in presentation by @kkafar in #2289
- fix(iOS): FullWindowOverlay layout height (#2430) (5359e4e) by @alduzy
- fix(iOS):
extraLight
blur not working (#2338) (da70a27) by @maksg - fix(iOS): header snapshots not working (#2393) (bb86f5b) by @alduzy
- fix(Android): going back on fabric with horizontal list crash (#2403) (5a9afbb) by @alduzy
- fix(iOS,Fabric): prevent memory leak by calling
invalidate
on deleted screens (#2402) (71db286) by @kkafar - fix(iOS): header subviews layout on tab change (#2385) (652dbcf) by @alduzy
- fix(Android): going back on fabric with nested list (#2383) (d83d4b7) by @alduzy
- fix(iOS): full screen modal crash on paper (#2336) (173110d) by @maksg
- fix(iOS): right header incorrect position (#2316) (29d3c2c) by @alduzy
- fix!: always set Zindex to undefined for InnerScreen (#2351) (746eff8) - This looks like a breaking change, however you should never be able to set the styles directly on the
Screen
component, if you were doing it, you have been already doing something wrong by @adrianryt - fix(iOS): modal not presenting when deep in stack (#2335) (77d0562) by @maksg
- fix(Android): getChildDrawingOrder when using refreshcontrol (#2330) (ee967a5) by @BenIrving
- fix: do not force set
translucent
nav bar (until it's explicitly specified) (#2301) (eed1cb0) by @kirillzyusko - fix(Android,Fabric): pressable on
Screen
loses focus on pointer movement (#2292) (5a3b31a) by @kkafar - fix(iOS): Change import of RectUtil.h file to react/renderer/components (#2319) (eac554e) by @tboba
- fix(Android): incorrect childCount in removeViewAt when using flatlist on fabric (#2307) (10bda7d) by @alduzy
🔢 Miscellaneous
- chore: remove unused code for finding rn version by @WoLewicki in #2288
- fix(iOS): remove leftover _sheetsScrollView reference after cherry-picking from main by @alduzy in #2447
- fix: removed leftover test import after cherry-picking from main by @alduzy in #2448
- chore(deps): aggregate updates from dependabot (#2354) (4effcfe)
- chore(deps): bump serve-static from 1.15.0 to 1.16.2 in /Example (#2343) (f109927)
- chore(deps): bump express from 4.19.2 to 4.21.0 in /docs (#2348) (64cc3e9)
- docs(readme): update FullWindowOverlay example path (#2326) (e0fe651) by @ilia-kurganskii
- docs: Fix placement of Hero on big screens (#2305) (f56ac0c) by @patrycjakalinska
- docs: add Testimonials (#2333) (4ad8f1c) by @patrycjakalinska
- chore(deps): bump rexml from 3.2.9 to 3.3.6 in /Example (#2314) (0702fb5)
- chore(Android): removed redundant FabricViewStateManager comment (#2310) (44d1813) by @alduzy
- chore(deps): bump rexml from 3.2.8 to 3.3.3 (#2298) (a836acc)
- docs: Fix layout of screen sequence animation (#2303) (557c3c4) by @tboba
- docs: Resolve correctly missing tv.svg file (#2300) (8c64f9d) by @tboba
- docs: Add workflow to publish GitHub pages (#2299) (c0902b1) by @tboba
- docs: Add landing page for React Native Screens (#2240) (c4728e8) by @patrycjakalinska
Full Changelog: 3.34.0...3.35.0
4.0.0-beta.14
What's Changed
Another beta, this time with promised deprecation of react-native-screens/native-stack
, removal of raw native components from public API.
👍 Improvements / API changes
- feat!: remove native components from public API by @maciekstosio in #2412
- refactor!: drop support for native-stack v5 by @kkafar in #2373
- fix: support specifying ref on Screen by @satya164 in #2400
- refactor: separate Screen native props and public API by @maciekstosio in #2423
🐛 Bug fixes
- fix(Android): crash on tab change with open form sheet by @kkafar in #2416
- fix(iOS): FullWindowOverlay layout height by @alduzy in #2430
Full Changelog: 4.0.0-beta.13...4.0.0-beta.14
4.0.0-beta.13
What's Changed
👍 Improvements / API changes
- feat!: expose library
compatibilityFlags
with new flag regarding header implementation by @kkafar in #2411 - feat!: remove
shouldUseActivityState
flag by @kkafar in #2414 - chore: add support for 0.76-rc.6 by @maciekstosio in #2407
🐛 Bug fixes
- fix(iOS): do not force API user to set
activityState
by @kkafar in #2406 - fix: prevent Require cycles warning by @alduzy in #2410
- fix(iOS):
extraLight
blur not working by @maksg in #2338
🔢 Miscellaneous
Full Changelog: 4.0.0-beta.11...4.0.0-beta.13
4.0.0-beta.11
What's Changed
👍 Improvements
- feat: allow preload using activityState by @maciekstosio in #2389
🐛 Bug fixes
- fix(Android): going back on fabric with nested list by @alduzy in #2383
- fix:
HeaderConfig
impacts layout ofScreen
's contents by @alduzy in #2395 - fix(Android): modal insets not applying by @alduzy in #2371
- fix(Android,Fabric): invalid behaviour of
fitToContents
sheet detent by @kkafar in #2398 - fix(iOS,Fabric): prevent memory leak by calling
invalidate
on deleted screens by @kkafar in #2402 - fix(Android): going back on fabric with horizontal list crash by @alduzy in #2403
- fix(iOS): header snapshots not working by @alduzy in #2393
- fix(iOS):
activityState
regression check false-positive by @kkafar in #2404
🔢 Miscellaneous
Full Changelog: 4.0.0-beta.7...4.0.0-beta.11
4.0.0-beta.7
What's Changed
Another beta, most notably featuring native header refactor, that breaks with native-stack v5 and v6 and will continue to work only with native-stack v7.
Important
Hinting here that we plan to drop support for native-stack v5 completely with release of screens v4. Most likely the native-stack v5 will be shipped with few more versions of the 4.x line of screens, but it will be marked for removal with the stable release. Screens v4 intents to support react-navigation v7.
🐛 Bug fixes
- fix(iOS): full screen modal crash on paper by @maksg in #2336
- fix(Android): do not crash in case background can not be casted to MaterialShapeDrawable by @kkafar in #2388
- fix(iOS): header subviews layout on tab change by @alduzy in #2385
- fix(Android)!: overflowing text in native header by @kkafar in #2325
- fix: check for surplus values in sheet detents array not only in dev mode by @kkafar in #2387
🔢 Miscellaneous
Full Changelog: 4.0.0-beta.5...4.0.0-beta.7
4.0.0-beta.5
What's Changed
4.0.0-beta.5 fixing crashes and issues spotted during testing. Also including changes to the sheets API shape & better error handling.
👍 Improvements
- feat: add stub implementations for
ScreenContentWrapper
for web by @kkafar in #2368 - feat: add stub implementations for
ScreenFooter
for web by @kkafar in #2369 - feat(iOS): sheetInitialDetent support by @alduzy in #2367
- feat: assert that detents array is sorted in dev mode by @kkafar in #2381
- refactor!: add "index" suffix to selected sheet props & add better error handling by @kkafar in #2380
🐛 Bug fixes
- chore: fix crash in example app due to typo in export by @kkafar in #2374
- fix: bring back headers when using "modal" presentation on Android by @kkafar in #2372
- fix: prevent crash when there is no appearance model built by @kkafar in #2375
- fix: align units of sheet corner radius in different callsites by @kkafar in #2378
- chore: remove unnecessary logs from native-stack v5 by @kkafar in #2382
🔢 Miscellaneous
- refactor!: remove deprecated ios stack animation by @maciekstosio in #2361
Full Changelog: 4.0.0-beta.1...4.0.0-beta.5
4.0.0-beta.1
What's Changed
Beta.1 with with new react-native-screens
landing page, many bugfixes and adjustments in the API.
Thank you all for contributions and reporting issues!
You can expect rc
version in incoming days and then we plan directly releasing 4.0.0. Soon after the stable version we plan a blogpost with explanation of the changes. Stay tuned.
👍 Improvements
- docs: Add landing page for React Native Screens by @patrycjakalinska in #2240
- feat: add support for dynamic frameworks by @WoLewicki in #2315
- docs(readme): update FullWindowOverlay example path by @ilia-kurganskii in #2326
- docs: Add Testimonials by @patrycjakalinska in #2333
- feat(Android): add ios like
ios_from_left
slide animation by @chrispader in #2328 - feat: add basic React Server Component support by @EvanBacon in #2170
- feat: add monorepo support for Android builds by @kkafar in #2352
- feat: add compat mode for previously removed formSheet prop values by @kkafar in #2356
- feat: expose
none
&largest
values forsheetLargestUndimmedDetent
prop by @kkafar in #2359
🐛 Bug fixes
- docs: Add workflow to publish GitHub pages by @tboba in #2299
- docs: Resolve correctly missing tv.svg file by @tboba in #2300
- docs: Fix layout of screen sequence animation by @tboba in #2303
- fix(Android): incorrect childCount in removeViewAt when using flatlist on fabric by @alduzy in #2307
- chore(Android): removed redundant FabricViewStateManager comment by @alduzy in #2310
- fix(iOS): Change import of RectUtil.h file to react/renderer/components by @tboba in #2319
- fix(Android,Fabric): pressable on
Screen
loses focus on pointer movement by @kkafar in #2292 - docs: Fix placement of Hero on big screens by @patrycjakalinska in #2305
- fix: do not force set
translucent
nav bar (until it's explicitly specified) by @kirillzyusko in #2301 - fix(Android): getChildDrawingOrder when using refreshcontrol by @BenIrving in #2330
- fix(Android): Request layout manually for CustomToolbar below Android API 29 by @tboba in #2332
- fix(iOS): modal not presenting when deep in stack by @maksg in #2335
- fix(Android): minSdkVersion fallback to default 21 but RN 0.74 require minSdkVersion 23 by @adrianryt in #2346
- fix!: always set Zindex to undefined for InnerScreen by @adrianryt in #2351
- fix(iOS): right header incorrect position by @alduzy in #2316
🔢 Miscellaneous
New Contributors
- @patrycjakalinska made their first contribution in #2240
- @ilia-kurganskii made their first contribution in #2326
- @BenIrving made their first contribution in #2330
- @chrispader made their first contribution in #2328
- @adrianryt made their first contribution in #2346
Full Changelog: 4.0.0-beta.0...4.0.0-beta.1
4.0.0-beta.0
Hello! This time I'm releasing beta version of the new major of react-native-screens
.
This particular release introduces long awaited API for custom detents on iOS & form sheets on Android. The API is still partially unstable and is a subject to breaking changes before stable release, however we do want gather all the possible feedback from the users.
This release introduces breaking changes in types of accepted values for sheet related properties. Right now, until we provide some kind of migration guide, please consult directly our type specs.
You might expect more breaking changes before stable release of screens v4.
Any testing & feedback is very very welcome 💙
What's Changed
Full Changelog: 3.35.0-rc.1...4.0.0-beta.0