Change8

v0.79.0

Breaking Changes
📦 react-nativeView on GitHub →
1 breaking12 features🐛 1 fixes🔧 24 symbols

Summary

This release introduces breaking changes to deep module imports requiring '.default' when using require. It also adds significant Flow type improvements, enhanced debugging tools in LogBox and Metro, and new layout features like linear gradient hints and font stylistic sets.

⚠️ Breaking Changes

  • Deep imports to modules inside React Native libraries using 'require' syntax now require an explicit '.default' suffix. This affects modules in Libraries/Alert, ActionSheetIOS, BatchedBridge, AppState, Blob, BugReporting, vendor, Vibration, YellowBox, Components, and DevMenu.

Migration Steps

  1. Update any deep 'require' imports for React Native internal libraries (e.g., require('react-native/Libraries/Alert')) to include '.default' (e.g., require('react-native/Libraries/Alert').default).

✨ New Features

  • Codegen: Allow UnsafeMixed as Array value.
  • DevX: Added inspector proxy events for debugger heartbeat and abandoned connections, plus enhanced CDP connection logging.
  • Flow: Added explicit types and improved import syntax across multiple modules including RefreshControl, FlatList, SectionList, URLSearchParams, and AssetRegistry.
  • Infra: Open sourced React Native's Compatibility Check.
  • Layout: Added support for linear gradient color transition hint syntax, 'px' units, and stylistic sets for fontVariant.
  • LogBox: Added full owner stack support and code frames.
  • Metro: Added opt-in for legacy log streaming via --client-logs flag.
  • TextInput: Added escape key to key press event handler payload.
  • Android: Added support for Gradle Configuration caching.
  • Android: Added property to specify release level in DefaultNewArchitectureEntryPoint.
  • iOS: Added support for numberOfLines prop on TextInput.
  • iOS: Introduced JS runtime C API for Swift and custom load JS block in bridge mode.

🐛 Bug Fixes

  • iOS: Added missing nonnull annotations for RCTArchConfiguratorProtocol and RCTUIConfiguratorProtocol.h.

🔧 Affected Symbols

RefreshControlFlatListSectionListURLSearchParamsTextInputNativeCommandsAssetRegistryTouchHistoryMathfontVariantTextInputToastAndroidDefaultNewArchitectureEntryPointReactNavigationActivityDelegateRCTArchConfiguratorProtocolRCTUIConfiguratorProtocolLibraries/AlertLibraries/ActionSheetIOSLibraries/BatchedBridgeLibraries/AppStateLibraries/BlobLibraries/BugReportingLibraries/VibrationLibraries/YellowBoxLibraries/ComponentsLibraries/DevMenu