Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39808
I've been doing some tests where I disable React DevTools locally and this code has been crashing because React Fast Refresh defines the React DevTools hook if DevTools didn't ([pointer](85c2b519b5/packages/react-refresh/src/ReactFreshRuntime.js (L453-L475))), and it doesn't actually define the `on` and `off` methods, which makes this throw.
This changes `AppContainer` to check if the methods are defined before using them.
Changelog: [internal]
Reviewed By: hoxyq
Differential Revision: D49909258
fbshipit-source-id: 3b0c1f37601a1cbe38f80ca3a20ffe2348a21aaf
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39787
I've realized that some of the DevMenu strings were missing the `project="catalyst" translatable="false"`
tags so they ended up being fed to the translation pipeline.
We don't need those strings to be translated so I'm cleaning this up.
Changelog:
[Internal] [Changed] - Do not attempt to translate devsupport strings
Reviewed By: arushikesarwani94
Differential Revision: D49870688
fbshipit-source-id: 14188f4d391c7f8e2e6e92a394d85c58c8fbcf95
Summary:
5f40f0800e added a new prop and corresponding RCTConvert method for transformOrigin. Strangely, it added the RCTConvertMethod to a `RCTConvert+UIAccessibilityTraits` category.. which feels like the wrong spot for it. Let's just add it to the existing `RCTConvert+Transform` category. This also means we can get rid of the header if we move the `RCTTransformOrigin` struct into UIView+React (where it is used).
## Changelog:
[IOS][CHANGED] - Move `[RCTConvert RCTTransformOrigin:]` out of UIAccessibilityTraits category
Pull Request resolved: https://github.com/facebook/react-native/pull/39758
Test Plan:
Transform Origin example still works.
<img width="559" alt="Screenshot 2023-10-02 at 11 26 17 AM" src="https://github.com/facebook/react-native/assets/6722175/c7b863cc-3595-430d-8579-f8ce8e73c4f4">
Reviewed By: javache
Differential Revision: D49867993
Pulled By: NickGerleman
fbshipit-source-id: 1b2d5a9d08f0231040e7449f2eb75860f08bafa5
Summary:
This PR is in response to https://github.com/facebook/react-native/pull/39758#discussion_r1344839022 .
`RCTConvert.h` currently takes an import of `<Webkit/Webkit.h>` for... one enum: `WKDataDetectorTypes`. This has a few problems:
1) RCTConvert is JS engine agnostic, it shouldn't be depending on Webkit
2) As far as I can tell, this code is dead, we also define (and use) the UIKit equivalent `UIDataDetectorTypes`.
Let's just combine the two, update some JS typing, and get rid of the Webkit header import.
## Changelog:
[IOS] [CHANGED] - Remove `<Webkit/Webkit.h>` import in `RCTConvert.h`
Pull Request resolved: https://github.com/facebook/react-native/pull/39794
Test Plan: CI should pass
Reviewed By: rshest
Differential Revision: D49898701
Pulled By: NickGerleman
fbshipit-source-id: 5420cb62317e1186426aae019bcc43d27c49ea26
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39806
Same issue of the previous fix: jobs do not run by default on tagged build. I forgot to add the filter parameter in the jobs that build the slices for Hermes and packages it and therefore the build failed.
I added those filters, so now we should be able to release RC.1.
What puzzles me is how it is possible that the publish-npm jobs even started, given that it was set up to depends on a job called build_hermes_macos which was not executed in the pipeline. 🤔https://pxl.cl/3w2rr
## Changelog:
[Internal] - Make sure that the Hermes jobs starts when releasing
Reviewed By: dmytrorykun
Differential Revision: D49906898
fbshipit-source-id: ebbceb6cbc4dcd2ac22445610da1c52000c8ae2a
Summary:
Rewrite `RNTesterApplication` to Kotlin as per [Help us Kotlin-ify React Native tests - Round 2](https://github.com/facebook/react-native/issues/38825)
## Changelog:
[ANDROID] [CHANGED] - Rewrite RNTesterApplication to Kotlin, add AnnotationTarget property.
Pull Request resolved: https://github.com/facebook/react-native/pull/39557
Test Plan:
`yarn && yarn android` ✅
The only thing I'm kinda unsure of is whether `AnnotationTarget.PROPERTY` should be added, but it didn't let me annotate `reactHostInterface` without that and didn't compile.
<img width="637" alt="image" src="https://github.com/facebook/react-native/assets/33528752/8bc84870-f3f2-4a46-b076-6ee7e38bd735">
cortinico mdvacca
Reviewed By: cortinico
Differential Revision: D49598401
Pulled By: mdvacca
fbshipit-source-id: 105ae0c13c93dae0eeb2b6fa9040f03f42d2736a
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39788
Hotfix for exiting `npx react-native start` when a session is connected. Partially reverts D49422206.
This lines back up with the original RN CLI and Expo implementations — explicitly calling `process.exit()`. We still aim to follow this up with graceful server shutdown.
Changelog: [Internal]
Reviewed By: lunaleaps
Differential Revision: D49880226
fbshipit-source-id: d2c76b2de21b9172dfd892141d1f679b808e043d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39595
X-link: https://github.com/facebook/yoga/pull/1404
These functions all ensure their returns are defined, but return FloatOptional anyway, making their callers have to deal with that possibility. Return `float` instead of `FloatOptional`, and do some additional cleanup.
Reviewed By: rshest
Differential Revision: D49531421
fbshipit-source-id: 95b21cade74e501dd54c7b6ca667c8c3859c5dae
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39644
This makes Android Paper/Classic renderer fire `onLayout` events top down, like in Fabric/new Architecture. This gives a much more sane model for using layout events to calculate bottom/right-edge insets.
I was under the impression that Paper in general was bottom-up, but it turns out that is only true for Android and Windows (iOS seems totally deterministic).
This is a behavior change, but to my knowledge was never hit during the Fabric migration, and any JS code already written for both Android and iOS cannot make assumptions here anyways.
Changelog:
[General][Changed] - Make layout events top-down on Android classic renderer
Reviewed By: mdvacca
Differential Revision: D49627996
fbshipit-source-id: 29964b421dd420681d45348c7db16f211a6c087f
Summary:
The Loading.../Refreshing... indicator is currently broken on Android.
The reason is related to D42599220
We used to have a Toast shown to users on Android as a fallback, but as the
DevLoadingView is not always loaded as a module in the core package, this ends up in the banner never beign shown to the user (on RN Tester or template apps).
Changelog:
[Android] [Fixed] - Fix broken Loading/Refreshing indicator on Android
Reviewed By: cipolleschi
Differential Revision: D49876757
fbshipit-source-id: 400e002327ebca908e3e7a7f81c5066888ac4e9b
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39591
Changelog: [Internal]
I'm refactoring this for a couple of reasons:
1) it isolates the void execution path, which we are changing now
2) switch case is safer than if else, in the future if we introduce new return types
Reviewed By: RSNara
Differential Revision: D49521866
fbshipit-source-id: 451c846ca15cc470cfeb5b2326d6eb2ffec74b25
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39589
Changelog: [Internal]
currently, turbomodule void methods run async by default, unless the consumer returns `RCTJSThread` in the `methodQueue` API.
we're looking to update this, so i'm introducing a flag at the module level that allows us to configure this behavior.
Reviewed By: RSNara
Differential Revision: D49521864
fbshipit-source-id: a6c61eb420b72199426e3dfdaec5fd090847efa5
Summary:
While inspecting the pipelines for the template, I realized that the caching was failing because the keys were malformed.
This PR fixes the malformed keys adding the missing "
## Changelog:
[Internal] - Fix cache keys for the Template
Pull Request resolved: https://github.com/facebook/react-native/pull/39786
Test Plan: The template jobs should not fail with `error computing cache key: template: cacheKey:1: unterminated quoted string`
Reviewed By: cortinico
Differential Revision: D49874270
Pulled By: cipolleschi
fbshipit-source-id: 5a23237ba826e87f2cd15566e63a1316291af595
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39597
X-link: https://github.com/facebook/yoga/pull/1406
Similar in vain to D49362819, we want to stop exposing pre-resolved CompactValue, and allow enum class usage without becoming annoying.
This also simplifies gap resolution a bit. I moved this to Style, to make it clear we aren't relying on any node state. I plan to do some similar cleanup for other resolution later.
Reviewed By: rshest
Differential Revision: D49530923
fbshipit-source-id: 47b06a7301fb283acc493dba159f496159d59580
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39775
ChoreographerCompat existed to support JellyBean, but given we target Android SDK 23+ now, this is safe to remove.
Changelog: [Android][Removed] Deprecated ChoreographerCompat.FrameCallback, use Choreographer.FrameCallback
Reviewed By: mdvacca
Differential Revision: D49826889
fbshipit-source-id: 5158c470553327b70a199168f5b7ed7071cc8c48
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39717
AsyncCallback is a better abstraction than the current usage of WeakCallbackWrapper and RAIICallbackWrapperDestroyer, and has way fewer gotchas. Making a few changes here to make it easier to use in various scenarios and match the behaviour we're already seeing in CallbackWrapper.
1) Remove the explicit copy constructor, since this prevents an automatic move constructor from being generated
2) Add a call variant which takes a lambda, for callers which need to manually create JSI arguments
3) Ignore AsyncCallback invocations when the underlying runtime has gone away.
Changelog: [Internal]
Reviewed By: NickGerleman
Differential Revision: D49684248
fbshipit-source-id: 8b49ec22cc409572ead80a85b10a190994bf0dd5
Summary:
If the first element of a line is not contributing (e.g. position absolute), an additional gap will be added to the line, because the first gap element of the line is never identified (wrong start index).
Fix: raise the index of the first line element until we find an element that is contributing to the line.
X-link: https://github.com/facebook/yoga/pull/1408
Reviewed By: yungsters
Differential Revision: D49722065
Pulled By: NickGerleman
fbshipit-source-id: 1068cb0b11ae4b04ec8d063e70540cce06181d5a
Summary:
CircleCI does not run jobs on tags by default. However, when we release a new version of React Native, we push a tag and we want to create a release from that tag only ([CircleCI Docs](https://circleci.com/docs/workflows/#executing-workflows-for-a-git-tag)).
The release job is already configured to run on tag. However, in August, we moved to the CircleCI continuation APIs and the starting job of the pipeline was not set up to run
also on tags.
This change fixes the issue, making the Choose CI Job run also on tags.
## Changelog:
[Internal] - Make the Choose CI Job run also on tags
Pull Request resolved: https://github.com/facebook/react-native/pull/39776
Test Plan:
Tested manually on CircleCI in a separate branch with a test tag (which have been then removed).
See commit history in this PR: https://github.com/facebook/react-native/pull/39774
Reviewed By: dmytrorykun
Differential Revision: D49863095
Pulled By: cipolleschi
fbshipit-source-id: 89c4eaa9903c02322056a4b57f56a24865a58b46
Summary:
These tests seem to have been deprecated for years, let's just remove them.
## Changelog:
[IOS] [REMOVED] - Remove deprecated Snapshot tests
Pull Request resolved: https://github.com/facebook/react-native/pull/39720
Test Plan: CI should pass
Reviewed By: cipolleschi
Differential Revision: D49809496
Pulled By: NickGerleman
fbshipit-source-id: d79f0a0896b190d071bda1eb837b3efa10dbbf3b
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39771
We now support SDK 23 as a minimum. That means we can drop JS side checks.
Because Android has `Platform.Version` as a number, and iOS as a string, it's common to do an Android check before checking version, even if in Android only code. I tried to remove those where it was super clear the code was Android only (i.e. the file is `.android.js`), but otherwise leave the Android platform check to not give the possibility of changing behavior.
Changelog:
[Internal]
Reviewed By: luluwu2032
Differential Revision: D49814610
fbshipit-source-id: f28b09db7091598e187fee0f383561e1c1993e9a
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39755
The goal of this diff is to fix:
```
JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.NoSuchMethodError: no static or non-static method
"Lcom/facebook/react/jscexecutor/JSCExecutor;.initHybrid(Lcom/facebook/react/bridge/ReadableNativeMap;)Lcom/facebook/jni/HybridData;"
```
changelog: [internal] internal
Reviewed By: luluwu2032
Differential Revision: D49831595
fbshipit-source-id: 9ce22cdccdd02af74edb27be2df72a469d3166c9
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39704
Default to native view configs in bridged mode and to static view configs in bridgeless mode.
Remove `setRuntimeConfigProvider` calls from RNTester and from the Template.
Changelog: [Internal]
Reviewed By: RSNara
Differential Revision: D49687252
fbshipit-source-id: 140e1c510ba3fbc153978b59c8bb4b4e35bc7571
Summary:
Changelog: [Internal] - Set the hermes value as specified by the test-e2e-local script flag. Right now, the script incorrectly ignores the flag
By default, the template project has `hermesEnabled=true`
Reviewed By: cipolleschi
Differential Revision: D49831355
fbshipit-source-id: 7fb8613fa86f2c6140b7d25b16aeb583e6e26c12
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39751
There doesn't seem to be an easy way to drop `folly::makeMoveWrapper` for the reasons explained in below in the diff.
To unblock the folly deprecation in the RN codebase, we are copying the `MoveWrapper` class within the RN codebase.
Changelog: [Internal]
Reviewed By: sammy-SC, cipolleschi
Differential Revision: D49423389
fbshipit-source-id: 8abaa95a6d675b069be8e74933aa8c63f4ea43ee
Summary:
Addresses this issue: https://github.com/facebook/react-native/issues/39708
The embedded docs for `PixelRatio.getFontScale` haven't been updated in a while and it is still claiming lack of support for iOS when this is not the reality anymore. This was confusing for me when looking for docs through my local workspace.
## Changelog:
[INTERNAL] [CHANGED] - Updated PixelRatio.getFontScale docs to match the latest website
Pull Request resolved: https://github.com/facebook/react-native/pull/39709
Test Plan: N/A
Reviewed By: rshest
Differential Revision: D49752103
Pulled By: NickGerleman
fbshipit-source-id: 1b220bc0210639d7863b6961f665aab2cba52889
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39746
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.
changelog: [Android][Changed] Reducing visibility of PerformanceCounter
Reviewed By: arushikesarwani94
Differential Revision: D49803283
fbshipit-source-id: 46d041f632f06a98392f4a67c839266010a1c68d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39744
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.
changelog: [Android][Changed] Reducing visibility of NativeArrayInterface
Reviewed By: arushikesarwani94
Differential Revision: D49803296
fbshipit-source-id: b0065d3df8ef5f20b71f66caf45856440dd61d80
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39736
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.
changelog: [Android][Changed] Reducing visibility of NativeArgumentsParseException
Reviewed By: RSNara
Differential Revision: D49752145
fbshipit-source-id: 0ceb560a9be7d162b6856d90f57f6bda3888c6e7
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39738
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.
changelog: [Android][Changed] Reducing visibility of JSInstance
Reviewed By: RSNara
Differential Revision: D49752139
fbshipit-source-id: b56667a91abd16d15a321dfc3e83026b596eaad3
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39740
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.
changelog: [Android][Changed] Reducing visibility of JSIModuleRegistry.
Reviewed By: RSNara
Differential Revision: D49752138
fbshipit-source-id: 9878a3c2c431a2a84d4985812605032ed0d2d2d8
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39741
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.
changelog: [Android][Changed] Reducing visibility of JSIModuleHolder
Reviewed By: RSNara
Differential Revision: D49752136
fbshipit-source-id: a2b525e6fe18f2ceabbe8775d6841807d73cdc86
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39737
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.
changelog: [Android][Changed] Reducing visibility of JSCJavaScriptExecutorFactory
Reviewed By: RSNara
Differential Revision: D49752141
fbshipit-source-id: 77039a3b4c3d12f3c98e3659518e9ef10c66a29e
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39739
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.
changelog: [Android][Changed] Reducing visibility of DynamicFromMap
Reviewed By: RSNara
Differential Revision: D49752137
fbshipit-source-id: 6bc8623ca1a8479401b4d8314916f968d708f40c
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39735
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.
changelog: [Android][Changed] Reducing visibility of DynamicFromArray
Reviewed By: RSNara
Differential Revision: D49752134
fbshipit-source-id: 818a2cb0f4cafaad9c13c9b623505f32fb1ebcfe
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39565
CompositeReactPackage is not used at Meta neither in github public repositories, we are deprecating it in v0.73 with the goal to remove it in v0.74
changelog: [Android][Breaking] Deprecate CompositeReactPackage from RN Android
Reviewed By: christophpurrer
Differential Revision: D49440130
fbshipit-source-id: 6a9c220f57fd29f7a530db79c4f76ef169744fba
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39726
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.
changelog: [Android][Changed] Reducing visibility of DecayAnimation
Reviewed By: javache, RSNara
Differential Revision: D49752144
fbshipit-source-id: 94b69f3f2d780aff55f0dbcf030d15199b703abd
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39730
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.
changelog: [Android][Changed] Reducing visibility of AnimatedNodeWithUpdateableConfig
Reviewed By: RSNara
Differential Revision: D49752143
fbshipit-source-id: 023fb7657d922b2bd7ad8e12640e67bc82c96185
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39727
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.
changelog: [Android][Changed] Reducing visibility of AnimatedNodeValueListener
Reviewed By: RSNara
Differential Revision: D49752131
fbshipit-source-id: 153cf0cb97ceadfd4c6acde1e1b51d4243eb5df6