Commit Graph
36302 Commits
Author SHA1 Message Date
Alex Hunt 7a3da81478 Remove Learn Core warnings for JS APIs with >3y blame (#50840)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50840

Cleanup of index.js API removal warnings. This should motivate more urgency on the remaining members.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D73429537

fbshipit-source-id: 03faabdf30c2836dd5c61b4a2ce8d2355ad8e1e9
2025-04-22 08:01:35 -07:00
Nicola Corti be37e1b7d8 Convert to Kotlin - ReactTextAnchorViewManager (#50841)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50841

This diff convert to Kotlin the following file: ReactTextAnchorViewManager.java
Changelog:
[Internal] [Changed] -

Reviewed By: rshest

Differential Revision: D72778863

fbshipit-source-id: d088005573763c95475cfd2ff712a094f764940b
2025-04-22 07:15:12 -07:00
Mateo Guzmán 2b0189b964 Skip cloning Fragments in ListEmptyComponent to avoid onLayout warning (#50833)
Summary:
Fixes https://github.com/facebook/react-native/issues/50817

Using a fragment is very common when rendering elements. We are cloning and adding `onLayout` always to the ListEmptyComponent element, but this would seem to work only when `View` is used for this as a wrapper in this prop. To prevent this unnecessary warning, I think we can easily check whether it is a fragment or not before cloning and adding the extra props – this adds backwards compatibility for those that don't need to use `onLayout`.

## Changelog:

[GENERAL] [FIXED] - Skip cloning Fragments in ListEmptyComponent to avoid onLayout warning

Pull Request resolved: https://github.com/facebook/react-native/pull/50833

Test Plan: Use the code snippet from the linked issue to verify that the warning is not thrown anymore when using a Fragment.

Reviewed By: javache

Differential Revision: D73421503

Pulled By: rshest

fbshipit-source-id: 0da4a38130601943e4704589ac275eba39767191
2025-04-22 07:06:07 -07:00
Pieter De Baets 04348e9db6 Convert com.facebook.react.runtime.ReactInstance to Kotlin (#50664)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50664

Changelog: [Internal]

Reviewed By: mlord93

Differential Revision: D72804418

fbshipit-source-id: 776adcb4c6cd6ad867525ac28cda8089c56f1ae5
2025-04-22 06:18:25 -07:00
Mateo Guzmán ffd7691505 Fix out-of-date "Direct Manipulation" link (#50834)
Summary:
Was triaging an issue and saw this dead link that has changed. This diff adds the equivalent link that works.

<details>
<summary>See screenshot of previous link:</summary>

![image](https://github.com/user-attachments/assets/f17e72a0-75b2-4446-9f4b-7a6470580f17)

</details>

## Changelog:

[INTERNAL] - Fix out-of-date "Direct Manipulation" link

Pull Request resolved: https://github.com/facebook/react-native/pull/50834

Test Plan:
<details>
<summary>See screenshot of new link:</summary>

![image](https://github.com/user-attachments/assets/a284ba3c-050d-4c4c-9f8e-4770608f529a)

</details>

Reviewed By: cortinico

Differential Revision: D73421475

Pulled By: rshest

fbshipit-source-id: c9be165d2a27a3227d8337dc00456746627b8708
2025-04-22 06:07:06 -07:00
Mateo Guzmán 66a4a4d9fa Make MultiSourceHelper internal (#50793)
Summary:
This class can be internalized as part of the initiative to reduce the public API surface. I've checked there are [no relevant OSS usages](https://github.com/search?type=code&q=NOT+is%3Afork+NOT+org%3Afacebook+NOT+repo%3Areact-native-tvos%2Freact-native-tvos+NOT+repo%3Anuagoz%2Freact-native+NOT+repo%3A2lambda123%2Freact-native+NOT+repo%3Abeanchips%2Ffacebookreactnative+NOT+repo%3AfabOnReact%2Freact-native-notes+NOT+user%3Ahuntie+NOT+user%3Acortinico+NOT+repo%3AMaxdev18%2Fpowersync_app+NOT+repo%3Acarter-0%2Finstagram-decompiled+NOT+repo%3Am0mosenpai%2Finstadamn+NOT+repo%3AA-Star100%2FA-Star100-AUG2-2024+NOT+repo%3Alclnrd%2Fdetox-scrollview-reproductible+NOT+repo%3ADionisisChytiris%2FWorldWiseTrivia_Main+NOT+repo%3Apast3l%2Fhi2+NOT+repo%3AoneDotpy%2FCaribouQuest+NOT+repo%3Abejayoharen%2Fdailytodo+NOT+repo%3Amolangning%2Freversing-discord+NOT+repo%3AScottPrzy%2Freact-native+NOT+repo%3Agabrieldonadel%2Freact-native-visionos+NOT+repo%3AGabriel2308%2FTestes-Soft+NOT+repo%3Adawnzs03%2FflakyBuild+NOT+repo%3Acga2351%2Fcode+NOT+repo%3Astreeg%2Ftcc+NOT+repo%3Asoftware-mansion-labs%2Freact-native-swiftui+NOT+repo%3Apkcsecurity%2Fdecompiled-lightbulb+com.facebook.react.views.imagehelper.MultiSourceHelper).

## Changelog:

[INTERNAL] - Make com.facebook.react.views.imagehelper.MultiSourceHelper internal

Pull Request resolved: https://github.com/facebook/react-native/pull/50793

Test Plan:
```bash
yarn test-android
yarn android
```

Reviewed By: Abbondanzo

Differential Revision: D73250760

Pulled By: cortinico

fbshipit-source-id: 8c1103745d405a9ab36c1372f3ca6750ae8ce8e2
2025-04-22 05:55:01 -07:00
JatinDream11 5d1febf7de refactor: migrate BlobProvider.java to Kotlin (#50756)
Summary:
This PR aims to migrate BlobProvider from Java to kotlin as part of [50513](https://github.com/facebook/react-native/issues/50513)

## Changelog:
[ANDROID][CHANGED] – Migrate BlobProvider to Kotlin

Pull Request resolved: https://github.com/facebook/react-native/pull/50756

Test Plan: Tested on RN tester with both new and old arch

Reviewed By: rshest

Differential Revision: D73420896

Pulled By: cortinico

fbshipit-source-id: 4c9a26452a7e45a78c9698f699822b4ac855628c
2025-04-22 05:46:44 -07:00
Alan Lee 1fb04e2134 Fix Type comparison (v2) in TurboModuleInteropUtils.kt
Summary:
instead of explictly specifying fully qualified Java boxed types, use proper Kotlin syntax to refer to it.

 ---
👉 Notes on Java <> Kotlin type mapping !!!

See: Kotlin's Mapped Types; https://kotlinlang.org/docs/java-interop.html#mapped-types
- kotlin `Boolean` maps to Java's primitive type `boolean` and not boxed Type `Boolean`
- Java boxed type `Boolean` maps to `Boolean?` in Kotlin

So in Kotlin,
- `Boolean::class.java` refers to Java primitive type `Class<boolean>` which is equivalent to `Boolean::class.javaPrimitiveType`
- For boxed type use `Boolean::class.javaObjectType` == `Class<Boolean>`

**TIP:** When dealing with Java primitive types using reflection, use `::class.javaPrimtiveType` or `::class.javaObjectType` to avoid the confusion with using plain `::class.java`.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D73224138

fbshipit-source-id: 858093a22b38bfdad40b170d0cf80a440e503829
2025-04-22 05:11:30 -07:00
Joe Vilches f466e43a15 Label coopting RN Tester example (#50812)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50812

tsia, adding some accessibility examples that we have refined so far this half.
Changelog: [Internal]

Reviewed By: NickGerleman

Differential Revision: D73283176

fbshipit-source-id: 5bb451c1e79cd8bc92f333ef2fce82669ad0e971
2025-04-21 19:16:23 -07:00
Joe Vilches e9a0747a8f Text with links RN Tester example (#50811)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50811

tsia, adding some accessibility examples that we have refined so far this half.

Changelog: [Internal]

Reviewed By: NickGerleman

Differential Revision: D73281713

fbshipit-source-id: 42db49feba5c232e699afe01916425ddf11f4aea
2025-04-21 19:16:23 -07:00
Joe Vilches dc13a45907 Accessibility Order RN Tester example (#50810)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50810

tsia, adding some accessibility examples that we have refined so far this half.

Changelog: [Internal]

Reviewed By: NickGerleman

Differential Revision: D73280582

fbshipit-source-id: a1cc572522729d06b9a0227f0e5731e698f86cc3
2025-04-21 19:16:23 -07:00
David Vacca f8b7ab8733 Remove usages of ShadowNodes by fully releasing disableShadowNodeOnNewArchitectureAndroid() (#50838)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50838

This diff removes the usages of ShadowNodes in the new architecture by fully releasing disableShadowNodeOnNewArchitectureAndroid() feature flag.

changelog: [internal] internal

Reviewed By: alanleedev

Differential Revision: D72671083

fbshipit-source-id: a1505d02fd6bf7e87c7234581a26ef13768796a0
2025-04-21 18:43:27 -07:00
Jorge Cabiedes Acosta 57779cebf0 Fix border rendering incorrectly when it has translucent alpha (#50829)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50829

It is not appropriate to go through the fast path for border drawing when we have translucent border colors since it will cause overlapping borders to look weird.

Adding an if statement to prevent fastpath when the alpha value of any border is less than 255 (opaque)

Changelog: [Android][Fixed] - Fix translucent borders on Android overlapping bug

Reviewed By: NickGerleman

Differential Revision: D73145119

fbshipit-source-id: f22d0d55adca571d6b75725f6bc4753f98698763
2025-04-21 17:35:12 -07:00
Jorge Cabiedes Acosta 132a871b46 Change to use new Background and Border drawables by default (#50828)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50828

The new Background and Border drawables come with some correctness improvements and potential small perf gains on edge cases. We are now switching to using them by default.

Changelog: [Android][Changed] - Change to use new Background and new Border drawables by default

Reviewed By: NickGerleman

Differential Revision: D72082947

fbshipit-source-id: 7caeb279110b520bea760a4621184dc0de05cf78
2025-04-21 17:35:12 -07:00
Jorge Cabiedes Acosta aa89f7a01c Fix incorrect conditional for radial gradients (#50836)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50836

Made a typo on D71898565 when addressing lints

Changelog: [Internal]

Reviewed By: joevilches

Differential Revision: D73393379

fbshipit-source-id: 9fef08bddb5875ff5bd4e3da28c9ea2b93027642
2025-04-21 17:23:21 -07:00
Anupriya Verma bc90c839aa Add showsVerticalScrollIndicator in ScrollViewProps.cpp SetProp (#50798)
Summary:
https://github.com/facebook/react-native/blob/a3252def1990c0d0afba67a4698357bc91c5bb2a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp#L409

Need to add     `RAW_SET_PROP_SWITCH_CASE_BASIC(showsVerticalScrollIndicator);` as it's missing

Related PR: https://github.com/microsoft/react-native-windows/pull/14526
Resolves: https://github.com/facebook/react-native/issues/50779

## Changelog:

Add showsVerticalScrollIndicator in ScrollViewProps.cpp SetProp

Pick one each for the category and type tags:

[GENERAL] [ADDED] - Message

Windows : RNW

Pull Request resolved: https://github.com/facebook/react-native/pull/50798

Test Plan: Tested here: Related PR: https://github.com/microsoft/react-native-windows/pull/14526

Reviewed By: Abbondanzo

Differential Revision: D73291101

Pulled By: NickGerleman

fbshipit-source-id: 6db26d379d496c0652917cc326dfbcbd92dc3923
2025-04-21 16:28:51 -07:00
Ramanpreet Nara aa41184633 Take 2: Mitigate deadlock hazard in RCTUtils.m (#50807)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50807

This structure is unsafe:

```
// In each native module:
+load
  dispatch_once
    NSBundle mainBundle
```

NSBundle mainBundle itself uses dispatch_once during initialization. If that initialization triggers a native module class load, we could end up with a circular dependency chain. This could deadlock the application.

## Changes
Just remove the dispatch_once. Getting the NSBundle mainBundle is very efficient after the first access. And NSBundle objectForInfoDictionaryKey is also very efficient.

Created from CodeHub with https://fburl.com/edit-in-codehub

Changelog: [Internal]

Reviewed By: NickGerleman

Differential Revision: D73265906

fbshipit-source-id: f718e5bba7e95517613204b1f95e1b637e6c2366
2025-04-21 15:49:27 -07:00
Phillip Pan 5b5cf0e199 cleanup queue configs for some native modules (#50832)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50832

Changelog: [iOS][Breaking]

these experiences did not end up shipping, so cleaning them up.

Reviewed By: fkgozali

Differential Revision: D73343958

fbshipit-source-id: ff0dc1394748c897aed9c66513b250dfc2192e0d
2025-04-21 15:09:54 -07:00
Alan Lee 77f2c610db fixed wrong class name in string (#50831)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50831

fixed wrong class name in string

Changelog:
[Internal]

Reviewed By: Abbondanzo

Differential Revision: D73370669

fbshipit-source-id: 76529099b1eabc4e23333fb97aec2c9b613ee7e0
2025-04-21 14:32:26 -07:00
David Vacca 7284bea018 Delete unused tag constant in LegacyArchitectureLogger (#50819)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50819

Delete unused tag constant in LegacyArchitectureLogger

changelog: [internal] internal

Reviewed By: mlord93

Differential Revision: D73322326

fbshipit-source-id: 38463792675094db721d1fa018185d4aed17c1d8
2025-04-21 12:26:41 -07:00
George Zahariev 6ad41f9a3f Update hermes-parser and related packages in xplat to 0.28.1 (#50803)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50803

Bump hermes-parser and related packages to [0.28.1](https://github.com/facebook/hermes/blob/main/tools/hermes-parser/js/CHANGELOG.md).

Changelog: [internal]

Reviewed By: panagosg7

Differential Revision: D73242526

fbshipit-source-id: fbe0a233b4ae1315eb0e060c6338eb7156a5c6ea
2025-04-21 07:50:22 -07:00
David Richey 634f06688c Apply SWIFTFORMAT to fbsource
Summary:
```
hg files -I '**/*.swift' \
| arc lint \
  --take SWIFTFORMAT \
  --apply-patches \
  --no-paths-check \
  --paths-from - \
  --eden-prefetch \
  --output none \
  > /dev/null
```

Reviewed By: ebgraham

Differential Revision: D73276943

fbshipit-source-id: 5432642a217fc1fa37eb97409a2cc282f65c3117
2025-04-20 18:08:18 -07:00
David Vacca 0bdf7bf2c4 Log LegacyArchitectureLogger asserts only in Debug mode (#50818)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50818

Logging LegacyArchitectureLogger asserts only in Debug mode as that will give us enough information about wrong usages of Legacy Architecture at this point

changelog: [internal] internal

Reviewed By: fkgozali

Differential Revision: D73322301

fbshipit-source-id: 981a26b1bd7c89080f35ef0ab27677b0a38f2665
2025-04-20 13:44:24 -07:00
Nick Gerleman f98c227ee9 Fix Android Gradle Build and Missing Buck Build for Test (#50813)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50813

This is already in the same package, which makes Gradle build unhappy. Then, this wasn't invoked at all by a Buck build, because we have target per folder. Let's fix those.

Changelog: [Internal]

Reviewed By: yungsters

Differential Revision: D73286269

fbshipit-source-id: 6100c83e6607705160e4602e8637e3b1ebe8f28b
2025-04-18 18:01:56 -07:00
Tim Yung f2518d4374 RN/Metro: Configure Transformer for React 19 (#50809)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50809

Configures `react-native/metro-babel-transformer` (used by `react-native/babel-preset`) to parse source using `hermes-parser` to target React 19. This changes components written with Component Syntax to stop generating `forwardRef` calls (because `ref` is now a prop).

Most of this was already accomplished in https://github.com/facebook/react-native/pull/50377 ({D72070021}), but this call site was missed.

Changelog:
[General][Changed] - Configured Hermes Parser to target React 19, resulting in Component Syntax no longer producing `forwardRef` calls.

Reviewed By: elicwhite

Differential Revision: D73279825

fbshipit-source-id: c0d64cb8c0adb22b78c5fbed1b2c386c8b3f3ede
2025-04-18 17:14:47 -07:00
Joe Vilches db6e000023 Allow Switch to use default UISwitch accessibility annoucements (#50796)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50796

When we render a `Switch` today we are never actually focusing on the native `UISwitch` that gets rendered. We instead focus on the parent `RCTViewComponentView` which houses the `UISwitch` as a `contentView`. That is because of [this logic](https://www.internalfb.com/code/fbsource/[b7e1547dab5a]/xplat/js/react-native-github/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm?lines=1211-1213). This blocks the accessibility of any descendants, including the `contentView`.

What we lose here is the announcement of "on" and "off" based on the toggle state that comes built into `UISwitch`. To do this today you need to add `accessibilityState={{checked: ...}}` which is very unintuitive. Android DOES announce "on" and "off".

We can fix this with an override on the switch class.

Changelog: [iOS][Fixed] - Fix "on" and "off" announcements on `Switch`

Reviewed By: realsoelynn

Differential Revision: D73226500

fbshipit-source-id: ff4eed0b0b4b978e4b59c5e4b37d880373f6506c
2025-04-18 15:33:42 -07:00
Nick Gerleman f6589177ce Fix logic around hiding chrome with deeplinks on small screen (#50806)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50806

1. `useWindowDimensions` is already returning in DIPs, my math was just wrong before
2. Playground is marking itself as a deeplink when it shouldn't be

Changelog: [internal]

Reviewed By: cortinico, joevilches

Differential Revision: D73221335

fbshipit-source-id: 32dfa9d60609faccef8e264aa46d64b79250b64d
2025-04-18 15:31:57 -07:00
Jakub Piasecki 5fd5188172 Fix TextInput onContentSizeChange event being dispatched only once on iOS (#50782)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50782

Changelog: [IOS][FIXED] Fix TextInput `onContentSizeChange` event being dispatched only once on iOS on the new architecture

Currently, the comparison to decide whether to send event happens between the content size before and after layout metrics update. Those values turn out to be the same in all but the first call.

This updates the logic to use the previously send values in the comparison.

Reviewed By: huntie

Differential Revision: D73182563

fbshipit-source-id: 3b764a89c1844e203001d75022a3295a3fd747f2
2025-04-17 23:54:07 -07:00
Nick Gerleman 3e5c609a1e Back out "Mitigate deadlock hazard in RCTUtils.m" (#50795)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50795

This diff causes `rntester-ios` to launch into legacy architecture by default.

Changelog: [Internal]

Reviewed By: joevilches

Differential Revision: D73225574

fbshipit-source-id: 9a4f1967bbabd23936cf2faf9a2bf48a850a4d11
2025-04-17 20:14:06 -07:00
nishan (o^▽^o) 1b45dc8033 feat: radial gradient js prop passing (#50268)
Summary:
Adds JS changes for radial gradient. Previous PR - https://github.com/facebook/react-native/pull/50209

## Changelog:
[GENERAL] [ADDED] - Radial gradient
<!-- Help reviewers and the release process by writing your own changelog entry.

Pick one each for the category and type tags:

For more details, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests

Pull Request resolved: https://github.com/facebook/react-native/pull/50268

Test Plan:
- Added tests in `processBackgroundImage-test.js` in https://github.com/facebook/react-native/pull/50268
- Merge this, https://github.com/facebook/react-native/pull/50266 and https://github.com/facebook/react-native/pull/50269 and check examples in `RadialGradientExample.js`

Reviewed By: NickGerleman

Differential Revision: D71898524

Pulled By: jorge-cab

fbshipit-source-id: 39bdf0f647ba19839b6e6deb09b30a1c337e6457
2025-04-17 16:39:44 -07:00
nishan (o^▽^o) a2409941c2 feat: radial gradient android changes (#50269)
Summary:
Adds android changes for radial gradient. Previous PR - https://github.com/facebook/react-native/pull/50209

## Changelog:
[ANDROID] [ADDED] - Radial gradient
<!-- Help reviewers and the release process by writing your own changelog entry.

Pick one each for the category and type tags:

For more details, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests

Pull Request resolved: https://github.com/facebook/react-native/pull/50269

Test Plan:
- Added tests in processBackgroundImage-test.js in https://github.com/facebook/react-native/pull/50268
- Merge this and [this](https://github.com/facebook/react-native/pull/50268) and check examples in `RadialGradientExample.js`

Reviewed By: NickGerleman

Differential Revision: D71898546

Pulled By: jorge-cab

fbshipit-source-id: 2872bcf16a492c7bc829be10eedb0f6c7dad32c7
2025-04-17 16:39:44 -07:00
nishan (o^▽^o) d7533dce1c feat: radial gradient iOS (#50266)
Summary:
Adds iOS changes for radial gradient. Previous PR - https://github.com/facebook/react-native/pull/50209

## Changelog:
[IOS] [ADDED] - Radial gradient
<!-- Help reviewers and the release process by writing your own changelog entry.

Pick one each for the category and type tags:

For more details, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests

Pull Request resolved: https://github.com/facebook/react-native/pull/50266

Test Plan:
- Added tests in `processBackgroundImage-test.js` in https://github.com/facebook/react-native/pull/50268
- Merge this, https://github.com/facebook/react-native/pull/50268 and check examples in `RadialGradientExample.js`

Reviewed By: joevilches

Differential Revision: D71898565

Pulled By: jorge-cab

fbshipit-source-id: ac00c7c3cc7dcbe9116c2d60dac8eb1a87153908
2025-04-17 16:39:44 -07:00
Mohd. Yasir Ansari 867858df65 refactor: migrate DynamicFromObject to Kotlin (#50754)
Summary:
PR migrates DynamicFromObject class to Kotlin as part of https://github.com/facebook/react-native/issues/50513 work.

## Changelog:

[ANDROID] [CHANGED] - Migrated DynamicFromObject to Kotlin

Pull Request resolved: https://github.com/facebook/react-native/pull/50754

Test Plan: Run RN-Tester application and played around with it a bit.

Reviewed By: mlord93

Differential Revision: D73118014

Pulled By: alanleedev

fbshipit-source-id: 84958ff07ccafea9ec3dbdf06467c638eb92d49d
2025-04-17 15:54:18 -07:00
Ramanpreet Nara fa9d082747 Bridgeless: Fix unstable_hasComponent
Summary:
unstable_hasComponent(component) first registers the component with react native, if possible. Then, it returns you whether registration succeeded.

## Problem
For unregistered components, the initial call returns false. But, all subsequent calls return true.

The reason why: After the initial call fails, react native registers unimplemented view under that component name. So, all subsequent calls return true.

## Solution
Just record the initial loopup result. And always return that initial lookup result from this method.

Changelog: [iOS][Fixed] Fix bug: unstable_hasComponent(*) = true for unregistered components for n > 1th call.

Reviewed By: yungsters

Differential Revision: D73127468

fbshipit-source-id: ee30bde486a6bb970f40f654c65a8946452f49b3
2025-04-17 14:33:26 -07:00
Nick Gerleman f144b53122 Remove "usesMapBufferForStateData" template parameter from ConcreteShadowNode and ConcreteState
Summary:
These internals have leaked pretty far. As we are adding support for JNI reference state wrappers, lets hide this, and make functions for getting MapBuffer work automatically if state data exposes the requisite functions, instead of external users needing to worry about multiple possible `ConcreteState` types for a given state data type.

Changelog: [Internal]

Reviewed By: rshest

Differential Revision: D73158627

fbshipit-source-id: e3ac2a045368d46fab72e2017fc28d680db6a7c0
2025-04-17 14:25:22 -07:00
Nicola Corti f1f2788410 Re-add an eventName field inside Event.kt to unbreak several libraries (#50787)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50787

Converting Event from Java to Kotlin resulted in a number of breaking changes for Kotlin
libraries that were using an `.eventName` accessors from the `getEventName()` Java method.

This diff re-adds the `eventName` property without backing field.
This could potentially be disruptive in OSS but only one library is affected:
https://github.com/search?type=code&q=%22import+com.facebook.react.uimanager.events.Event%22+%22val+eventName%3A%22+%22%3A+Event%3C%22+language%3AKotlin+path%3A*Event.kt+NOT+is%3Afork+NOT+org%3Afacebook+NOT+path%3AInteropEvent.kt

Changelog:
[Internal] [Changed] -

Reviewed By: cipolleschi

Differential Revision: D73193202

fbshipit-source-id: a69159950e1ef275c93f265f264525236a19d1db
2025-04-17 13:06:13 -07:00
Alex Hunt 16a61bf2ba Remove .npmignore files from other packages, add lint check (#50786)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50786

Follows https://github.com/facebook/react-native/pull/50784. Having any `.npmignore` files is a gotcha — remove and replace with `package.json#files`.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D73193257

fbshipit-source-id: de715d74195e4f53c817c11f244a61c79b8ce5bc
2025-04-17 12:48:28 -07:00
Alex Hunt 09187491a6 Align __test_fixtures__ to __fixtures__ (#50785)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50785

Enables us to simplify exclude patterns in `package.json#files`.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D73185320

fbshipit-source-id: 40219a0e440740bec35876fff6e37e4bf4fe9ddc
2025-04-17 12:48:28 -07:00
Alex Hunt d1cf58484d Replace .npmignore files, ignore all test/fixture/docs directories (#50784)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50784

Migrates us from several `.npmignore` files to `package.json#files`, for the main `react-native` package.

This reduces the size of our npm package by 38 files — in particular, catching previously missed `__tests__` and `__docs__` directories.

```diff
- npm notice package size: 4.4 MB
- npm notice unpacked size: 23.7 MB
- npm notice total files: 4533
+ npm notice package size: 4.4 MB
+ npm notice unpacked size: 23.7 MB
+ npm notice total files: 4533
```

NOTE: `"files"` or `.npmignore` — one or the other!
- Having `.npmignore` at the package root does not behave(!). Having `"files"` as one source of truth is better and safer. See https://github.com/npm/cli/issues/6221.

Changelog: [Internal]

Reviewed By: hoxyq

Differential Revision: D73185321

fbshipit-source-id: 429c9fec4f447d63440a38bb8e3f3ce3bd155414
2025-04-17 12:48:28 -07:00
generatedunixname89002005287564 cd5991c648 Fix CQS signal. Id] 19045409 -- readability-redundant-string-init in xplat/js/react-native-github/packages/react-native/ReactCommon/react/renderer/components/view
Reviewed By: dtolnay

Differential Revision: D73175242

fbshipit-source-id: 4f79d0f661a15fda883eb9f03c42040da9a740c8
2025-04-17 11:59:57 -07:00
Gijs Weterings e2232090d7 Update Danger to 13.0.4
Summary:
parse-git-config is a transitive dep for Danger that hasn't been updated in years and has an unresolved CVE (CVE-2025-25975)

Danger has moved away from this dependency yesterday and cut a new version, so we can update to resolve

Changelog: [General][Fixed] Update Danger to 13.0.4

Reviewed By: cortinico

Differential Revision: D73181590

fbshipit-source-id: e5c512e6f381725eea71d64555018327144e23be
2025-04-17 09:49:03 -07:00
Alex Hunt 2410fc97b7 Reorganise dev tooling/debugging modules as src/private/devsupport/ (#50730)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50730

This is a consolidation of our "dev support" features in the `src/private/` dir.

New grouping:

- `src/private/devsupport/`
    - `devmenu/` — The Dev Menu and in-app inspection features (in-app UI)
        - `elementinspector/` — The Element Inspector overlay (panel with sub-features), accessed from  Dev Menu → Toggle Element Inspector
        - `perfmonitor/` — The Perf Monitor overlay, accessed from Dev Menu → Show Perf Monitor
    - `rndevtools/` — Modules supporting React Native DevTools (external UI)

`NativeReactDevToolsRuntimeSettingsModule.js` and `NativeReactDevToolsSettingsManager.js` are also moved out of `specs_DEPRECATED/`.

Changelog: [Internal]

Reviewed By: hoxyq

Differential Revision: D73031559

fbshipit-source-id: 952a469f31f4cd05aeed27dc7023552e723ca078
2025-04-17 09:43:48 -07:00
Nicola Corti a3d38d5722 Kotlin to 2.1.20 (#50780)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50780

This bumps Kotlin to the latest stable: 2.1.20.
I've also fixed several warnings emitted by the new compiler.

Changelog:
[Android] [Changed] - Kotlin to 2.1.20

Reviewed By: rshest

Differential Revision: D73122000

fbshipit-source-id: 019a01d085b2c115a3efcf567056e9990a1ff0ce
2025-04-17 08:40:20 -07:00
Jakub Piasecki 6bc9447506 Update TextInput props, expose more types from the package (#50781)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50781

Changelog: [Internal]

Reviewed By: huntie

Differential Revision: D73180987

fbshipit-source-id: e47d8fa674ab7e5e821e9786f8069c0b7466a082
2025-04-17 08:03:30 -07:00
Bogusz Kaszowski 74e8c78268 refactor: migrate DynamicFromArray to Kotlin (#50602)
Summary:
PR migrates DynamicFromArray class to Kotlin as part of https://github.com/facebook/react-native/issues/50513 work.

## Changelog:

[ANDROID] [CHANGED] - Migrated DynamicFromArray to Kotlin

Pull Request resolved: https://github.com/facebook/react-native/pull/50602

Test Plan: Run RN-Tester application and played around with it a bit.

Reviewed By: rshest

Differential Revision: D73179609

Pulled By: cortinico

fbshipit-source-id: e304884fea9f57e152bca4926677d7338dc2403a
2025-04-17 07:23:48 -07:00
Nick Lefever 95ca59eb94 Add unit test for shadow node state on clone (#50774)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50774

Adding a Fantom test for the `useShadowNodeStateOnClone` feature flag, showing that the shadow node state is maintained after commit hook processing only when the feature flag is enabled.

Changelog: [Internal]

Reviewed By: rshest

Differential Revision: D73121159

fbshipit-source-id: bbd7f46fbf49394ca5015e825a59d2fb1b519ee5
2025-04-17 06:18:36 -07:00
Jakub Piasecki b3c110b0b2 Add a lint rule preventing named type imports from React (#50776)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50776

Changelog: [Internal]

Adds a lint rule that prevents the use of named imports when importing types from React. `flow-api-translator` relies on the `React` namespace being used when generating TypeScript definitions based on Flow.

Reviewed By: huntie

Differential Revision: D73170799

fbshipit-source-id: 96d014b016c7cec8d3b266447dc7a185d2b1da26
2025-04-17 05:39:22 -07:00
Gourav Khunger cb51d25ba8 refactor: FrescoBasedTextInlineImageSpan (#50532)
Summary:
I've migrated `FrescoBasedTextInlineImageSpan.java` to kotlin. Reference https://github.com/facebook/react-native/issues/50513.

## Changelog:

[ANDROID] [CHANGED] - Refactor class `FrescoBasedTextInlineImageSpan` from Java to Kotlin.

<!-- Help reviewers and the release process by writing your own changelog entry.

Pick one each for the category and type tags:

For more details, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests

Pull Request resolved: https://github.com/facebook/react-native/pull/50532

Test Plan: Tested the RN tester app with `yarn android` on both new and old architecture.

Reviewed By: rshest

Differential Revision: D73031024

Pulled By: cortinico

fbshipit-source-id: e7208bf1103849f38c3dc26d73b31315b2326275
2025-04-17 04:42:23 -07:00
riteshshukla04 f5ae157820 Added more test cases for URL (#50768)
Summary:
I forgot to add toString and protocol in test cases last time when we merged this https://github.com/facebook/react-native/pull/50043

## Changelog:

<!-- Help reviewers and the release process by writing your own changelog entry.

Pick one each for the category and type tags:

[ANDROID|GENERAL|IOS|INTERNAL] [BREAKING|ADDED|CHANGED|DEPRECATED|REMOVED|FIXED|SECURITY] - Message

For more details, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->
[INTERNAL][ADDED] More Test cases

Pull Request resolved: https://github.com/facebook/react-native/pull/50768

Test Plan: Tested with yarn jest

Reviewed By: rshest, cipolleschi

Differential Revision: D73169665

Pulled By: cortinico

fbshipit-source-id: 1115c0ccce52a67663fcd60ef376ce7bde502d1f
2025-04-17 03:18:13 -07:00
Rubén Norte 7ff5db3c46 Fix last Excalidraw SVG diagram in docs (#50765)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50765

Changelog: [internal]

TSIA

Reviewed By: andrewdacenko

Differential Revision: D73117512

fbshipit-source-id: fd575e819781e93c3f8bf796415b3ff03797fb07
2025-04-17 01:59:21 -07:00