react-native v0.65.0 Release Notes

  • Highlights

    • ๐Ÿš€ Hermes 0.8.1. Please see the highlighted changes from its 0.8.0 and 0.8.1 release notes.
    • ๐Ÿ“ฆ react-native-codegen version 0.0.7 is now needed as a devDependency in the package.json.

    ๐Ÿ’ฅ Breaking Changes

    iOS specific

    • Replace flipper_post_install with react_native_post_install hook. Will automatically detect if Flipper is enabled. (42dde12aac by @grabbou)

    โž• Added

    • โž• Add onPressIn & onPressOut props to Text (1d924549ca by @adrienharnay)
    • Stabilize RootTagContext. And temporarily export both unstable_RootTagContext and RootTagContext (9d489354ae by @nadiia)
    • Implement sendAccessibilityEvent in the React(Fabric/non-Fabric) renderer (99b7052248 by @JoshuaGross)
    • Re-added localeIdentifier to I18nManager constants (6b91ae73cd by @acoates-ms)
    • โž• Add PressabilityPerformanceEventEmitter (c4c0065b00 by @JoshuaGross)
    • โž• Added displayName to some RN contexts to make them more easy to differentiate when debugging. (68a476103a by @bvaughn)
    • โž• Add displayName to TouchableHighlight and TouchableOpacity (c4e40b81c0 by @brunohkbx)
    • โž• Added context to URL's error messages when the feature is not implemented (452240bafa by @Crash--)
    • โž• Add a stickyHeaderHiddenOnScroll option to keep the sticky header hidden during scrolling down, and only slide in when scrolling up (ffba25c648)
    • โž• Added debugName parameter to renderApplication to use as the display name for the React root tree (eeb36f4709 by @rubennorte)
    • โž• Adding support for cancelOnBackground for UserFlow (0d4985900b by @dmitry-voronkevich)
    • โฑ Introducing RuntimeScheduler module (eb13baf2a6 by @sammy-SC)
    • Roll out TurboModule Promise Async Dispatch (5c4f145e33 by @RSNara)

    Android specific

    • โž• Add getRecommendedTimeoutMillis to AccessibilityInfo (d29a7e7a89 by @grgr-dkrk)
    • TalkBack now announces "unselected" when changing accessibilityState.selected to false. (73bc96ecf9 by @yungsters)
    • Fbjni version bump to 0.0.3 (24f9f75bf6 by @IvanKobzarev)
    • โž• Add onFocus and onBlur for Pressable on Android. (cab4da7288)
    • Introduce API to allow applications to register TurboModuleManagerDelegates with ReactInstanceManager (eb7e89e286 by @RSNara)
    • โž• Added convenience methods to simplify native Event classes and ease migrations (72d0ddc16f by @JoshuaGross)

    iOS specific

    • High contrast dynamic color options for dark and light mode. (4b9d9dda27 by @birkir)
    • โž• Adds an ability to retrieve the notifications authorization status from JavaScript side. (b86e52a9ec)
    • โž• Added reset method to RCTFabricSurface to help with reloads (53858ceaa3 by @PeteTheHeat)
    • ๐Ÿ‘ Allow RCTRootView to be initialized with a frame (00bc09c8f7 by @appden)
    • ๐Ÿ‘ Allow for configuring the NSURLSessionConfiguration (58444c74f5 by @hakonk)
    • ๐Ÿ‘‰ Use react-native-codegen in iOS app template (e99b8bbb40 by @hramos)

    ๐Ÿ”„ Changed

    • โฌ†๏ธ Bump Flipper + Bump hermes (#31872 by @Titozzz)
    • ๐Ÿšš Show warning when native module without addListener or removeListeners is passed to NativeEventEmitter (114be1d217 by @rubennorte)
    • Disable accessibilityState when the TouchableWithoutFeedback is disabled. (697164077c by @carloscuesta)
    • โฌ†๏ธ Upgraded react-devtools-core dependency to 4.12.0 (5a2693d78f by @bvaughn)
    • Set disabled accessibilityState when TouchableHighlight is disabled (f69e096bb4 by @Naturalclar)
    • โž• Add checks and logs to for better error handling (ea1f9531f0)
    • ๐Ÿšš CreateAnimatedComponent: removed deprecated lifecycles usage (ba61267015 by @nadiia)
    • โœ… Hide caret in the TextInput during test runs. (397bfa6ad7 by @nadiia)
    • ๐Ÿ‘‰ Use usePressability hook in TextInput (c4aa411ee3 by @nadiia)
    • ๐Ÿšš Keyboard no longer inherits from NativeEventEmitter, so it no longer implements removeAllListeners, and removeSubscription. (1049835b50 by @yungsters)
    • ๐Ÿšš AppState no longer inherits from NativeEventEmitter, so it no longer implements addListener, removeAllListeners, and removeSubscription. (6f22989e92 by @yungsters)
    • DevSettings no longer inherits from NativeEventEmitter (70cd569e7e by @yungsters)
    • LogBox will not initially collapse stack frames if every frame would be collapsed. (88a41f180c by @yungsters)
    • โšก๏ธ Update package name warning of deprecated modules (34e1b0ef98 by @Naturalclar)
    • โšก๏ธ Update react-native-codegen to 0.0.7 (cd6c9f3273 by @Naturalclar)
    • โšก๏ธ Update template devDependencies (652e3953f4 by @Bardiamist)
    • 0๏ธโƒฃ Don't minify JS bundle by default when using hermes (1a67dda668 by @janicduplessis)
    • โš  Migrate warnings in index.js to point to new lean core repos (4421a64ac1 by @Naturalclar)
    • โšก๏ธ Update Flipper to 0.93.0 (06c33e9abe by @mweststrate)
    • โšก๏ธ Update Flipper to 0.91.1, fixed iOS build support for i386, use_flipper!() will no longer need custom overrides to build with XCode 12.5 (4246c75d0d by @mweststrate)
    • Find node on m1 via homebrew node managers (4d40b53c12 by @danilobuerger)
    • Clean up EventObjectPropertyType (0e46080847 by @RSNara)
    • Appearance.addChangeListener now returns an EventSubscription. (305b4253c2 by @yungsters)
    • Dimensions.addEventListener now returns an EventSubscription. (c47a03563d by @yungsters)
    • โšก๏ธ Updated react-native-community/cli to v6 (hence updating metro to 0.66) (0d32aef3aa by @Titozzz)
    • ๐Ÿš€ Reflect Hermes release version from HermesBadge (c54aeccf1a by @Huxpro)

    Android specific

    • Modified NativeEventEmitter to also use the passed native module to report subscriptions on Android (f5502fbda9 by @rubennorte)
    • 0๏ธโƒฃ RefreshControl.size prop changed its type to string, the valid values are: 'default' and 'large' (dd60414578, 65975dd28d by @mdvacca)
    • ๐Ÿ”€ TouchableNativeFeedback: sync disabled prop with accessibilityState (88f2356eed by @kyamashiro)
    • ๐Ÿ“‡ Rename hasActiveCatalystInstance to hasActiveReactInstance (dfa8eb0558)
    • โœ… Record latest error type in dev support (423453e105)
    • Passing accessibility state in button so it can announce disabled in talkback (5889cbebe3 by @huzaifaaak)
    • ๐Ÿ›  Fixed issue that causes HorizontalScrollView to shift to the right when a TextInput is selected and keyboard pops up (b9b23e1ab1 by @JoshuaGross)
    • ๐Ÿ›  Fixed jumpy RTL horizontal ScrollViews. If you have Android-specific JS hacks for handling RTL in ScrollViews, you probably can/probably want to remove them, because they should be reliable now and require fewer hacks. (fc032cd8d8 by @JoshuaGross)
    • โž• Add a new check to avoid calling this method (2b708560fc)
    • Clipping subviews has been temporarily disabled in HorizontalScrollView in RTL mode. Minor/negligible perf impact. (da8ed6b625 by @JoshuaGross)
    • ๐Ÿ’… Change StatusBar style handling strategy (7324b92dc4)
    • Clean listeners during destroy of ReactContext (d79212120b by @mdvacca)
    • โฌ†๏ธ Bump buildToolsVersion to 30.0.2, (5d01110b53 by @dulmandakh)
    • ๐ŸŽ‰ Initial replacement of jcenter with mavenCentral. (704dd2812f by @ShikaSD)
    • โœ‚ Remove developer tool guard for android (c7d28bca30)
    • โฌ†๏ธ Bump Android compileSdkVersion and targetSdkVersion from 29 to 30 (55c8833817, c7efd5b369 by @mdvacca)
    • โฌ†๏ธ Upgrade jsc-android to 250230.2.1 (341f061ce3 by @Kudo)
    • โฌ†๏ธ Bump Gradle to 6.9, Android Gradle Plugin to 4.2.1 (547b4c92e4 by @dulmandakh)
    • โฌ†๏ธ Bump gradle wrapper to 6.8.3 (7258afeea3 by @dulmandakh)
    • โฌ†๏ธ Bumping OkHttp from 4.9.0 to 4.9.1. (6caec9d91f by @gedeagas)
    • โฌ†๏ธ Bumping OkHttp from v3 to v4. (8207e97f91 by @arazabishov)
    • โšก๏ธ Update Okhttp to version 3.14.19 (6bfd89d277 by @LukasFPV)
    • โฌ†๏ธ Bump Fresco to 2.5.0 (8fa8934011 by @dulmandakh)
    • โฌ†๏ธ Bump Fresco to 2.3.0 (280f524b49 by @dulmandakh)

    iOS specific

    ๐Ÿ—„ Deprecated

    • ๐Ÿšš EventEmitter#removeSubscription is now deprecated. (cb6cbd12f8 by @yungsters)
    • ๐Ÿ—„ It is now deprecated to pass a constructor argument to EventEmitter(...). (14f7a2b707 by @yungsters)
    • ๐Ÿšš Deprecate AccessibilityInfo.removeEventListener. (003d63d6e5 by @yungsters)
    • ๐Ÿšš Deprecate Linking.removeEventListener. Instead, call remove() on the subscription returned by Linking.addEventListener. (6d1aca806c, 035718ba97 by @yungsters)
    • ๐Ÿšš Old Native method to create ScrollEvent has been deprecated and will be removed at some point in the (distant) future (62f0dee235 by @JoshuaGross)

    Android specific

    • ๐Ÿ—„ Deprecate NativeModule.onCatalystInstanceDestroy() for NativeModule.invalidate() (18c8417290 by @RSNara)
    • ๐Ÿ—„ Mark hasActiveCatalystInstance() as Deprecated (1b50722a7e)

    โœ‚ Removed

    • Stabilize RootTagContext (9b98edcd01 by @nadiia)
    • โœ‚ Removed getNode() from animated component refs. (b914153286 by @yungsters)
    • โœ‚ Remove legacy context API usage in AppContainer (17be3a0032 by @nadiia)
    • โœ‚ Removed AccessibilityInfo.fetch, use isScreenReaderEnabled instead. (d831134d51 by @yungsters)
    • โœ‚ Remove unused VR-only props (95f7c791c5 by @Simek)
    • โœ‚ Removed RCTDeviceEventEmitter.sharedSubscribers. (3af0c84aa5 by @yungsters)
    • ๐Ÿšš Moved ScrollResponder.Mixin methods into ScrollView to Remove ScrollResponder.js (099f67cf8a by @kacieb)
    • ๐Ÿšš NativeEventEmitter no longer inherits from EventEmitter, so it no longer implements removeListener and removeSubscription. Instead, use the remove() method on the subscription object returned by addListener. (d39643b9de by @yungsters)
    • RCTDeviceEventEmitter no longer throws for StatusBar, Keyboard, and AppState events. However, you are still recommended to use the more appropriate modules for listening to these events. (c8c975f0d7 by @yungsters)
    • โœ‚ Removed second optional argument of NativeEventEmitter constructor (f5f47879b8 by @yungsters)
    • โœ‚ Removed warning on Android for setTimeout with delays greater than 1 minute. (480dabd665 by @yungsters)
    • Removed Touchable.TOUCH_TARGET_DEBUG property. (ef765d423c by @yungsters)

    Android specific

    iOS specific

    ๐Ÿ›  Fixed

    Android specific

    iOS specific