React Native v0.77 released
This release includes numerous bug fixes and improvements across Android and iOS platforms. Key updates include enhancements to text rendering, scrolling behavior, and layout calculations. Several crashes were addressed, particularly in areas like modal handling and bridgeless architecture. Performance optimizations were made to animations and view updates. The release also brings better support for RTL layouts and improved accessibility features.
v0.77 on GitHub (npm)
Release blog post
Changelog
v0.77.2
Added
iOS specific
- Codegen: Add the
source
parameter to generate-codegen-artifacts to avoid generating files not needed by libraries. (98b8f17811 by @cipolleschi)
Fixed
- DevTools: Fix disconnections of DevTools when the network is under significant strain. (b0974135bf by @vzaidman)
- CLI: Fix registering of
start
andbundle
commands with community CLI and isolated node_modules. (1f002f9999 by @robhogan) - Metro: Bump minimum Metro to 0.81.3, fix "_interopRequireDefault is not a function" with enablePackageExports (b335436113 by @robhogan)
Android specific
- Fabric: Avoid NPE when touch event is triggered before SurfaceManager is initiated (b8095f4692 by @CHOIMINSEOK)
- Image: Fix defaultSource runtime error (1c51b77868 by @fbp93)
iOS specific
- Interop Layer: Properly pass
nil
for nullable parameters instead ofNSNull
for legacy modules (619d5dfbb2 by @cipolleschi) - TextInput: Fix crashes when any text is entered while running as iOS app on apple silicon mac (8d7aca30e7 by @zhongwuzw)
v0.77.1
Fixed
- Dev-Middleware: Add missing
invariant
dependency (877e82c1a9 by @tido64) - style: Respect
maxFontSizeMultiplier
prop onText
andTextInput
components in New Architecture (8baa858412 by RickardZrinski)
Android specific
- layout: Fix elevation prop on android has incorrect border-radius (55d5c44976 by @NickGerleman)
- Fabric: Fix execution of early InteropEvents (d8af0ae3f2 by mdvacca)
iOS specific
- Image: Load images even when the extension is implicit (bc35afefd5 by @cipolleschi)
- Interop Layer: Avoid crashing the app when the InteropLayer can't find some methods in the native implementation. (83b986d370 by @cipolleschi)
- Interop Layer: Properly handle
null
values coming from NativeModules. (475f797a51 by sammy-SC)
Added
- DevX: Add opt in for legacy Metro log streaming via
--client-logs
flag (969eb3f007 by huntie)
v0.77.0
Breaking
- Animation: Native looping animation will not send React state update every time it finishes. (4b035d820d by @dmytrorykun)
- Dev-Middleware: Frameworks should specify
serverBaseUrl
relative to the middleware host. (acf384a72e by @robhogan) - JS: Remove ReactFabricInternals module (0c21db360c by @huntie)
- layout:
position
of sticky headers onScrollView
will now be taken into account (cbab004eb9 by @joevilches) - layout: More spec compliant absolute positioning (0a2dec175e by @NickGerleman)
- Native Modules: Bridgeless: Make NativeModules.foo load turbomodules (unset turboModuleProxy in bridgeless). (cc5f17d5a2 by @RSNara)
Android specific
- APIs: Removed ReactViewGroup.getBackgroundColor() (6a472c5cf2 by Thomas Nardone)
- APIs: ReadableArray non-primitive getters are now correctly typed as optional (145c72f816 by @javache)
- APIs: Remove jsBundleLoader from DefaultReactHost.getDefaultReactHost() (fbe4c0ed34 by @mdvacca)
- APIs: Reduce visibility of TaskCompletionSource class (4f55161132 by @mdvacca)
- APIs: Stable API - Make ImageStoreManager internal (846c4b1ea2 by @arushikesarwani94)
- APIs: Stable API - Make SwipeRefreshLayoutManager internal (d02da992a4 by Thomas Nardone)
- APIs: Stable API - Make classes inside
com.facebook.react.views.progressbar
internal (46526fc2fe by @cortinico) - APIs: Stable API - Make OkHttpCallUtil internal (abd118a719 by @arushikesarwani94)
- APIs: Stable API - Make SimpleSettableFuture internal (3dec672398 by @arushikesarwani94)
- APIs: Stable API - Make
ClipboardModule
internal (10f6d5adb5 by @cortinico) - APIs: Reduce visibility of ReactVirtualTextShadowNode to internal (496b0a8729 by @mdvacca)
- APIs: Reduce visibility of ReactVirtualTextViewManager to internal (4a119c4c3a by @mdvacca)
- APIs: Stable API - Make classes in
com.facebook.react.views.safeareaview
internal (39dfbadd5d by @cortinico) - APIs: Stable API - Make ClipboardModule internal (a72c35f98c by @cortinico)
- APIs: Stable API - Make NativeModulePerfLogger internal (d7d5de9f96 by @cortinico)
- APIs: Make ReactDebugOverlayTags, DebugOverlayTags, Printer, PrinterHolder, NoopPrinter internal (623d481991 by @cortinico)
- APIs: Make
DevLoadingModule
internal (8c50bf0beb by @cortinico) - APIs: Stable API - Convert to Kotlin and make internal
NotThreadSafeViewHierarchyUpdateDebugListener
(287e200332 by @cortinico) - APIs: Rename DevSupportManagerBase.getCurrentContext() -> getCurrentReactContext() (0e7ba9094e by @RSNara)
- APIs: Make DevSupportManagerBase.getCurrentReactContext() public (5a6a42c7d0 by @RSNara)
- APIs: Reduce visibility of ReactUnimplementedViewManager to internal (fe656be26e by @mdvacca)
- APIs: Stable API - Make InteropModuleRegistry internal (cba1d4bae7 by @cortinico)
- APIs: Stable API - Make ReactDevToolsSettingsManagerModule and ReactDevToolsRuntimeSettingsModule internal (d7550293a2 by @cortinico)
- APIs: Added JSBundleLoader as parameter of DefaultReactHost (143b9d172c by @mdvacca)
- APIs: Deleting deprecated CompositeReactPackage (2cb5198f1b by @mdvacca)
- APIs: Make ReactHost.createSurface() method non nullable (70c7616535 by @mdvacca)
- APIs: Stable API - Make AppStateModule internal (dbf09fbe58 by @cortinico)
- APIs: Make
AccessibilityInfoModule
internal (7168a9d1a2 by @cortinico) - APIs: Add 3 methods to ReactInstanceDevHelper (c867aba2f3 by @cortinico)
- APIs: Remove Deprecated DefaultDevSupportManagerFactory.create() (f25abe51ce by @cortinico)
- APIs: Remove BaseViewManagerInterface (7fb3d830be by @NickGerleman)
- APIs: Remove ReactNativeFlipper object, deprecated in 0.75 (d1a256f51a by @cortinico)
- APIs: Use BackgroundStyleApplicator when setting background color in BaseViewManager (309cdea337 by @NickGerleman)
- APIs: Delete useTurboModules, enableFabricRenderer and enableBridgelessArchitecture fields from ReactFeatureFlags class (10a33e0479 by @mdvacca)
- APIs: Remove ReactViewBackgroundManager and ReactViewBackgroundDrawable (51673e41ae by @NickGerleman)
iOS specific
- APIs: Use the RCTDependencyProvider in the RCTAppDelegate, breaking the dependency with Codegen (b91626af26 by @cipolleschi)
- APIs: Delete experimental API RCTConstants.RCTGetMemoryPressureUnloadLevel (d79dc48abd by @mdvacca)
- APIs: Move
UseNativeViewConfigsInBridgelessMode
to a proper feature flag (6fc500ee99 by @philIip) - APIs: Delete partialBatchDidFlush (a777a8937e by @philIip)
- APIs: Remove the deprecated RCTRuntimeExecutor. (cf8d09b279 by @philIip)
- colors: Replace uses of
CGColorRef
with UIColor to avoid manual memory management (b70709dbc2 by @Saadnajmi) - infra: Cocoapods decide the C++ version for iOS pods (bd50c4a460 by @cipolleschi)
- Interop Layer: Remove opt-out mechanism for Native Modules interop layer (538bff710f by @philIip)
Added
- Codegen: Support negative values in enums (177bf4d043 by @okwasniewski)
- Codegen: Add NumberLiteralTypeAnnotation support (dd472101b7 by @elicwhite)
- Codegen: Add cli --help details to combine-js-toschema-cli.js (e4814b0d6d by @blakef)
- Codegen: Codegen for Native Modules now supports string literals (d2f3f06826 by @elicwhite)
- Codegen: Codegen now supports Union Types in NativeModules (3af126b562 by @elicwhite)
- DevMenu: Export
DevMenu
fromreact-native
(e12c0d9551 by @frankcalise) - FlatList: Updated FlatList setNativeProps type (b0ac99b477 by @JDMathew)
- Flow: Upgrade Flow to 0.245.2 (1f65bf9545 by @SamChou19815)
- Image: Image
resizeMode
andobjectFit
support for'none'
. (d8cfd98070 by @mateoguzmana) - JS: Eliminate usage of more than 1-arg
React.AbstractComponent
in React codebase (6205aad81e by @SamChou19815) - layout: Added support for
display: contents
(e7a3f479fe by @j-piasecki) - Modal: Added overlayColor prop to modal component for customisable background overlay (4e1d7015c1 by @shubhamguptadream11)
- Perfetto: Add FuseboxPerfettoDataSource to emit Fusebox traces using Perfetto (ef0ea4d834 by Benoit Girard)
- ReactNativeDevTools: Add support for reload-to-profile in Fusebox (Part 2 of 2: JS) (4df224ca6d by @EdmondChuiHW)
- ReactNativeDevTools: Add support for reload-to-profile in Fusebox. (Part 1 of 2: native) (91a40a28de by @EdmondChuiHW)
- runtime: Add support for
rn_rootThreshold
in Intersection Observer (a77d8d9d50 by @lunaleaps) - runtime: Added
HostInstance
type to represent the instance of aHostComponent<T>
. (e24f9917c2 by @yungsters) - style: Removed
experimental
prefix and fully releasedmixBlendMode
prop (d2c48f3b1a by @jorge-cab) - Text: Add JS layer for new text content type cellular EID and cellular IMEI (118c1f7035 by @cipolleschi)
- Text: Expose missing text content type to JS (d3d48cb357 by @cipolleschi)
- TypeScript Use the TypeScript key in syntax to restrict permissions and types of results (0244710c4b by @qnnp-me)
Android specific
- Accessibility: Added
isHighTextContrastEnabled()
toAccessibilityInfo
to readACCESSIBILITY_HIGH_TEXT_CONTRAST_ENABLED
setting value (d4ea147b41 by Ariel Lin) - APIs: Marked ReactPackage#getModule as stable. (8fba7ebb5e by @javache)
- C++: Add cmake arguments to support 16KB page size for native libraries (65cdd5b82c by @alanleedev)
- Error Hadling: Add exceptionHandler as a parameter of DefaultReactHost.getDefaultReactHost() method (7a5a10c95c by @mdvacca)
- graphics Added PixelUtil extensions for Int and Long (9406a09f87 by Thomas Nardone)
- Image: Image
force-cache
caching control option (a0be88fd72 by @mateoguzmana) - Image: Enabling basic
Image
cache control for Android (e5dd7d68bf by @mateoguzmana) - Image: Adds a new
resizeMethod
,none
, which disables downsampling for an image (6202319ed5 by @Abbondanzo) - Image: Adds support for importing XML assets as images (2e80f5acf1 by @Abbondanzo)
- Modal: Add navigationBarTranslucent prop to Modal component (7a6c7a462a by @zoontek)
- resources: Add a new Fresco decoder for XML resource types (118b7c18a6 by @Abbondanzo)
- runtime: ReactDelegate and ReactActivityDelegate#getCurrentReactContext can be used to access the current context (fe8cc62824 by @javache)
- runtime: Trigger Java GC on app reload (de3c1ee097 by @mrousavy)
- runtime: React Activity exposes ReactHost (d78cb78b15 by @shwanton)
- runtime: ReactDelegate
unloadApp
methods for unmounting surfaces without destroying ReactHost (38593c440e by @rozele) - ScrollView: Add OnLayoutChange API for scroll views (d825a4d712 by Thomas Nardone)
- style: Add overlapping radii resolution logic preventing incorrect rendering (451ff70da4 by @jorge-cab)
- style: Logic to check for grayscale mode on android (e70202e606 by @oddlyspaced)
- style: Add boxShadow support to BaseViewManager (b69a92e2c9 by @NickGerleman)
- style: Outline properties
outline-width
,outline-color
,outline-style
&outline-offset
(17faac4170 by @jorge-cab) - Text: TextTransform ktx (7794d7af43 by Thomas Nardone)
iOS specific
- Accessibility Added
isDarkerSystemColorsEnabled()
toAccessibilityInfo
to read "Increase Contrast" setting value (af3bee6511 by Ariel Lin) - ActionSheetIOS: Added
disabledButtonTintColor
prop to ActionSheetIOS (089c87e22e by @henninghall) - Cocoapods: Extract RCTAppDependencyProvider in the ReactAppDependencyProvider pod (102062fbc7 by @cipolleschi)
- Codegen: Add RCTDependencyProvider protocol (f2b3716426 by @cipolleschi)
- graphics: Add
systemCyan
andsystemMint
colors on iOS (4caf548a9f by @EvanBacon) - Hermes: TvOS support for Hermes artifacts (f673759c83 by @douglowder)
- Image: Image
only-if-cached
cache control option (dc9db01665 by @mateoguzmana) - infra: Declare supportedInterfaceOrientations only on iOS (40c5e6b64a by @okwasniewski)
- infra: User-configurable BUNDLE_NAME when building bundles (f8287e25e1 by @fivecar)
- infra: User-configurable BUNDLE_NAME when building bundles (f8287e25e1 by @fivecar)
- Layout: Fix: Correct Layout Behavior for Combined align-content and align-items (73a2be1243 by @phuccvx12)
- runtime: Pass the
RCTAppDependencyProvider
to theRCTAppDelegate
(95fc906930 by @cipolleschi) - runtime: Introduce the RCTAppDependencyProvider to minimize the changes required y the users (41c2502b36 by @cipolleschi)
- runtime: Introduce RCTArchConfiguratorProtocol (ec0dbb729d by @okwasniewski)
- runtime: Introduce RCTUIConfiguratorProtocol (8850736188 by @okwasniewski)
- runtime: Add
CallInvoker
toBindingsInstaller
(87bae7f734 by @mrousavy) - ScrollView: Scroll the cursor into view when text input is focused (e021e50d53 by @dominictb)
- style: Outline properties
outline-width
,outline-color
,outline-style
&outline-offset
(1288e38423 by @jorge-cab) - Swift: Expose RCT_NEW_ARCH_ENABLED to Swift (d24507611d by @okwasniewski)
- Text: New text content type cellular EID and cellular IMEI (14e0d0dffb by @pasc0al)
- TextInput: TextInput
inputAccessoryViewButtonLabel
prop (32931466ed by @mateoguzmana) - TextInput: Line break mode for TextInput components. This includes JS APIs for the new mode. (ce2d34f194 by @shubhamguptadream11)
Changed
- Animated: The
AnimatedNode
graph will not occur during the insertion effect phase, which means animations can now be reliably started during layout effects. ([316170ce8d](https://github.com/facebook/react-native/commit/ - Animated: Optimized the performance of updating
Animated
components. (f0ffcd4f5d by @yungsters) - Animated: Animations started with incompatible
useNativeDriver
andAnimatedValue
configurations will now synchronously fail. Previously, spring and timing animations with non-zero delays would throw the error asynchronously. (fd8cf19625 by @yungsters) - Animated: The
Animation
superclass no longer exposes__onEnd
as a property. Subclasses must instead invokesuper.start(…)
in theirstart()
implementation. (b3fe06b268 by @yungsters) - Animated: Bring back shouldSkipStateUpdatesForLoopingAnimations feature flag (6e0e712c2a by @dmytrorykun)
- Animated: AnimatedNode (and its subclasses) once again implement
toJSON()
. (7bd4a54968 by @yungsters) - Animated: Improved the performance of unmounting (and updating, when an enclosing Activity becomes hidden) Animated components (46abda55b9 by Royi Hagigi)
- Animated: AnimatedNode (and its subclasses) no longer implement
toJSON()
. (fe6228512e by @yungsters) - Animated: Animated now resolves
style
to the original prop value if it contains noAnimatedNode
instances. Previously, it would resolve to a flattened style object. (ca234ba10e by @yungsters) - AttributedString: AttributedString
appendFragment
andprependFragment
take an rval instead of a const ref; append/prependAttributedString have been removed (2c31fe99e1 by @javache) - AttributedString: Improved AttributedText generation for raw text nodes. (2f7957f2fd by @javache)
- Flow: Simplified Flow types to use
HostInstance
(which changing nominal types). (177697f539 by @yungsters) - JS:
useMergeRefs
and components using it (e.g.Pressable
) now support ref cleanup functions. (01e210fd28 by @yungsters) - JS: Fix: use public instance in Fiber renderer and expose it from getInspectorDataForViewAtPoint (#31068) (633ad4933e by @hoxyq)
- deps: Bump serve-static to 1.16.2 to fix CVE-2024-43800 (50e38cc9f1 by @cortinico)
- deps: Bump Folly to 2024.10.14.00 (37375d8aba by @alanleedev)
- deps: Update Metro to 0.81.0 (0902b0af75 by @robhogan)
- deps: Upgrade React DevTools to 6.0.0. (ed4f6d6891 by @hoxyq)
- infra: Do not print Bridgeless Mode is enabled on console anymore (f3a969f38d by @cortinico)
- VirtualizedList: Fix unnececary rerenders of VirtualizedListCells with strictMode={true} (aafe696453 by @Tom910) 316170ce8d0aac1df3261c792b9f768665d134c5) by @yungsters)
Android specific
- deps: Updating targetSdk to 35 (apps can still choose their own targetSdk regardless of RN version) (48ea6867a9 by @alanleedev) 9fa4845136969ec95ce5615b7ea78feaf0f7f109) by @javache)
- deps: AGP to 8.7.2 (e1a1cead43 by @cortinico)
- deps: Android NDK to 27.1 (ba061a5d18 by @alanleedev)
- deps: Bump fbjni to 0.7.0 (1c002c7b4e by @alanleedev)
- deps: Fresco to 3.4.0 (091025e18b by @cortinico)
- deps: Bump Kotlin 1.9.x to 2.0.x (972c2c864c by @cortinico)
- deps: Bump Android Gradle Plugin (AGP) to 8.7.0 (cbc0978bb6 by @cortinico)
- deps: Gradle to 8.10.1 (90f89a830a by @cortinico)
- deps: Gradle to 8.11.1 (490db92562 by @cortinico)
- Kotlin: Migrated systeminfo module code from Java to Kotlin (8dc2c90ce5 by @oddlyspaced)
- Kotlin: Migrate ReactFeatureFlags to Kotlin (4076dbfc86 by @mdvacca)
- Kotlin: Migrate MainReactPackage to Kotlin (and make it final) (7bbac8ee27 by @cortinico)
- Native Modules: TurboModules marked as requiring eager init will now be constructed on the mqt_native thread to increase concurrency in React Native init. (663b5f9d19 by @javache)
- ReactViewGroup: Consolidated ReactViewGroup add/remove overrides (0b22b955f1 by Thomas Nardone)
- runtime: Invocations to JS will now invoke their callbacks immediately if the instance is ready. Surface starts will not wait for the main thread to become available to dispatch the work in JS. ([9fa4845136](https://github.com/facebook/react-native/commit/
- runtime: Update documentation for ReactHost.destroy() APIs (443bc32dc4 by @mdvacca)
- style: Disabling
outline
props on Android to stay consistent with iOS (7ab0002799 by @jorge-cab) - tracing: Improve FpsDebugFrameCallback.getTotalTimeMS() accuracy (d54c25fdae by @aamagda)
iOS specific
- Codegen: Change how components automatically register (8becc2514d by @cipolleschi)
- Codegen: Stop generating the RCTThirdPartyLibraryComponentProvider (60b9d3d89e by @cipolleschi)
- runtime:
RCTSurfaceHostingProxyRootView
no longer has different behavior (whether it callsstart
on the provided surface) depending on which initializer is used. Callstart
yourself on the surface instead. (13b93cfdda by Nolan O'Brien) - runtime: Use
newArchEnabled
flag in RCTAppDelegate and RCTRootViewFactory (7e1674fc59 by @okwasniewski) - runtime: Do not move to the main queue synchronously when starting a new surface (ab2c47be28 by @cipolleschi)
- APIs: Rename
RCTUIGraphicsImageRenderer
toRCTMakeUIGraphicsImageRenderer
(6a09fc09af by @Saadnajmi)
Deprecated
Android specific
- Codegen: Deprecated shadows for ReadableNative[Map|Array].[Readable|Writable] (d424bb9d7c by @javache)
- Fabric: ReactContext.getFabricUIManager() method (fb737ca7d3 by @mdvacca)
- runtime: Deprecate CatalystInstance in old architecture (3e27ef1f6e by @mdvacca)
- runtime: Deprecate BridgelessCatalystInstance class (72bd840dd3 by @mdvacca)
iOS specific
- runtime: Deprecating RCTBridgeModule batchDidComplete and adding configuration to disable it (731bd95c43 by @philIip)
Removed
- DevX: Remove "run on iOS" and "run on Android" from the dev server key commands (19b971ff94 by @huntie)
- JS: Removed type for useConcurrentRoot from AppRegistry, as it was already ignored (2ec547ad28 by @javache)
- TypeScript: Removed
refs
property fromNativeMethods
TypeScript definition. (223e98cc4b by @yungsters)
Android specific
- APIs: Remove
BackHandler.removeEventListener
(44d619414c by @retyui) - APIs: DevToolsReactPerfLogger stats gathering now uses an internal API (f503fe3f10 by @javache)
- APIs: BindingImpl is no longer part of the public interface (18faf68b48 by @javache)
- APIs: FabricComponents is removed from public API (300db67b27 by @javache)
Fixed
- Animated: Correctly pass down isLooping in parallel animation (4014aa4528 by @zeyap)
- Animated: Improved types for AnimatedProps (390925ea39 by @javache)
- Animated: Order of operations related to platformConfig propagation in NativeAnimated (a64183b0c6 by @rozele)
- Animated: Replace Object.hasOwn usages to fix Animated on JSC (e996b3f346 by @robhogan)
- Animated: Fix buttons becoming unresponsive when transform is animated (Revert #48669) (c799aa07e2 by @sammy-SC)
- Appearance: Fixed jest error from Appearance.js (ce838a4bcf by @Kudo)
- Appearance: Fix
Appearance.setColorScheme(null)
not resetting color scheme value (7d63235086 by @sangonz193) - C++: Fix C++ bridging template compatibility with MSVC (e6848ba5ba by @acoates-ms)
- C++ Fix cast and control paths errors on windows (0794fa909b by @TatianaKapos)
- C++ Fix type conversion error in react native windows build. (13db1cb88b by @marlenecota)
- Codegen: Support nested objects in arrays (13780126d3 by @tvanlaerhoven)
- Codegen: Make Codegen work with local modules (7b6e8e7765 by @cipolleschi)
- Codegen: Upgrade Codegen dependency
jscodeshift@17.0.0
to resolve outdated dependencies (39c98fb8f8 by @byCedric) - Codegen: Fix source mapping for codegenNativeCommands (8fba154b66 by @vzaidman)
- Codegen: Skip hidden folders when looking for third party components. (8ab524312a by @cipolleschi)
- Dev-Middleware: Rewrite URLs in the inspector proxy to cover all configurations, not just Android emulators. (74995bc90a by @robhogan)
- Dev-Middleware: Fix URL rewriting where device and debugger reach the server on different ports/protocols. (5da7ebf99a by @robhogan)
- Dev-Middleware: Regex-escape IP addresses in urlRegex replacements (aae3e03e57 by @robhogan)
- Dev-middleware: Remove URL.canParse, restore compat with Node < 18.17 (99767d43b0 by @robhogan)
- Error Handling: Improved error message when no view config is found. (bca232ad90 by @javache)
- FlatList: Fixed accuracy of FlatList estimations to determine what elements are visible in the rendering window. (40aaeb7181 by @rubennorte)
- FormData: Remove non compliant
filename*
attribute in a FormDatacontent-disposition
header (f791fb9e66 by @foyarash) - graphics: Linear gradient start and end point algorithm. (221d1eceda by @intergalacticspacehighway)
- Hermes: Hermes: revert Intl removal (4cffff35e0 by @robhogan)
- Image: Passed height and width as native props to support cases where source is an array. (45b177f50d by @shubhamguptadream11)
- infra: When using Babel with plain JavaScript files, support for additional user syntax plugins should be fixed (now uses Babel's parser instead of hermes-parser). There is no change for JS files annotated with
flow
, where extended JS syntax remains - unsupported. (3de9892353 by @huntie) - infra: Fix npm react-native start when cli-server-api isn't installed (e0be2efe4e by @blakef)
- infra: Fix "punycode is deprecated" warning by replacing
node-fetch
with nativefetch
(881d8a720f by @jbroma) - JS: Do not discard props in the patch when they are not null while using
useNativeProps
(4c3112c8d8 by @cipolleschi) - KeyboardAvoidingView: Accessing KeyboardAvoidingEvent event in onLayout handler (68db74205a by @mhoran)
- KeyboardAvoidingview: Fix KeyboardAvoidingView not aware of the keyboard closing it is unmounted (08bd8ac47d by @QichenZhu)
- layout: Plumbing to get boxSizing prop to Yoga round 2 (3ca796edc3 by @joevilches)
- layout: Fix TextMeasureCacheKey Throwing Out Some LayoutConstraints (e7db7a7266 by @NickGerleman )
- Modal: Rename overlayColor prop in Modal to backdropColor (7aeff18970 by @alanleedev)
- Native Modules: TurboModule::get is now a final method, override
create
to customize property lookup (5b5e150eaf by @javache) - PointerEvents: Fixed issues with W3C PointerEvents testsx (1dcaf823f5 by @rozele)
- PointerEvents: Fixed issue with W3C PointerEvents tests (68a6b69b27 by @rozele)
- ReactNativeDevTools: Don't assume 10.0.2.2 is an alias for localhost unless it's used to establish a connection to the server (69400be4fc by [@robhogan](https://
- ReactNativeDevTools: Fix fetching sources and source maps when the dev-server is remote and not tunnelled via the same port+protocol. (d1b0e9a30b by @robhogan)
- runtime: Fixes typo in ReactHostImpl (e3f03269c5 by @rozele)
- runtime: Microtasks are now correctly executed after the code evaluation in Console panel of DevTools. (3dfe22bd27 by @hoxyq)
- runtime: Fix setImmediate/clearTimeout mismatch in NativeAnimatedHelper that could clear an unrelated setTimeout. (a5dd1be889 by Benoit Girard)
- style: Fix the nodes' owners not being updated when
display: contents
is used (aa53bde21b by @j-piasecki) - style: Fix for nodes with
display: contents
not being cleaned in some cases (a88ddcecc9 by @j-piasecki) - Text: Fix text not taking full width (550b0c0ed1 by @s77rt) github.com/robhogan))
- Text: AnsiHighlight style in RTL layout (9a3958a619 by @hexboy)
- Text: TextTransform: capitalize better reflects the web behaviour (dc2000c875 by @javache)
- tracing:
PerformanceEntryReporter::reportMark
andPerformanceEntryReporter::reportMeasaure
now return created performance entries. (32f7b3b4e0 by @robik) - TypeScript The definition of ts of resizeMethod attribute is none. (758892a7d8 by @nianxiongdi)
- VirtualizedList: Fix onEndReached not being called when getItemLayout is present and we scroll past render window (3485e9ed87 by YunPeng Chong)
- VirtualizedList Fix onEndReached not being called when getItemLayout is present and we scroll past render window (62b7396bf4 by @NickGerleman)
Android specific
- C++: Fixes C++ TurboModules: Prioritise OnLoad.cpp, falling back to default-app-setup (5a64bde701 by @timbocole)
- Codegen: Fix IOException in
BuildCodegenCLITask
(9147b0753a by @vonovak) - Dialog: Fixed styling on alert dialog titles to wrap two lines and retain bold appearance (c54b23ff9e by @Abbondanzo)
- graphics: Missing isInvertColorsEnabled implementation for Android (cc1d2853fb by @oddlyspaced)
- Headless Tasks: Fix crash on HeadlessJsTaskService on old architecture (4560fc0497 by @cortinico)
- Image: Apps will no longer fatally crash when trying to draw large images (483b928224 by @Abbondanzo)
- Image: Avoid blocking the main thread when decompressing drawable resources (420229d669 by @Abbondanzo)
- JSC: Fixes RNTester JSC Debug instacrashing (17a5d2be5a by @cortinico)
- layout: Reenable
setAndroidLayoutDirection
by default (6cf0cfb5a4 by @NickGerleman) - Layout: Restore layout/invalidate during ReactViewClippingManager.removeViewAt() (e3970a4bb3 by @tdn20)
- Layoutanimations: LayoutAnimations work on full new architecture (43af902693 by @javache)
- Modal: Fix issues with Modals and lifecycle events in multi-surface apps (1ffef5669c by @rozele)
- Modal: Fix crash for Modal not attached to window manager (eaa780de1c by @cipolleschi)
- Permissions: Prevent ArrayIndexOutOfBoundsException in permission check (6aeca53b3e by @antFrancon)
- ReactNativeDevTools: Fix source loading when using an Android emulator connecting to a dev server on the host. (ca9c56329f by @robhogan)
- RNGP Do not attempt to substring to 1024 while logging (e64513bf4e by @cortinico)
- runtime: Fixes some deadlocks when doing commits and state updates synchronously from the UI thread (e.g.: from reanimated). (3986eefed1 by @rubennorte)
- runtime: Addressed race condition in surface start. (6ba7cb3102 by @javache)
- runtime: Avoid null reference exception in bridgeless ReactDelegate (0d664100bb by @rozele)
- runtime: Fix Frame Callback not being called after Host Resume (e8f8ee3c0f by @s77rt)
- runtime: Merge Android ViewNativeComponent ViewConfig into BaseViewConfig (0ba00fc998 by @NickGerleman)
- runtime: Add missing BaseViewManager props to BaseViewManagerDelegate (6741fd94ad by @NickGerleman)
- runtime: Fix issue where
onDropViewInstance
cleanup was not being handled afterReactRootView.unmountReactApplication
(0449630612 by @rozele) - runtime: Fix some cases where we override setBackgroundColor on View-level instead of VM level (0b0ac81fbe by @NickGerleman)
- runtime: Fix interactions between removeClippedSubviews and RTL (513e9669e7 by @NickGerleman)
- runtime: Fix: ReactDelegate/ReactFragment crashing on New Architecture apps (12dda31bc1 by @cortinico)
- runtime: ReactFragment should properly instantiate ReactDelegate on Bridgeless (7176d11ce4 by @cortinico)
- runtime: ARG_DISABLE_HOST_LIFECYCLE_EVENTS in ReactFragment to allow unmounting a surface without destroying ReactHost. (40c875deca by @vincenzovitale)
- runtime: Use appropriate Nullable attribute for ReactRootView field in ReactDelegate (cbddcfc691 by @rozele)
- runtime: Hover events were dispatched incorrectly when multiple ReactRoots were layered. (533ef2ca37 by @javache)
- runtime: Handle removal of in-transition views. (f402ed17fa by @kkafar)
- ScrollView Dispatch onMomentumScrollEnd after programmatic scrolling (c69e330324 by @Biki-das)
- ScrollView: Fix legacy arch RTL horizontal ScrollView regression (bfca7cfe7a by @NickGerleman)
- ScrollView: Fix RTL ScrollView position when content smaller than container (0df59d4f03 by @NickGerleman)
- ScrollView: Fixed incorrect scroll event/position for scroll views when doing a smooth scroll animation. (b4c41ec768 by @rubennorte)
- Suspense Fix crash in getViewState when using suspense fallbacks. (bd133b5dd5 by @javache)
- style: Enable mix-blend-mode on ReactRootView so blending works with app background (24b0ded3cf by @jorge-cab)
- style: BoxShadow now supports platformColor. (4ede9205a0 by @javache)
- style: MixBlendMode now properly does state updates (fae572d815 by @jorge-cab)
- style: Linear gradient with platform colors (6866968a79 by @intergalacticspacehighway)
- Text: Ensure setSelection in onAttachedToWindow is within text range (08759121cd by @zeyap)
- Text: Fixed crash in legacy ReactFontManager (3da23f7093 by @javache)
- Text: Reimplement Android lineHeight positioning/determination (41265bac6b by @NickGerleman)
- Text: Text without explicit font styles was potentially cut-off. (95a5d1c628 by @javache)
- Text: Fix mising
ANTI_ALIAS_FLAG
when resetting Text Paint (276e3a7df7 by @NickGerleman) - Text: Properly fix measurement of trailing newlines (060c594457 by @NickGerleman)
- Text: Fixed text being measured incorrectly when ending with an empty line on the new architecture (bd323929dc by @j-piasecki)
- Text: Improve text line height calculation (65d8f66b50 by @mellyeliu)
- Text: Fix generating empty line at the end of multiline text view when
textAlign
is set tojustify
(08e8f6adfd by @coado) - TextInput: Fix TextInput caret moving to the beginning when attached to window (ca0abd1b9e by @QichenZhu)
- TextInput: Fix NPE on ReactTextInputManager.setTextDecorationLine (41c6ad5597 by @cortinico)
- VirtualizedList: Account for items dynamically scaling with the container when using
maintainVisibleContentPosition
in virtualized lists (6c19996e10 by @fabriziocucci) - Yoga: Fix YogaConfig getting garbage collected #1678 (7dcb10b6e7 by @michaeltroger)
iOS specific
- Accessibility: Make sure that the Increment and Decrement accessibility actions works on iOS (303e0ed764 by @cipolleschi)
- ActionSheetIOS: Fix ActionSheetIOS crash
attempt to insert nil object from objects
(bebd6531b5 by @RodolfoGS) - AppClips: Fix launching App Clips with nullish URLs. (043e2fe14a by @EvanBacon)
- Cocoapods: Typo in spm.rb (5e18f7f788 by @okwasniewski)
- infra: Fallback to old resolve mechanism when node require fails to resolve react native path (3cbaddbc16 by @okwasniewski)
- infra: Enable hermes debugger by configuration type instead of configuration name (eda4f185b3 by @benhandanyan)
- ObjC: Fix numerous class interfaces having incorrect designated initializer patterns (b98846c2e3 by Nolan O'Brien)
- PrivacyInfo: Don't reference PrivacyInfo.xcprivacy twice for new projects (cadd41b1a2 by @okwasniewski)
- ReactNativeDevTools: "Reconnect DevTools" button not working sometimes (8507204b53 by @EdmondChuiHW)
- ReactNativeDevTools: Fix
r
&d
not working from Metro sometimes (9a60038a40 by @EdmondChuiHW) - ScrollView: Fixed
onMomentumScrollBegin
event not firing on command-driven scroll events (5b609cca09 by @Abbondanzo) - ScrollView: AutomaticallyAdjustKeyboardInsets not shifting scrollview content (2d9933e616 by @zhongwuzw)
- ScrollView: Fixes scrollIndicatorInsets not work in old arch (c1178ac208 by @zhongwuzw)
- ScrollView: fix: vertical scroll views are detected as horizontals (ab8f3ff3e9 by @coado)
- style: Fixes CornerRadiiAreEqualAndSymmetrical error when check topLeftHorizontal == topLeftVertical (af384a914a by @zhongwuzw)
- Text: Fixes missing char mode of linebreakmode (77889afa1c by @zhongwuzw)
- Text: Fix possible NSRangeException when updating typing attributes in response to new text content (6e06a810f0 by @NickGerleman)
- runtime: Fixed use of view commands from layout effects (6f1c2a512e by @sammy-SC)
- runtime: Fixed crash on promise rejection handler in iOS 18. (26d8d490e4 by David Rickard)
- runtime: Cast the UIScene to UIWindowScene only if the scene respond to the selector (fdee0ebbcb by @cipolleschi)
- runtime: Fixes the exported synchronous method not being called on the method queue when it's the main queue (8bfd7e1039 by @zhongwuzw)
- TextInput: Fixes numeric TextInput not triggering
onSubmitEditing
(0bcb0c2b2f by @zhongwuzw) - TextInput: Fixed problem with third party libraries overwriting
inputAccessoryView
(d34032b6c0 by @kirillzyusko) - TextInput: Workaround for Mac Catalyst TextInput crash due to serialization attempt of WeakEventEmitter (e04738b7ec by @rozele)
- TextInput: Fix
maxLength
not working in old arch (4b3ef3b00c by @mateoguzmana)