Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/40728
Just improving type safety of a bunch of modules in the `Image` directory.
Changelog: [internal]
Reviewed By: NickGerleman
Differential Revision: D50080136
fbshipit-source-id: cbfb89aa01cad3882aa08a8ba637e561017d5db6
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/40730
This way of injecting the decorator is safer and more convenient to have the proper types inferred by Flow in the injected function.
Changelog: [internal]
Reviewed By: NickGerleman
Differential Revision: D50011840
fbshipit-source-id: 760812fc407d3e39fc7601d17488e3f2032a7065
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/40729
This improves the type definition of the `Image` modules (the common module interface, the platform-specific implementations and the shared types module). It makes them `flow strict-local` and explicitly defines the type signature of some functions typed as `any` before.
Changelog: [internal]
Reviewed By: sullenor
Differential Revision: D50014569
fbshipit-source-id: f1eced43edf84c84bbcb10a3a2d2de27e3d5e374
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/40731
The type definitions for `Image` are unnecessarily complicated, and got even more complicated after the changes for the new multiplatform support in Flow.
We had a `Image.js.flow` and a `Image.flow.js` files (which was confusing) and duplicated type definitions in `Image.js.flow`, `Image.android.js` and `Image.ios.js` because all type definitions in the shared module signature must be defined in the platform-specific modules as well.
This moves all type helpers to a new `ImageTypes.js.flow` file, simplifies the common `Image` module interface (to only define the default export type that the platform-specific module must define) and simplifies the Android and iOS specific versions.
As an added benefit, this also improves Flow type coverage by removing a bunch of FlowFixMe comments.
Changelog: [internal]
Reviewed By: mdvacca
Differential Revision: D50011839
fbshipit-source-id: 9da1c0467630bebf73855f5f9f771a2325adbced
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/40744
The Podfile.lock was not aligned properly with the versions of the Pods on main.
## Changelog:
[Internal] - Align the Podfile.lock with the status of podspecs on main
Reviewed By: luluwu2032
Differential Revision: D50084954
fbshipit-source-id: 1cfad35262b2b57ad9ac33f494c7a2f0b723368f
Summary:
Both `hermes` and `JSC` supports `Object.{values & entries}`, so this polyfills aren't used any more.
## Changelog:
[GENERAL][REMOVED]: removed `Object.{values & entries}` from polyfills
<!-- 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/40747
Test Plan:
1. We can confirm with `hermes` tests: https://github.com/facebook/hermes/blob/main/test/hermes/object-functions.js#L256
2. Remove this polyfills and check that the code runs as expected.
3. You can also run: `console.log(Object.entries.toString());` and verify that this is `[native code]`
Reviewed By: christophpurrer
Differential Revision: D50100639
Pulled By: robhogan
fbshipit-source-id: b1cea88bd984e99f304a3a063e985eecff8831dd
Summary:
All "https://react.dev/link" links give a 404 and are deprecated. I replaced all URLs with new ones or, if this was not possible, replaced them with a link to legacy documentation.
## Changelog:
[INTERNAL] [FIXED] - Fixed links to React documentation
Pull Request resolved: https://github.com/facebook/react-native/pull/40095
Test Plan: All of the old links didn't work. I tried to match the content of the errors to the new documentation as best as possible. Current links have been tested and direct you to the most relevant article section.
Reviewed By: christophpurrer
Differential Revision: D50094451
Pulled By: arushikesarwani94
fbshipit-source-id: 79fd9e729495cadfb067d94fb58acb30ca308347
Summary:
This pull request addresses two key issues. Firstly, it adds a missing docstring to the `dismissActionSheet` function within the `ActionSheetIOS` object. Secondly, it introduces TypeScript typings for the `dismissActionSheet` function.
## Changelog:
[iOS] [Added] - Add missing docstring to the `dismissActionSheet` function in `ActionSheetIOS`.
[iOS] [Added] - Add TypeScript typings for the `dismissActionSheet` function in `ActionSheetIOS`.
Pull Request resolved: https://github.com/facebook/react-native/pull/40012
Test Plan:
To ensure the code is solid, I followed these steps:
1. Ran Flow to verify that there were no errors.
2. Added a TypeScript test related to the `dismissActionSheet` function to ensure it's typed as expected.
Reviewed By: NickGerleman
Differential Revision: D50097458
Pulled By: arushikesarwani94
fbshipit-source-id: 63348239dfe19e3a07f94e5a7b59ae43a47c1975
Summary:
When we download the `hermes` repo, we also include its tests, so `jest` try to run them.
## Changelog:
[INTERNAL][FIXED]: don't run `hermes` specific tests.
<!-- 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/40734
Test Plan:
1. Build the project
2. yarn test
3. See the failing tests running from the `sdks` directory.
Reviewed By: arushikesarwani94
Differential Revision: D50087482
Pulled By: robhogan
fbshipit-source-id: 012672d69c98d8b8e60012d83470cda45edc2fc6
Summary:
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
bypass-github-export-checks
changelog: [Android][Changed] Reducing visibility of FrescoBasedReactTextInlineImageSpan
Reviewed By: arushikesarwani94
Differential Revision: D49803287
fbshipit-source-id: 1b00fbcf5f61af96fe7a182d40b985b7ce71a872
Summary:
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
bypass-github-export-checks
changelog: [Android][Changed] Reducing visibility of FrescoBasedReactTextInlineImageShadowNode
Reviewed By: arushikesarwani94
Differential Revision: D49803295
fbshipit-source-id: 9273607af351b85800e37800941039ccf10eef76
Summary:
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
bypass-github-export-checks
changelog: [Android][Changed] Reducing visibility of RefreshEvent
Reviewed By: arushikesarwani94
Differential Revision: D49803298
fbshipit-source-id: f8edfd256b3afc82bb02789b34748abb3132cce1
Summary:
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
bypass-github-export-checks
changelog: [Android][Changed] Reducing visibility of VelocityHelper
Reviewed By: arushikesarwani94
Differential Revision: D49803269
fbshipit-source-id: 6b9dcf39979c8b4da5f736ba4fce3d495245755d
Summary:
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
bypass-github-export-checks
changelog: [Android][Changed] Reducing visibility of ReactScrollViewAccessibilityDelegate
Reviewed By: arushikesarwani94
Differential Revision: D49803288
fbshipit-source-id: 5a4d9e7feda26501c8a82a0efb0ad28ff68a3157
Summary:
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
bypass-github-export-checks
changelog: [Android][Changed] Reducing visibility of MaintainVisibleScrollPositionHelper
Reviewed By: arushikesarwani94
Differential Revision: D49803271
fbshipit-source-id: ebc43e60dea8de5ef5c21deb623351e0c8ed00b7
Summary:
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
bypass-github-export-checks
changelog: [Android][Changed] Reducing visibility of ScaleTypeStartInside
Reviewed By: arushikesarwani94
Differential Revision: D49803276
fbshipit-source-id: 11ea67cc976a09634293219d0c0933036f34b6ff
Summary:
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
bypass-github-export-checks
changelog: [Android][Changed] Reducing visibility of ReactImageDownloadListener
Reviewed By: arushikesarwani94
Differential Revision: D49803289
fbshipit-source-id: 19d4c3403449dd9b928963b274362662375b7545
Summary:
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
bypass-github-export-checks
changelog: [Android][Changed] Reducing visibility of ReactEventEmitter
Reviewed By: arushikesarwani94
Differential Revision: D49803292
fbshipit-source-id: 5c49555ce35ad10ee46bc3db3bc3bc83d8486a0d
Summary:
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
bypass-github-export-checks
changelog: [Android][Changed] Reducing visibility of YogaNodePool
Reviewed By: arushikesarwani94
Differential Revision: D49803281
fbshipit-source-id: 092826dcd4b7c9858240b760e87eb87a32e54a25
Summary:
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
bypass-github-export-checks
changelog: [Android][Changed] Reducing visibility of ViewHierarchyDumper
Reviewed By: arushikesarwani94
Differential Revision: D49803266
fbshipit-source-id: e6a3f5f915975979759b7134a486d96db974703d
Summary:
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
bypass-github-export-checks
changelog: [Android][Changed] Reducing visibility of ShadowNodeRegistry
Reviewed By: arushikesarwani94
Differential Revision: D49803275
fbshipit-source-id: a2796a1e125f0399418aa56cce6eafe7c0509eeb
Summary:
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
bypass-github-export-checks
changelog: [Android][Changed] Reducing visibility of NoSuchNativeViewException
Reviewed By: arushikesarwani94
Differential Revision: D49803297
fbshipit-source-id: d2c3e6a2243f6c80db0658c81c44c2d2bbedab5b
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39823
In this diff I'm refactoring BaseJavaModule and ReactContextBaseJavaModule to simplify class hierarchy.
ReactContextBaseJavaModule will be deprecated in the new architecture
bypass-github-export-checks
Reviewed By: cortinico
Differential Revision: D49930340
fbshipit-source-id: 602b5f3d2d926956c52b96b28815dae687fdad87
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/40739
Adding support for grouped accessibility focus on switch. This is when the switch itself shouldn't be directly focusable. Instead, the parent element should be focusable, including announcing the switch role and state changes, e.g. "on" and "off".
Fix this issue in a couple ways:
1. Make sure to set the proper role for switch in FbReactSwitchCompat.java.
2. Set the state description in SwitchCompat.java so that uses the correct announcement of "off" and "on" instead of "checked" and "unchecked".
Reviewed By: blavalla
Differential Revision: D50068169
fbshipit-source-id: 0c4133377f7a29da9cadb730399bdbedd58c26ae
Summary:
The current comments explaining the various StyleSheet methods and are misleading, often referencing the removed `StyleSheetRegistry` and old behavior related to it.
## Changelog:
Per https://github.com/facebook/react-native-website/pull/3872/files, updates comments to reflect the fact that the `StyleSheetRegistry` has been removed.
[INTERNAL] [REMOVED] - Removed comment references to `StyleSheetRegistry` and style sheet `ID`s
Pull Request resolved: https://github.com/facebook/react-native/pull/39990
Test Plan: `console.log(StyleSheet.create({ testClass: { color: "red" } }))` outputs `{ testClass: { color: "red" } }`
Reviewed By: NickGerleman
Differential Revision: D50076737
Pulled By: javache
fbshipit-source-id: edc3c9f63f9963c17b1a2c1a898badf1b87183e4
Summary:
When upgrading ESLint to latest, the RN plugin fails to run because of a deprecated API:
```
Error: Parsing error: DeprecationError: 'originalKeywordKind' has been deprecated since v5.0.0 and can no longer be used. Use 'identifierToKeywordKind(identifier)' instead.
```
## Changelog:
- [GENERAL] [FIXED] Updated ESLint version to fix `originalKeywordKind` deprecation error
<!-- 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/39654
Test Plan: Run CI and Lint
Reviewed By: NickGerleman
Differential Revision: D49634978
Pulled By: robhogan
fbshipit-source-id: f65f0d56053acf1c877fe0f368a7f4e13c8c57d1
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/40233
changelog: [internal]
This is a reland of D49355595 and D49358327.
the problem was using two different hashing functions in place where they must be the same.
Reviewed By: javache
Differential Revision: D50020135
fbshipit-source-id: 1cec6bc385077d371b024a0fb5d9c64ba1f6269c
Summary:
It seems this method is not referenced by anything anymore. I think https://github.com/facebook/react-native/pull/35017 made it redundant. Let's remove it?
I can also do the whole "Deprecate for one version, remove in the next" since this was publicly exported.
## Changelog:
[iOS] [REMOVED] - Remove RCTGetMultiplierForContentSizeCategory
Pull Request resolved: https://github.com/facebook/react-native/pull/39617
Test Plan: CI should pass
Reviewed By: dmytrorykun
Differential Revision: D49618166
Pulled By: cipolleschi
fbshipit-source-id: fb72e961d2a1eb9977944fea3ee4deeab46b946b
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39955
Align `RCTRequired` to the rest of the targets in `react-native-github/packages/react-native/Libraries`.
Changelog: [Internal]
Reviewed By: cipolleschi
Differential Revision: D50009827
fbshipit-source-id: c2ec9eb9e5fb081a2e2e8f53d33bc21dcf95b279
Summary:
X-link: https://github.com/facebook/yoga/pull/1411
Pull Request resolved: https://github.com/facebook/react-native/pull/39796
X-link: https://github.com/facebook/yoga/pull/1414
GCC flags that `isUndefined()` is not declared `constexpr` but that `unwrapOrDefault()` is. `std::isnan` is not constexpr until C++ 23 (because we cannot have nice things), so I made `yoga::isUndefined()` constexpr, using the same code `std::isnan()` boils down to. I then made `FloatOptional` depend on `Comparison.h` (instead of the other way around), so we can use it.
Note that the use of the `std::floating_point` concept here requires the libc++ bump in the previous diff in the stack.
Reviewed By: yungsters
Differential Revision: D49896837
fbshipit-source-id: 61e2bbbfedecffd007a12d42d998e43d3cf5119c
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39959
We're still accessing project.buildDir which will be removed in Gradle 9.0
I'm cleaning it up here.
Changelog:
[Internal] [Changed] - Fix compilation warnings introduced by Gradle 8.4
Reviewed By: yungsters
Differential Revision: D50016573
fbshipit-source-id: de7a725f61b503f08991ebf85b9a002cefab221a
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39960
This is our usual round of bumps just after the branch cut.
Changelog:
[Android] [Changed] - Bump Gradle to 8.4
Reviewed By: yungsters
Differential Revision: D50016574
fbshipit-source-id: 781eb906f6b12f76f673e38bdcf099c9b7cefade
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39958
I'm reverting the change of AGP from 8.2 beta to 8.1 as we don't need 8.2
Using 8.2 beta forces us to use Android Studio beta, which is actually not necessary.
Changelog:
[Android] [Changed] - Bump AGP to 8.1.2
Reviewed By: yungsters
Differential Revision: D50016572
fbshipit-source-id: 6c36df0568a1f867dac3c335abbaabb990e55491
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39953
This was added to support Fabric codegen, but is no longer referenced.
Changelog: [Internal]
Reviewed By: rubennorte
Differential Revision: D50011688
fbshipit-source-id: 30867f719dbcbc447e10226787ce7407503a1c7d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39951
## Changelog:
[Internal] -
This makes PerformanceObserver API more robust in regards of telling which exactly types of the performance entries are supported.
At this point, we either tell that we support mark/measure/event ones on the New Architecture, or none otherwise. The source of truth of this information should be on the native side.
Reviewed By: rubennorte
Differential Revision: D50010982
fbshipit-source-id: ad7bce279a58eac232b7c26f8d8c2bd1cde51e3c
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39833
Reland of D49642047 which got reverted because of a CI infra error.
---
It's currently possible for RN to crash the dev server by sending down an exceptionally large CDP response/event. Instead of making assumptions on the protocol spoken over the proxy, let's assume clients on either side of the proxy can be trusted to be well behaved (and to degrade gracefully when a large message is encountered).
Changelog: [General][Fixed] JS debugging: prevent dev server crash when a large CDP payload is returned from the device
Reviewed By: huntie
Differential Revision: D49955025
fbshipit-source-id: aa5b8b55c885e26dd5b8170660603173cfe54de0