Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/54042
Update the View component props to diff the `backgroundImage` property and assign the value to `experimental_backgroundImage` which maps to the `backgroundImage` property on the Android `ReactViewManager`.
Changelog: [Internal]
Reviewed By: christophpurrer
Differential Revision: D83788008
fbshipit-source-id: 5f9d93403af483c9494d2782aedad604cbb7cbbc
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/54039
Adding toDynamic conversion to `ColorStop` and `ValueUnit` structs which are being used by the linear and radial gradient data structures.
Changelog: [Internal]
Reviewed By: christophpurrer
Differential Revision: D83788006
fbshipit-source-id: 1ec0300ac4f17b65b6896d4d2c131eb05a059a22
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/54044
In rare cases, there may be a vertical ScrollView nested inside another vertical ScrollView. In these cases, when the requestChildFocus method is called, we may attempt to bring the entire focused child into view. However, we really only want to bring the entire nested ScrollView into view.
## Changelog
[Android][Fixed] Focused scroll into view behaviors for nested vertical scroll views
Reviewed By: bvanderhoof
Differential Revision: D83804043
fbshipit-source-id: 8df8f637e7f908cc283f55c0d78ee03ed3bb9117
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/54038
This diff adds a Log error to discourage usages of getJSModule(RCTEventEmitter) in new architecture, recommending migration to new API
changelog: [Android][Changed] Add Log error to discourage usages of getJSModule(RCTEventEmitter) API
Reviewed By: shwanton
Differential Revision: D83523928
fbshipit-source-id: d967456087a59366a3bca9590cb4d6d1fdd5b60d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/54023
Android 12 introduced a new AlertDialog that better fits a longer list of content.
Android 11 and earlier have an AlertDialog that has a very small list view, requiring users to scroll through to find what they need. This change also fixes Android 12+ enable/disable states on menu items, as it no longer uses `isEnabled` for styling.
Before:
{F1982416953}
After:
{F1982416486}
Android 12:
{F1982430956}
Changelog: [Internal]
Reviewed By: shwanton
Differential Revision: D83688775
fbshipit-source-id: a96120142f648e849be670bde5897c884f1f5f52
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/54022
Perf monitor shows in a broken state if metro is started while the app is running. This change improves the tracing and monitor lifecycle around the metro connection events.
Before:
{F1982430185}
After:
{F1982430062}
Changelog: [Internal]
Reviewed By: shwanton
Differential Revision: D83714223
fbshipit-source-id: 76826122924baa1a80c04dcc5ff18bc756a8e816
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/54029
Changelog: [Android][Fixed] Fixed `SoLoader` race condition in `InspectorNetworkRequestListener`
When enabling `LoadNetworkResrouce` with flag `nativeSourceCodeFetching` in `InspectorInterfaces.h`, running the app, and opening the debugger, the app was crashing with
```
No implementation found for void com.facebook.react.devsupport.inspector.InspectorNetworkRequestListener.onHeaders(int, java.util.Map)
(
tried
Java_com_facebook_react_devsupport_inspector_InspectorNetworkRequestListener_onHeaders
and
Java_com_facebook_react_devsupport_inspector_InspectorNetworkRequestListener_onHeaders__ILjava_util_Map_2
) - is the library loaded, e.g. System.loadLibrary?
```
Reviewed By: huntie
Differential Revision: D83741114
fbshipit-source-id: b878fb4680e6a51f9403e8dea2872da85254e024
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/54019
Currently the performance monitor flickers on boot if there's no metro connection. This change checks first if we have a packager before enabling the monitor.
No metro connection:
{F1982423105}
Metro connection:
{F1982423112}
Changelog: [Internal]
Reviewed By: shwanton
Differential Revision: D83701372
fbshipit-source-id: d099880d3ab509942a937a6bde11ebdde13450cd
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/54010
Bump Metro minimum to 0.83.3
This release fixes a regression in loading config files that export promises.
Full changelog: https://github.com/facebook/metro/releases/tag/v0.83.3
Changelog:
[General][Changed] Metro bump to ^0.83.3
Reviewed By: vzaidman
Differential Revision: D83655569
fbshipit-source-id: 106a957620e4591ef3cce21d327886354913560b
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/54011
Gets the `jsinspector-modern` (CDP backend) integration tests in React Native to pass when run against all relevant versions of Hermes: Legacy Hermes (`xplat/hermes`), Static Hermes stable (`xplat/shermes/stable`), and Static Hermes trunk (`xplat/static_h`).
This involves disabling the two types of failing test:
1. Tests that should be legitimately disabled because Static Hermes omits the legacy, pre-Fusebox debugger infra (see changes to `ReactInstanceIntegrationTest.cpp`)
2. Tests that should be passing but expose a current bug in Static Hermes (see changes to `JsiIntegrationTest.cpp`)
This provides a useful baseline for upcoming work in CDPDebugAPI (etc) across the different versions of Hermes.
Changelog: [Internal]
Reviewed By: huntie
Differential Revision: D83564896
fbshipit-source-id: c27f02266d63d58983c660ba0e4be5c44f02c9b6
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53787
CoreModulesPackage is part of legacy architecture and unused on new architecture, let's delete it
changelog: [internal] internal
Reviewed By: rshest
Differential Revision: D82235543
fbshipit-source-id: bd18a1e26929c1f4533175d7567c552e142fbebb
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/54009
Packages haven't been bumped on main ahead of 0.83. This takes care of it.
Changelog:
[Internal] [Changed] -
Reviewed By: cipolleschi, huntie
Differential Revision: D83580515
fbshipit-source-id: 7471e77f74e3fb3b4ee6538a49369b5df1393098
Summary:
This diff adds AnimatedProps class that allows prop diffs to be passed to the backend. Currently it is implemented through subclassing, but the implementation details are subject to change. To simplify integration with animation frameworks AnimatedPropsBuilder class was created - frameworks can use it to prepare their diffs.
## Changelog:
<!-- Help reviewers and the release process by writing your own changelog entry.
Pick one each for the category and type tags:
[GENERAL] [ADDED] - AnimatedProps.h AnimatedPropsBuilder.h
[GENERAL] [CHANGED] - AnimationBackend initialisation and style updates
For more details, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
Pull Request resolved: https://github.com/facebook/react-native/pull/53526
Test Plan:
js1 fantom AnimatedBackend-itest.js
js1 fantom Animated-itest.js
Reviewed By: zeyap
Differential Revision: D81309558
Pulled By: bartlomiejbloniarz
fbshipit-source-id: 92476568b6498d7ee64203f70a17c3e578de7ac1
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53995
### Summary
Exposes the animation backend via UIManager by introducing two new methods: `unstable_setAnimationBackend` and `unstable_getAnimationBackend`. The `NativeAnimatedNodesManagerProvider` is updated to initialize the animation backend using the `useSharedAnimatedBackend` feature flag.
## Changelog:
[GENERAL] [ADDED] - unstable_setAnimationBackend, unstable_getAnimationBackend in UIManager
[GENRAL] [CHANGED] - call unstable_setAnimationBackend in NativeAnimatedNodesManager
Reviewed By: zeyap
Differential Revision: D81137954
fbshipit-source-id: b9a45b1d1e694e28865c27181bcbd578c1b7b9a0
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53996
## Summary
This diff makes changes to the `NativeAnimatedNodesManager` and `AnimationBackend` to initialize the backend closer to the `UIManager`.
## Changelog:
[GENERAL] [CHANGED] - initialize the backend in NativeAnimatedNodesManagerProvider
Reviewed By: sammy-SC
Differential Revision: D81138133
fbshipit-source-id: 5be0c8d5f5e3593bcd8111bbd1d0e90502a53a0d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53994
# Summary
This diff introduces the Shared Animation Backend - a class that can be used by animation frameworks to schedule and run animation updates.
## Changelog:
[GENERAL] [ADDED] - AnimationBackend-itest.js AnimationBackend BUCK/CmakeLists
[GENERAL] [ADDED] - useSharedAnimationBackend feature flag
[GENERAL] [CHANGED] - make AnimatedNodesManager use the backend behind the flag
Reviewed By: zeyap, sammy-SC
Differential Revision: D80809364
fbshipit-source-id: dbfe273362410cdf2f9fc37d78adac7faf4cd118
Summary:
Following the [RFC](https://github.com/react-native-community/discussions-and-proposals/pull/925), this PR adds new `RCTDevMenu` configuration and extends `RCTReactNativeFactory` API for passing it to the particular `RCTHost`. The `RCTDevMenuConfiguration` includes:
- isDevMenuEnabled,
- isShakeGestureEnabled,
- areKeyboardShortcutsEnabled
## Changelog:
[IOS][ADDED] - Add new configuration for `RCTDevMenu`
<!-- 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
Pull Request resolved: https://github.com/facebook/react-native/pull/53505
Test Plan:
Tested with different configurations on `RCTDevMenuConfiguration`:
<details>
<summary>Click to view code</summary>
```objc
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.reactNativeFactory = [[RCTReactNativeFactory alloc] initWithDelegate:self];
#if USE_OSS_CODEGEN
self.dependencyProvider = [RCTAppDependencyProvider new];
#endif
RCTDevMenuConfiguration *devMenuConfiguration = [[RCTDevMenuConfiguration alloc] initWithDevMenuEnabled:true shakeGestureEnabled:false keyboardShortcutsEnabled:false];
[self.reactNativeFactory setDevMenuConfiguration:devMenuConfiguration];
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
[self.reactNativeFactory startReactNativeWithModuleName:@"RNTesterApp"
inWindow:self.window
initialProperties:[self prepareInitialProps]
launchOptions:launchOptions];
[[UNUserNotificationCenter currentNotificationCenter] setDelegate:self];
return YES;
}
```
</details>
Run helloworld:
<img src="https://github.com/user-attachments/assets/16c35176-6fbe-498c-96fd-a0fe988a5e3c" alt="hello-world-screenshot" width="300">
Reviewed By: cipolleschi
Differential Revision: D81684275
Pulled By: coado
fbshipit-source-id: 500e170c93df25949de433970442d20c442be7f2
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53998
As the previous few diffs, JSI `isArray` API should follow
`Array.isArray` from the JS spec.
The current implementation does not consider Proxy objects, only Array
exotic objects.
Changelog: [Internal]
Reviewed By: lavenzg
Differential Revision: D83391784
fbshipit-source-id: 6db8e5a48458a1aa57006fb0747f62ec78efa675
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53991
As part of D83474751 to migrate Store from arvr to xplat we discovered that ktx images are not setup correctly in xplat. Adding support for it in flow and jest
Changelog: [Internal]
Reviewed By: javache
Differential Revision: D83562581
fbshipit-source-id: 8c7205417dc24ca2d48a2e2fa1ca7dea40504c18
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53984
Changelog: [ANDROID][CHANGED] - Request layout on configuration change only when the font scale has changed
Wraps call to `requestLayout` in a condition to only run layout when the font scale has changed to prevent it from executing in response to other configuration changes.
Reviewed By: Abbondanzo
Differential Revision: D83546632
fbshipit-source-id: 41a5199dd2ef72b8f6257637c1d35d4a790ea006
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53982
This diffs adds specific `toDynamic` conversions for props defined as arrays holding primitive types. This fixes the serialization of `std::vector<Float>` that was failing to correctly convert to a `folly::dynamic` type when using Props 2.0.
Changelog: [Internal]
Reviewed By: Abbondanzo
Differential Revision: D83520605
fbshipit-source-id: 80a6ce2b3a265601f945ff3b76840c04e46aacdc
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53979
This reverts a previous change that modified how focus behavior is handled in JavaScript. That change caused hierarchy rows to no longer be focusable, either manually or programmatically as they were before, which in turn broke arrow key navigation in entity lists. Reverting the change restores the expected focus behavior and re-enables proper arrow key functionality within entity lists.
Changelog: [Internal]
Differential Revision: D83390685
fbshipit-source-id: 165567eceedce5d0a2e664a9ef3070d5a2bf9b67
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53978
Inconsistency between the previous and old version of `processTransform` - if frameSize is 0, the transform was being ignored, which is not correct when considering a fixed transform origin and a rotation animation for example. Instead, always apply the transform origin if it's set.
Changelog: [Android][Fixed] Fixed representation of transforms when view is originally zero-sized
Reviewed By: mdvacca
Differential Revision: D83469083
fbshipit-source-id: e9ae1500f64c700708edb00b2d5871e3f224fb07
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53968
This diff reverts D82781491
(The context such as a Sandcastle job, Task, SEV, etc. was not provided.)
Depends on D82781491
Changelog: [internal]
Reviewed By: SamChou19815
Differential Revision: D83442434
fbshipit-source-id: bd570564ee22d57bd7a3ca7f6990230de3e5ac4e
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53845
Adding a feature flag controlling the outset ratio set on the culling context frame. This feature flag value will add an outset on the width and height calculated by multiplying these with the provided ratio value. This will offset each side of the frame, maintaining the center of the frame at the same location.
This outset ratio helps mitigate async scroll blanking and focus handling on host platforms.
Changelog: [Internal]
Reviewed By: mdvacca
Differential Revision: D82684027
fbshipit-source-id: 3d1aaf680c5896fd4bb992b272b650ab2c097905
Summary:
# What
Moving Store from `arvr/js` to `xplat/js`.
This will enable Store to use xplat modern infra. Being on arvr/js legacy infra has created many problems [over the years](https://fb.workplace.com/groups/storecore/posts/2344707442611890/?comment_id=2345657702516864). Examples:
**2025**: https://fb.workplace.com/groups/storecore/permalink/2344707442611890/
**2024**: https://fb.workplace.com/groups/oculusjs/permalink/3366314690341563/
**2023**: https://fb.workplace.com/groups/xplatreact.engineering/permalink/730125568732098/
# How
## Previous Diff
* Remove usage of the legacy `react-router-3`. We don't want to carry this as a dependency to xplat/js.
## This Diff
This diff is the combination of several diffs (created to facilitate reviewing):
1. - D82581768 - Just move files from arvr/js/apps/Store to xplat/js/RKJSModules/public/HzStoreVR (Except for the index file and some mockUtils)
2. - D82581767 - Setup getConfig.js to generate a single BUCK for HzStoreVR and remove circular dependencies
3. - D82581769 - Fix location/import of assets
4. - D82581766 - Fix relay imports that were not using Haste
5. - D82664586 - Remove usage of old url module
6. - D83156829 - Fix buck: run js1 build buckfiles and build_and_run.sh
7. - D82844768 - Make arvr/js tests run with xplat Store
8. - D83005059 - Fix Flow errors
9. - D83259512 - Delete duplicated test files to make flow happy
10. - D83005098 - Fix Relay config for new Store VR location in xplat
11. - D83005073 - Enable React Forget on new HzStoreVR directory
12. - D83345573 - Fix arc lint -a
13. - D83403188 - Fix relay prefetch queries
## Next diffs
* Migrate tests to xplat jest config (renaming from *-rntest.js to *-test.js)
* Migrate other source code like arvr/js/libraries/store
## Open Source PR
For the change to RN open source .flowconfig to add .ktx image support: https://github.com/facebook/react-native/pull/53964
Changelog: [Internal]
Reviewed By: Tom910, mullender
Differential Revision: D82781491
fbshipit-source-id: 5ce6433916e5b144965e8906005e2e26fdcfcc95