Commit Graph

33942 Commits

Author SHA1 Message Date
Thomas Nardone
7794d7af43 Add TextTransform KTX (#47525)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47525

This API is awkward for nullsafe code.  Adding an extension allows Kotlin code to use `applyTextTransform()` on either nullable or non-null strings:
```
val a: String = string.applyTextTransform(...)
val b: String? = nullableString?.applyTextTransform(...)
```
Changelog:
[Android][Added] TextTransform ktx

Reviewed By: javache

Differential Revision: D65618709

fbshipit-source-id: 28a0fe61a0eaf27aa9677af39d932982f3b694b2
2024-11-08 16:14:37 -08:00
David Vacca
34c157f6b3 Undeprecate UIManagerProvider in the new architecture (#47386)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47386

UIManagerProvider is actually useful to decouple client code from the FabricUIManagerClass
that's why I'm removing the DeprecatedInNewArchitecture annotation

changelog: [internal] internal

Reviewed By: cortinico

Differential Revision: D65430644

fbshipit-source-id: 46e95b9e40e99dd9ec6df9f2d51b1fa3d3d77d27
2024-11-08 16:13:17 -08:00
Sam Zhou
cd9ece0553 Pre-suppress errors ahead of turn on partial react 19 ref-as-prop support
Summary:
`react.ref_as_prop=experimental.partial_support` will expose errors where a ref prop is passed to a function component without ref prop. This diff pre-suppresses the newly exposed errors.

Changelog: [Internal]

Reviewed By: gkz

Differential Revision: D65686695

fbshipit-source-id: f241cc40f3ac414a2960dec60d9ba4633e5f93c0
2024-11-08 13:52:27 -08:00
Alex Taylor (alta)
84bfeec9b8 Deploy 0.252.0 to xplat + www (#47523)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47523

Changelog: [Internal]

Reviewed By: SamChou19815

Differential Revision: D65666666

fbshipit-source-id: 19f75611805777115febfca79d0945d31b7ea522
2024-11-08 12:27:49 -08:00
Pieter De Baets
2f7957f2fd Merge RawText sequences (#47278)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47278

When we have multiple spans of text inside a <Text> element, React will emit these as separate RawText ShadowNodes. RawText shadow nodes cannot have any properties beyond the text they contain, yet our current AttributedText logic will generate a separate span for each and duplicate all the relevant properties.

This can be particularly inefficient when JSX is used to interpolate strings, e.g. `<Text styles={styles.text}>Example {i}/{count}</Text>` results in 4 raw text elements with duplicated properties.

Changelog: [General][Changed] Improved AttributedText generation for raw text nodes.

Reviewed By: NickGerleman

Differential Revision: D65134912

fbshipit-source-id: dba4296ebe9987e989760cdee66f1e076fbb7a98
2024-11-08 11:32:51 -08:00
Jakub Piasecki
ee7b4e2763 Fix timers in headless tasks on bridgeless mode (#47496)
Summary:
Fixes https://github.com/facebook/react-native/issues/47495

`JavaTimerManager` is being registered to receive headless tasks events in the [`TimingModule`](0ee963ea65/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.kt (L28-L29)). This module is not used on bridgeless: [1](0ee963ea65/packages/react-native/Libraries/Core/setUpTimers.js (L44-L61)), [2](0ee963ea65/packages/react-native/Libraries/Core/setUpTimers.js (L123-L132)) and since it's loaded lazily, the event listener is never registered.

This PR moves registration to the constructor of `JavaTimerManager` and deregistration to the `onInstanceDestroy` method. This way the event listener is always registered when an instance of the timer manager exists.

## Changelog:

[ANDROID] [FIXED] - Fix timers in headless tasks on bridgeless mode

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

Test Plan: See the reproducer from the issue

Reviewed By: javache

Differential Revision: D65615601

Pulled By: alanleedev

fbshipit-source-id: 6e1d36f8783e813065f79730a928b99c3e385718
2024-11-08 11:07:26 -08:00
Pieter De Baets
e3c3a0c8a7 Migrate NativeModuleRegistryBuilder to Kotlin (#47508)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47508

Changelog: [Internal]

Reviewed By: tdn120

Differential Revision: D60037204

fbshipit-source-id: 2b405e492520e075b83a075009d25fb7b7fa8925
2024-11-08 10:37:37 -08:00
Pieter De Baets
2ec547ad28 Remove concurrentRoot from initialProps (#47512)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47512

As can be seen in `renderApplication`, `useConcurrentRoot` is no longer used to decide whether to run the application in concurrent mode, as we default all Fabric-users to concurrent root.

Changelog: [General][Removed] Removed type for useConcurrentRoot from AppRegistry, as it was already ignored

Reviewed By: sammy-SC, fabriziocucci

Differential Revision: D65660681

fbshipit-source-id: c99e5ae14d515015709908ed21a854c780f628e0
2024-11-08 10:26:50 -08:00
Tim Yung
090501d26d RN: Enable scheduleAnimatedEndCallbackInMicrotask (#47503)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47503

Enables the `scheduleAnimatedEndCallbackInMicrotask` feature flag that was introduced in https://github.com/facebook/react-native/pull/46714.

Changelog:
[General][Changed] - Callbacks passed to `animation.start(<callback>)` will be scheduled for execution in a microtask. Previously, there were certain scenarios in which the callback could be synchronously executed by `start`.

Reviewed By: javache

Differential Revision: D65645981

fbshipit-source-id: ac159208b7c1df60549baa52704bb0e704da0acf
2024-11-08 10:22:12 -08:00
Pieter De Baets
105f5f6000 Convert exceptions in com.facebook.react.bridge to Kotlin (#47493)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47493

Changelog: [Internal]

Reviewed By: tdn120

Differential Revision: D65597240

fbshipit-source-id: 8014c756d7730bea617f6d27eb1e56d75c9156cf
2024-11-08 09:31:12 -08:00
Alex Hunt
63ec67c591 Exclude Libraries/ReactPrivate/ from public-api-test
Summary:
As titled. This API is legacy / Meta-only.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D65666574

fbshipit-source-id: f9700486aec0306b305910bff14ae7f3df3fab7f
2024-11-08 09:16:21 -08:00
Sam Zhou
f5d7df6672 Pre-suppress errors to prepare for flow typing changes
Summary: Changelog: [Internal]

Reviewed By: cyan33

Differential Revision: D65633359

fbshipit-source-id: 7aaee2cab2d61b61eb5e1317d6b4ce58b6191fb8
2024-11-08 08:39:06 -08:00
Nicola Corti
7e268c9d52 Revert React 19RC to React 18.3.1 (#47380)
Summary:
While we're waiting for 19 stable, let's bring main back to 18.3.1 ahead of the 0.77 branch cut. We'll land this change just after 19 stable lands.

This is a cherry pick of b93b378fa0 which landed in 0.76 already

bypass-github-export-checks

## Changelog:

[INTERNAL] - Revert React 19RC to React 18.3.1

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

Test Plan: CI

Reviewed By: cipolleschi

Differential Revision: D65430775

Pulled By: cortinico

fbshipit-source-id: f0f211754c8ffe5d037fd299e4de52c29d1d7913
2024-11-08 08:27:37 -08:00
Pieter De Baets
8cb2ad6725 Improve robolectric shadows (#47460)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47460

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D65538979

fbshipit-source-id: 7a0b0f701968a9af9197246e6e89e0ccfd55653d
2024-11-08 06:14:13 -08:00
Fabrizio Cucci
697a422bf5 Migrate com.facebook.react.views.text.FontMetricsUtil to Kotlin (#47510)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47510

As per title.

Changelog: [Internal]

Reviewed By: tdn120

Differential Revision: D65598073

fbshipit-source-id: 401750f2df9bd434a8310f107f46a686bfa6601c
2024-11-08 06:10:22 -08:00
Nicola Corti
e64513bf4e RNGP - Do not attempt to substring to 1024 while logging. (#47509)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47509

Fixes https://github.com/facebook/react-native/issues/47504

Changelog:
[Android] [Fixed] - RNGP - Do not attempt to substring to 1024 while logging

Reviewed By: javache

Differential Revision: D65659586

fbshipit-source-id: 8fa16131cea96b8b6aa9c0224c7b990a4f51175f
2024-11-08 04:57:15 -08:00
Pieter De Baets
3c32da5bfe Convert com.facebook.react.bridge.NativeArray to Kotlin (#47456)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47456

Changelog: [Internal]

Reviewed By: tdn120

Differential Revision: D65486257

fbshipit-source-id: d18d38fd7e605918d79e370dda7df51abac2f23c
2024-11-08 04:31:46 -08:00
Pieter De Baets
fd72537202 Convert com.facebook.react.bridge.JavaOnlyArray to Kotlin (#47424)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47424

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D65479614

fbshipit-source-id: d2ab86eb0e8c68a5733c602652b4b8dccc09a0a1
2024-11-08 04:31:46 -08:00
Riccardo Cipolleschi
b32335c299 Only build ios in check nightlies (#47506)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47506

The Check nightlies job prepare a new nightly app with additional libraries and on iOS it builds with `yarn ios`.

The command tries to launch the app on the simulator which sometimes fails and this can make the jobs keep running for hours.

This change make sure that we only build the app

## Changelog:
[Internal] - Only build iOS in CI for Check Nightlies

Reviewed By: blakef

Differential Revision: D65656812

fbshipit-source-id: 14db3738f33f8024c9e99fe206b170209154bac7
2024-11-08 04:28:32 -08:00
Fabrizio Cucci
12180ca153 Migrate com.facebook.react.views.text.ReactTypefaceUtils to Kotlin (#47505)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47505

As per title.

Changelog: [Internal]

Reviewed By: tdn120

Differential Revision: D65596132

fbshipit-source-id: d08aea48ff293cc7f20ebc40a1d289dcb8158dcb
2024-11-08 04:03:46 -08:00
Tim Yung
f0ffcd4f5d RN: Enable enableAnimatedAllowlist and enableAnimatedPropsMemo (#47502)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47502

Enables the two following feature flags:

- `enableAnimatedAllowlist`
- `enableAnimatedPropsMemo`

The former enables the use of an experimental optimization to provide `unstable_createAnimatedComponentWithAllowlist` and `useAnimatedProps` an allowlist of props that reduces the set of props iterated over by to find props with `AnimatedNode` (e.g. `Animated.Value`) instance values.

The latter enables improved memoization logic in `Animated` so that its intenal state is invalidated less frequently, reducing the cost of updating `Animated` components.

Changelog:
[General][Changed] - Optimized the performance of updating `Animated` components.

Reviewed By: rozele

Differential Revision: D65645985

fbshipit-source-id: 85f9e53072f09a59589d76d0c096f4cedd17bb4b
2024-11-07 23:43:30 -08:00
Joe Vilches
cbab004eb9 Remove position type override on scroll view sticky headers (#47498)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47498

I am trying to help someone with creating a sticky header on a scrollview, specifically one that floats on the side of the scrollview instead of the top Currently we can't really do that, since utilizing `position: absolute` to layout this properly will get overriden by the header styles changed in this diff

This was only added since static was the default and we needed to apply zIndex. With proper static implementation that is no longer the case, so I think it makes sense to remove this to support this use case.

Changelog: [General] [Breaking] - `position` of sticky headers on `ScrollView` will now be taken into account

Reviewed By: rozele

Differential Revision: D65626544

fbshipit-source-id: 8d650ca7654918e692435935e7c1094c412fd9f6
2024-11-07 16:34:31 -08:00
Arushi Kesarwani
846c4b1ea2 Reducing visibility of ImageStoreManager (#47443)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47443

As part of sustainability week effort for switching to internal here:

https://fb.workplace.com/groups/251759413609061/permalink/872342228217440/

Reducing visibility of ImageStoreManager from public to internal

Changelog:
[Android] [Breaking] - Stable API - Make ImageStoreManager internal

Reviewed By: javache

Differential Revision: D65520953

fbshipit-source-id: 0207be6a5e0b92dbbaee534735fc829e9202727d
2024-11-07 15:32:43 -08:00
Thomas Nardone
d02da992a4 Convert + Internalize SwipeRefreshLayoutManager (#47470)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47470

Convert to Kotlin and formalize it being an internal class (some methods were already `protected` in Java)

Changelog:
[Android] [Breaking] - Stable API - Make SwipeRefreshLayoutManager internal

Reviewed By: cortinico

Differential Revision: D65481861

fbshipit-source-id: afc5c624373fbcd3ca2d28b2834d2682de672997
2024-11-07 11:39:35 -08:00
Ramanpreet Nara
8b053a4fca Implement always available js error handling (#47466)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47466

Now, when the useAlwaysAvailableJSErrorHandling feature flag is true, React Native will use the earlyjs c++ error reporting pipeline for handling all javascript errors!

Changelog: [Internal]

Reviewed By: javache

Differential Revision: D64715159

fbshipit-source-id: 597a5278eb792f87dca10e06fa9816b3a8c47b84
2024-11-07 11:22:57 -08:00
Fabrizio Cucci
791afd3209 Migrate com.facebook.react.views.text.ReactFontManager to Kotlin (#47488)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47488

As per title.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D65594248

fbshipit-source-id: 5a21baefb768b1c6f8ec0c33158812d1de6113d5
2024-11-07 10:23:27 -08:00
Pieter De Baets
bcdf6ad1af Convert com.facebook.react.bridge.JavaOnlyMap to Kotlin (#47479)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47479

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D65595979

fbshipit-source-id: be8217ef1fd9f59af57a1e100a4d9e86b66d8027
2024-11-07 10:16:21 -08:00
Tim Yung
bf31c8f077 RN: Feature Flag to Disable InteractionManager (#47475)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47475

Creates a feature flag to evalute the impact of disabling `InteractionManager` and replacing its scheduling behavior with `setImmediate`.

Changelog:
[Internal]

Reviewed By: javache

Differential Revision: D65577455

fbshipit-source-id: c0dc2b4d062eff4929ef37c5e217fd194addd790
2024-11-07 09:29:44 -08:00
Riccardo Cipolleschi
0ee963ea65 Cleanup after Codegen refactoring (#47483)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47483

I relaized too late that there were a couple of comments on [#47458](https://github.com/facebook/react-native/pull/47458) to add some explanation/remove commented code.

This change applies those comments

## Changelog
[Internal] - Cleanup after landing [#47458](https://github.com/facebook/react-native/pull/47458)

Reviewed By: dmytrorykun

Differential Revision: D65597157

fbshipit-source-id: 238bb75e4b45efae9a8736a7b4feb10f5af5e3d9
2024-11-07 07:53:07 -08:00
Peter Abbondanzo
425093863c Log image load errors (#47419)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47419

Minor improvements to `ImageExample` so we log when images fail to load. Also replaces a `Text` component with `RNTesterText` so it's legible.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D65363864

fbshipit-source-id: 6c7ce8d5af6aabfed21479c784911bdcffe4684e
2024-11-07 07:53:01 -08:00
Nicola Corti
7817ab5de2 Reland: Undo breaking change of UiManager.eventDispatcher by solving circular dependency (#47478)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47478

That's a reland of D65540601

The `UIManager.eventDispatcher` return type is wrong and is causing a breaking change in 0.77

For 0.76 we fixed it in the release branch but we should fix it for good in main as well.
To solve it I had to fix the circular dependency between .bridge and .uimanager.

I wish I could have isolated the .events package better but as everythign is public, any
change we do is going to be a breaking change so I'm being over cautios here.

Changelog:
[Android] [Fixed] - Undo breaking change of UiManager.eventDispatcher return type

Reviewed By: javache

Differential Revision: D65595391

fbshipit-source-id: fc7f6dce78e531c5ec0cc493ed90c0012262b77f
2024-11-07 05:25:17 -08:00
Alex Hunt
4567e2a897 Remove redundant UnimplementedView export from BackHandler (#47461)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47461

As titled, is overwritten later in the file.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D65546370

fbshipit-source-id: 4ea71d24e429b7bbded3e7bb7c75015a2c9d95d8
2024-11-07 05:13:53 -08:00
Riccardo Cipolleschi
9e399d940a Remove XCBeautify from CI (#47482)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47482

XCBeautify swallow some errors, especially all the linker errors when some symbol is not defined. The full error is not available in the raw log either.

This makes much harder to debug those issues when they happen.

We can remove xcbeautify for the time being, while we find a better solution.

## Changelog
[Internal] - Remove XCBeautify from ci

Reviewed By: dmytrorykun

Differential Revision: D65596745

fbshipit-source-id: 0550d4cbeadc5bec8acc61b5edc1320d3445bcaf
2024-11-07 04:57:49 -08:00
Riccardo Cipolleschi
ffa159e147 Set ASSUME_NONULL in codegen files (#47481)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47481

The Codegenerated files has this option turned off.
This is causing Xcode to output hundreds of warnings due to missing nullability options. RThis fixes them.

## CHANGELOG
[Internal] - Set ASSUME_NONNULL regions in codegen'd files

Reviewed By: dmytrorykun

Differential Revision: D65596598

fbshipit-source-id: bbf664944e103c05ef593a7e07bf5b767445950c
2024-11-07 04:50:55 -08:00
Mateo Guzmán
8bb3033d73 fix(flow): excluding packages/rn-tester/Pods/ from flow checks (#47474)
Summary:
When running the commands to check the flow types locally, there is quite some noise from files under `packages/rn-tester/Pods` that should not be checked as they are not from the source code itself.

<img width="839" alt="Screenshot 2024-11-07 at 00 50 55" src="https://github.com/user-attachments/assets/7ad3d96d-0f4a-4772-9e37-34d7e593b4cf">

## Changelog:

[INTERNAL] [FIXED] - Excluding `packages/rn-tester/Pods/` from flow checks

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

Test Plan:
```bash
yarn flow
```

Reviewed By: cortinico

Differential Revision: D65594400

Pulled By: cipolleschi

fbshipit-source-id: d5e8828f41fc87c9a95293c250f24673ebbc6cd4
2024-11-07 04:37:19 -08:00
Riccardo Cipolleschi
ace690aba9 Generate RN specific Files in RN (#47458)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47458

We are in a weird situation where React Native depends on some files that are generated by Codegen.

Codegen runs in the user project, so those dependencies are not available to React Native if we try to build it in isolation.

This is a problem and a blocker to prepare the prebuilds for iOS.

This image show the changes we are introducing:
On the right we have the current situation.
On the left the new one.

{F1954418630}

## Changelog:
[Internal] - Generate React Native specific code inside React Native

Reviewed By: cortinico, blakef

Differential Revision: D65541505

fbshipit-source-id: 1412d7f23c4d2230b795af41f1e832c8a70d5859
2024-11-07 04:08:58 -08:00
Oskar Kwaśniewski
5e18f7f788 fix: typo in spm.rb (#47480)
Summary:
This PR fixes a typo in spm.rb

## Changelog:

[IOS] [FIXED] - Typo in spm.rb

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

Test Plan: N/a

Reviewed By: GijsWeterings

Differential Revision: D65596339

Pulled By: cortinico

fbshipit-source-id: c318cec1422dbcb322e70dc5f189d86af42b626d
2024-11-07 04:01:20 -08:00
Alan Lee
fb69f406df Make IntentModule Nullsafe (#47430)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47430

Make IntentModule Nullsafe.
Fixed nullability warnings.

Changelog: [Internal]

Reviewed By: tdn120

Differential Revision: D65463226

fbshipit-source-id: 2da597e66ad170ec4a2a2949348e522bb361c209
2024-11-07 01:03:33 -08:00
Tim Yung
2dab7b078d ScrollView: Delete unstable_setEnableSyncOnScroll (#47399)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47399

Deletes `unstable_setEnableSyncOnScroll` which we are no longer experirmenting with in React Native.

Changelog:
[Internal] - Deleted `unstable_setEnableSyncOnScroll` on `ScrollView`, which was never part of the React Native Public API.

Reviewed By: tdn120, sammy-SC

Differential Revision: D65449039

fbshipit-source-id: 6608d5ccca477f1da5e0168c4a342cce17014b08
2024-11-07 00:00:14 -08:00
Yedidya Feldblum
f01b47257a let PointerValue::invalidate() be noexcept (#47354)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47354

`PointerValue::invalidate()` is called from `Pointer` destructor, which is implicitly `noexcept`, and from `Pointer` move-assignment operator, which is now `noexcept`.

Reviewed By: neildhar

Differential Revision: D65271399

fbshipit-source-id: 26fd9707e4389da78537d0d607adaef0c68690ca
2024-11-06 23:10:36 -08:00
Mathieu Acthernoene
7a6c7a462a feat(android): Edge-to-edge Modal (navigationBarTranslucent prop) (#47254)
Summary:
The future of Android is [edge-to-edge](https://github.com/react-native-community/discussions-and-proposals/discussions/827) and to make the React Native developer experience seamless in this regard, the ecosystem needs to transition from “opaque system bars by default” to “edge-to-edge by default.”

Currently, there's no easy way to have edge-to-edge modals, as they are implemented using `Dialog` instances (a separate `Window`) and only provide a `statusBarTranslucent` prop.

I tried to implement it in [`react-native-edge-to-edge`](https://github.com/zoontek/react-native-edge-to-edge) by listening to the `topShow` `UIManager` event. But if it works well when there's a defined animation, we can see a quick jump when there's none, because there's too much delay before the event, and edge-to-edge cannot be applied quick enough to the dialog window.

### react-native-edge-to-edge implem with animation (no jump)

https://github.com/user-attachments/assets/4933a102-87a5-40e4-98d9-47f8c0817592

### react-native-edge-to-edge implem without animation (jump)

https://github.com/user-attachments/assets/e4675589-08fe-44fe-b9d8-0a6b3552b461

 ---

For this reason, and because listening to event feels a bit hacky, I think it will be better to go for a new prop directly on RN Modal component: `navigationBarTranslucent`

> [!NOTE]
> `navigationBarTranslucent` cannot be used without `statusBarTranslucent`, as setting both enable edge-to-edge, like [AndroidX would do](https://github.com/androidx/androidx/blob/androidx-main/activity/activity/src/main/java/androidx/activity/EdgeToEdge.kt) and it would requires extra (and unecessary, given the direction Android is taking) work to find a way to keep the status bar opaque but the navigation bar transparent that work on Android 6 to 15+

### Additional infos

- Colors used for the buttons navigation bar in the PR are the default Android ones ([light](https://github.com/androidx/androidx/blob/androidx-main/activity/activity/src/main/java/androidx/activity/EdgeToEdge.kt#L37) and [dark](https://github.com/androidx/androidx/blob/androidx-main/activity/activity/src/main/java/androidx/activity/EdgeToEdge.kt#L42))
- Compared to the Google implementation, the light scrim is applied from `O_MR1` to `Q` (and not `O` to `Q`) as the [`android:windowLightNavigationBar`](https://developer.android.com/reference/android/R.attr#windowLightNavigationBar) style attribute is not available on `O` (it can only be applied programmatically on API 26).

## Changelog:

[ANDROID] [ADDED] - Add navigationBarTranslucent prop to Modal component

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

Test Plan:
Run the tester app, toggle `navigationBarTranslucent`:

https://github.com/user-attachments/assets/286d173b-35a5-4951-9105-f9f7562d6764

-----
did some additional testing with RNTester using different justification

|flex-start|flex-end|
|https://pxl.cl/5Rd20|https://pxl.cl/5Rd21|

Reviewed By: javache

Differential Revision: D65103501

Pulled By: alanleedev

fbshipit-source-id: ef6473ecd785976d3e26c77bbc212222ec96c9f2
2024-11-06 21:09:36 -08:00
Liron Yahdav
61e660b40e Expose some VirtualizedList functions to allow creating VirtualizedListContextProvider outside of VirtualizedList (#47463)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47463

Note this is just a temporary approach which will be cleaned up later.

Changelog: [Internal]

Reviewed By: yungsters

Differential Revision: D65514902

fbshipit-source-id: f722031c5cd34eb1400b3f732fd94c0b03d5434d
2024-11-06 20:15:08 -08:00
Nicola Corti
46526fc2fe Stable API - Make classes inside com.facebook.react.views.progressbar internal (#47376)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47376

This makes several classes inside `com.facebook.react.views.progressbar` internal:
- ReactProgressBarViewManager
- ProgressBarShadowNode
- ProgressBarContainerView

Those classes should have not been exposed in the first place and users should not depend on them directly.
Marked as Breaking but verified that there are no meaningful usages in OSS.

Changelog:
[Android] [Breaking] - Stable API - Make classes inside `com.facebook.react.views.progressbar` internal

Reviewed By: javache

Differential Revision: D65423290

fbshipit-source-id: dc98fdca996eb648593adb2c32787cbf0d878e3e
2024-11-06 18:32:38 -08:00
Sam Zhou
0ca2ba082d Fix final few problematic React.ElementRef in react-native (#47473)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47473

For example,

```
declare function C<T>(ref: React.RefSetter<Set<T>>): React.Node;

type T = React.ElementRef<typeof C>
```

Previously Flow will evaluate `T` to `Set<mixed>`, by automatically replacing generic types with their upper bounds. But in the future it might be replaced with `empty`.

This diff cleans up instances like this in react-native codebase.

Changelog: [Internal]

Reviewed By: alexmckenley

Differential Revision: D65562571

fbshipit-source-id: bca2f4f022a5a23a5aa40886f5661899cb315f2e
2024-11-06 18:14:19 -08:00
Phillip Pan
8e375f0505 introduce internal API to reload bridgeless without surface restart (#47404)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47404

Changelog: [Internal]

introducing an internal API to reload without starting up the surfaces that were stopped at time of reload

Reviewed By: sammy-SC

Differential Revision: D65461606

fbshipit-source-id: 9e58bebdc3e03ead7f91376b7aaba5c7944bddcf
2024-11-06 18:13:34 -08:00
David Vacca
bc3ea5c957 Revert migration of ReactHorizontalScrollContainerViewManager to use ViewManagerInterface (#47472)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47472

using ViewManagerDelegates for ReactHorizontalScrollContainerViewManager which extends ReactClippingViewManager will introduce a bug (not updating props that are managed by ReactClippingViewManager)

I'm reverting the migration and we should fix the bug in codegen

This diff is a revert of D65428646

changelog: [internal] internal

Reviewed By: sammy-SC, Abbondanzo

Differential Revision: D65564730

fbshipit-source-id: ff183876321d4d36e51da8f38ff6f381207c7c3a
2024-11-06 18:04:31 -08:00
Ramanpreet Nara
50b3c2272f ExceptionsManager: Fix soft error reporting (#47465)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47465

When you do @(NO), in objc, it creates an NSNumber.

So this if condition actually evaluates to true:

```
if (@(NO))
```

This means that all soft errors will get logged as fatals on ios.

Changelog: [Internal]

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

Reviewed By: realsoelynn

Differential Revision: D65551648

fbshipit-source-id: 99b5bcb5fa1b0b5dc8055a3c86fc983863a25526
2024-11-06 17:58:27 -08:00
Alan Lee
e6090df7dc xplat/js/react-native-github/packages/react-native/ReactAndroid/src/main/java/com/facebook/perftest/PerfTestConfig.java (#47440)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47440

Removing file as it does not seem to be used

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D65457514

fbshipit-source-id: 39efa12176fe65a491fa4285099134f2bf753159
2024-11-06 15:43:58 -08:00
Alan Lee
c53d3e1901 xplat/js/react-native-github/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/util/ReactFindViewUtil.java (#47431)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47431

Convert Java to Kotlin

Changelog: [Internal]

Reviewed By: tdn120

Differential Revision: D65430703

fbshipit-source-id: a1fcab2dd577fe67a1507c330466dabe7483c843
2024-11-06 15:19:38 -08:00
Grace Nichols
147e6c3458 Revert D65540601: Undo breaking change of UiManager.eventDispatcher by solving circular dependency
Differential Revision:
D65540601

Original commit changeset: 4b1f62806baa

Original Phabricator Diff: D65540601

fbshipit-source-id: 9abc3a663882634bb7d42b16bc95d8c2934a2ca5
2024-11-06 12:58:27 -08:00