react-native 0.81.0 → 0.81.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/Libraries/Components/Switch/Switch.js +1 -1
  2. package/Libraries/Components/TextInput/TextInput.js +6 -1
  3. package/Libraries/Core/ReactNativeVersion.js +1 -1
  4. package/React/Base/RCTUtils.h +1 -0
  5. package/React/Base/RCTUtils.mm +12 -0
  6. package/React/Base/RCTVersion.m +1 -1
  7. package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +12 -0
  8. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +18 -0
  9. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ComponentDescriptors.cpp +0 -1
  10. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ComponentDescriptors.h +0 -1
  11. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.cpp +0 -1
  12. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.h +0 -11
  13. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/States.h +0 -2
  14. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +22 -0
  15. package/React/Fabric/Mounting/ComponentViews/Switch/RCTSwitchComponentView.mm +1 -1
  16. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +2 -1
  17. package/React/React-RCTFBReactNativeSpec.podspec +1 -4
  18. package/React/React-RCTFabric.podspec +1 -0
  19. package/React/Runtime/React-RCTRuntime.podspec +1 -3
  20. package/ReactAndroid/build.gradle.kts +10 -1
  21. package/ReactAndroid/gradle.properties +1 -1
  22. package/ReactAndroid/hermes-engine/build.gradle.kts +6 -0
  23. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeArray.kt +9 -1
  24. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +13 -1
  25. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +21 -1
  26. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +5 -1
  27. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +5 -1
  28. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +23 -1
  29. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +5 -1
  30. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +5 -1
  31. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
  32. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +19 -0
  33. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +29 -1
  34. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +7 -1
  35. package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/CMakeLists.txt +3 -1
  36. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +2 -1
  37. package/ReactAndroid/src/main/jni/react/jni/NativeArray.h +4 -0
  38. package/ReactAndroid/src/main/jni/react/jni/OnLoad-common.cpp +2 -0
  39. package/ReactAndroid/src/main/jni/react/jni/ReadableNativeArray.cpp +6 -0
  40. package/ReactAndroid/src/main/jni/react/jni/ReadableNativeArray.h +1 -0
  41. package/ReactAndroid/src/main/jni/react/jni/TransformHelper.cpp +60 -0
  42. package/ReactAndroid/src/main/jni/react/jni/TransformHelper.h +22 -0
  43. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/CMakeLists.txt +3 -1
  44. package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +3 -1
  45. package/ReactCommon/React-Fabric.podspec +1 -4
  46. package/ReactCommon/React-FabricComponents.podspec +9 -4
  47. package/ReactCommon/React-FabricImage.podspec +1 -4
  48. package/ReactCommon/React-Mapbuffer.podspec +1 -4
  49. package/ReactCommon/ReactCommon.podspec +2 -3
  50. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  51. package/ReactCommon/hermes/executor/CMakeLists.txt +1 -1
  52. package/ReactCommon/hermes/executor/React-jsitracing.podspec +1 -4
  53. package/ReactCommon/hermes/inspector-modern/CMakeLists.txt +1 -1
  54. package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +2 -4
  55. package/ReactCommon/jsinspector-modern/CMakeLists.txt +6 -4
  56. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +2 -3
  57. package/ReactCommon/jsinspector-modern/cdp/React-jsinspectorcdp.podspec +1 -4
  58. package/ReactCommon/jsinspector-modern/network/React-jsinspectornetwork.podspec +1 -4
  59. package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +1 -4
  60. package/ReactCommon/jsitooling/React-jsitooling.podspec +1 -4
  61. package/ReactCommon/react/debug/CMakeLists.txt +1 -1
  62. package/ReactCommon/react/debug/React-debug.podspec +1 -4
  63. package/ReactCommon/react/featureflags/React-featureflags.podspec +1 -4
  64. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +9 -1
  65. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +11 -1
  66. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +44 -8
  67. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +6 -2
  68. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +9 -1
  69. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +19 -1
  70. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +9 -1
  71. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +3 -1
  72. package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +2 -3
  73. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -4
  74. package/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +1 -4
  75. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +11 -1
  76. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +5 -1
  77. package/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec +1 -4
  78. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -4
  79. package/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec +1 -4
  80. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +2 -0
  81. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -4
  82. package/ReactCommon/react/renderer/components/switch/iosswitch/react/renderer/components/switch/AppleSwitchComponentDescriptor.h +30 -0
  83. package/ReactCommon/react/renderer/components/switch/iosswitch/react/renderer/components/switch/AppleSwitchShadowNode.h +42 -0
  84. package/ReactCommon/react/renderer/components/switch/iosswitch/react/renderer/components/switch/IOSSwitchShadowNode.mm +28 -0
  85. package/ReactCommon/react/renderer/components/switch/iosswitch/react/renderer/components/switch/MacOSSwitchShadowNode.mm +32 -0
  86. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +2 -1
  87. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +8 -2
  88. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +5 -0
  89. package/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec +2 -4
  90. package/ReactCommon/react/renderer/css/React-renderercss.podspec +2 -5
  91. package/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +1 -4
  92. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +3 -3
  93. package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +1 -4
  94. package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +1 -4
  95. package/ReactCommon/react/runtime/CMakeLists.txt +3 -1
  96. package/ReactCommon/react/runtime/React-RuntimeCore.podspec +1 -4
  97. package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -4
  98. package/ReactCommon/react/runtime/hermes/CMakeLists.txt +1 -1
  99. package/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +1 -4
  100. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +1 -0
  101. package/ReactCommon/react/timing/React-timing.podspec +3 -4
  102. package/ReactCommon/react/utils/React-utils.podspec +3 -3
  103. package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +3 -2
  104. package/package.json +8 -8
  105. package/scripts/cocoapods/autolinking.rb +6 -0
  106. package/scripts/cocoapods/codegen_utils.rb +1 -1
  107. package/scripts/cocoapods/new_architecture.rb +1 -0
  108. package/scripts/cocoapods/utils.rb +15 -1
  109. package/scripts/codegen/generate-artifacts-executor/generateReactCodegenPodspec.js +3 -3
  110. package/scripts/codegen/generate-artifacts-executor/index.js +5 -1
  111. package/scripts/codegen/generate-artifacts-executor/utils.js +41 -10
  112. package/scripts/codegen/templates/ReactCodegen.podspec.template +1 -0
  113. package/scripts/react-native-xcode.sh +2 -2
  114. package/scripts/react_native_pods.rb +21 -0
  115. package/scripts/replace-rncore-version.js +4 -2
  116. package/scripts/xcode/with-environment.sh +1 -1
  117. package/sdks/hermes-engine/utils/replace_hermes_version.js +4 -2
  118. package/sdks/hermesc/osx-bin/hermes +0 -0
  119. package/sdks/hermesc/osx-bin/hermesc +0 -0
  120. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  121. package/src/private/featureflags/ReactNativeFeatureFlags.js +11 -1
  122. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +3 -1
  123. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +1 -0
  124. package/third-party-podspecs/ReactNativeDependencies.podspec +1 -1
  125. package/third-party-podspecs/replace_dependencies_version.js +4 -2
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<681bff71eb87886a108f67b3162b030c>>
7
+ * @generated SignedSource<<7ae9a203a94e3a22197bc9eda69b741c>>
8
8
  */
9
9
 
10
10
  /**
@@ -965,6 +965,42 @@ bool ReactNativeFeatureFlagsAccessor::useFabricInterop() {
965
965
  return flagValue.value();
966
966
  }
967
967
 
968
+ bool ReactNativeFeatureFlagsAccessor::useNativeEqualsInNativeReadableArrayAndroid() {
969
+ auto flagValue = useNativeEqualsInNativeReadableArrayAndroid_.load();
970
+
971
+ if (!flagValue.has_value()) {
972
+ // This block is not exclusive but it is not necessary.
973
+ // If multiple threads try to initialize the feature flag, we would only
974
+ // be accessing the provider multiple times but the end state of this
975
+ // instance and the returned flag value would be the same.
976
+
977
+ markFlagAsAccessed(52, "useNativeEqualsInNativeReadableArrayAndroid");
978
+
979
+ flagValue = currentProvider_->useNativeEqualsInNativeReadableArrayAndroid();
980
+ useNativeEqualsInNativeReadableArrayAndroid_ = flagValue;
981
+ }
982
+
983
+ return flagValue.value();
984
+ }
985
+
986
+ bool ReactNativeFeatureFlagsAccessor::useNativeTransformHelperAndroid() {
987
+ auto flagValue = useNativeTransformHelperAndroid_.load();
988
+
989
+ if (!flagValue.has_value()) {
990
+ // This block is not exclusive but it is not necessary.
991
+ // If multiple threads try to initialize the feature flag, we would only
992
+ // be accessing the provider multiple times but the end state of this
993
+ // instance and the returned flag value would be the same.
994
+
995
+ markFlagAsAccessed(53, "useNativeTransformHelperAndroid");
996
+
997
+ flagValue = currentProvider_->useNativeTransformHelperAndroid();
998
+ useNativeTransformHelperAndroid_ = flagValue;
999
+ }
1000
+
1001
+ return flagValue.value();
1002
+ }
1003
+
968
1004
  bool ReactNativeFeatureFlagsAccessor::useNativeViewConfigsInBridgelessMode() {
969
1005
  auto flagValue = useNativeViewConfigsInBridgelessMode_.load();
970
1006
 
@@ -974,7 +1010,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeViewConfigsInBridgelessMode() {
974
1010
  // be accessing the provider multiple times but the end state of this
975
1011
  // instance and the returned flag value would be the same.
976
1012
 
977
- markFlagAsAccessed(52, "useNativeViewConfigsInBridgelessMode");
1013
+ markFlagAsAccessed(54, "useNativeViewConfigsInBridgelessMode");
978
1014
 
979
1015
  flagValue = currentProvider_->useNativeViewConfigsInBridgelessMode();
980
1016
  useNativeViewConfigsInBridgelessMode_ = flagValue;
@@ -992,7 +1028,7 @@ bool ReactNativeFeatureFlagsAccessor::useOptimizedEventBatchingOnAndroid() {
992
1028
  // be accessing the provider multiple times but the end state of this
993
1029
  // instance and the returned flag value would be the same.
994
1030
 
995
- markFlagAsAccessed(53, "useOptimizedEventBatchingOnAndroid");
1031
+ markFlagAsAccessed(55, "useOptimizedEventBatchingOnAndroid");
996
1032
 
997
1033
  flagValue = currentProvider_->useOptimizedEventBatchingOnAndroid();
998
1034
  useOptimizedEventBatchingOnAndroid_ = flagValue;
@@ -1010,7 +1046,7 @@ bool ReactNativeFeatureFlagsAccessor::useRawPropsJsiValue() {
1010
1046
  // be accessing the provider multiple times but the end state of this
1011
1047
  // instance and the returned flag value would be the same.
1012
1048
 
1013
- markFlagAsAccessed(54, "useRawPropsJsiValue");
1049
+ markFlagAsAccessed(56, "useRawPropsJsiValue");
1014
1050
 
1015
1051
  flagValue = currentProvider_->useRawPropsJsiValue();
1016
1052
  useRawPropsJsiValue_ = flagValue;
@@ -1028,7 +1064,7 @@ bool ReactNativeFeatureFlagsAccessor::useShadowNodeStateOnClone() {
1028
1064
  // be accessing the provider multiple times but the end state of this
1029
1065
  // instance and the returned flag value would be the same.
1030
1066
 
1031
- markFlagAsAccessed(55, "useShadowNodeStateOnClone");
1067
+ markFlagAsAccessed(57, "useShadowNodeStateOnClone");
1032
1068
 
1033
1069
  flagValue = currentProvider_->useShadowNodeStateOnClone();
1034
1070
  useShadowNodeStateOnClone_ = flagValue;
@@ -1046,7 +1082,7 @@ bool ReactNativeFeatureFlagsAccessor::useTurboModuleInterop() {
1046
1082
  // be accessing the provider multiple times but the end state of this
1047
1083
  // instance and the returned flag value would be the same.
1048
1084
 
1049
- markFlagAsAccessed(56, "useTurboModuleInterop");
1085
+ markFlagAsAccessed(58, "useTurboModuleInterop");
1050
1086
 
1051
1087
  flagValue = currentProvider_->useTurboModuleInterop();
1052
1088
  useTurboModuleInterop_ = flagValue;
@@ -1064,7 +1100,7 @@ bool ReactNativeFeatureFlagsAccessor::useTurboModules() {
1064
1100
  // be accessing the provider multiple times but the end state of this
1065
1101
  // instance and the returned flag value would be the same.
1066
1102
 
1067
- markFlagAsAccessed(57, "useTurboModules");
1103
+ markFlagAsAccessed(59, "useTurboModules");
1068
1104
 
1069
1105
  flagValue = currentProvider_->useTurboModules();
1070
1106
  useTurboModules_ = flagValue;
@@ -1082,7 +1118,7 @@ double ReactNativeFeatureFlagsAccessor::virtualViewPrerenderRatio() {
1082
1118
  // be accessing the provider multiple times but the end state of this
1083
1119
  // instance and the returned flag value would be the same.
1084
1120
 
1085
- markFlagAsAccessed(58, "virtualViewPrerenderRatio");
1121
+ markFlagAsAccessed(60, "virtualViewPrerenderRatio");
1086
1122
 
1087
1123
  flagValue = currentProvider_->virtualViewPrerenderRatio();
1088
1124
  virtualViewPrerenderRatio_ = flagValue;
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<e5a8a196b35c010d92d3f616979891a9>>
7
+ * @generated SignedSource<<74560113d0b23c05d7822eeba1c0dee4>>
8
8
  */
9
9
 
10
10
  /**
@@ -84,6 +84,8 @@ class ReactNativeFeatureFlagsAccessor {
84
84
  bool updateRuntimeShadowNodeReferencesOnCommit();
85
85
  bool useAlwaysAvailableJSErrorHandling();
86
86
  bool useFabricInterop();
87
+ bool useNativeEqualsInNativeReadableArrayAndroid();
88
+ bool useNativeTransformHelperAndroid();
87
89
  bool useNativeViewConfigsInBridgelessMode();
88
90
  bool useOptimizedEventBatchingOnAndroid();
89
91
  bool useRawPropsJsiValue();
@@ -102,7 +104,7 @@ class ReactNativeFeatureFlagsAccessor {
102
104
  std::unique_ptr<ReactNativeFeatureFlagsProvider> currentProvider_;
103
105
  bool wasOverridden_;
104
106
 
105
- std::array<std::atomic<const char*>, 59> accessedFeatureFlags_;
107
+ std::array<std::atomic<const char*>, 61> accessedFeatureFlags_;
106
108
 
107
109
  std::atomic<std::optional<bool>> commonTestFlag_;
108
110
  std::atomic<std::optional<bool>> animatedShouldSignalBatch_;
@@ -156,6 +158,8 @@ class ReactNativeFeatureFlagsAccessor {
156
158
  std::atomic<std::optional<bool>> updateRuntimeShadowNodeReferencesOnCommit_;
157
159
  std::atomic<std::optional<bool>> useAlwaysAvailableJSErrorHandling_;
158
160
  std::atomic<std::optional<bool>> useFabricInterop_;
161
+ std::atomic<std::optional<bool>> useNativeEqualsInNativeReadableArrayAndroid_;
162
+ std::atomic<std::optional<bool>> useNativeTransformHelperAndroid_;
159
163
  std::atomic<std::optional<bool>> useNativeViewConfigsInBridgelessMode_;
160
164
  std::atomic<std::optional<bool>> useOptimizedEventBatchingOnAndroid_;
161
165
  std::atomic<std::optional<bool>> useRawPropsJsiValue_;
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<9832c18e4c7ccf232b7222e2356f99d9>>
7
+ * @generated SignedSource<<1a54000b8eb51cb91304902c7f722d45>>
8
8
  */
9
9
 
10
10
  /**
@@ -235,6 +235,14 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider {
235
235
  return true;
236
236
  }
237
237
 
238
+ bool useNativeEqualsInNativeReadableArrayAndroid() override {
239
+ return false;
240
+ }
241
+
242
+ bool useNativeTransformHelperAndroid() override {
243
+ return false;
244
+ }
245
+
238
246
  bool useNativeViewConfigsInBridgelessMode() override {
239
247
  return false;
240
248
  }
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<19f0a48bcfa8f8ffaf634e85301adc7e>>
7
+ * @generated SignedSource<<244db790cc754f31402981967cd902b5>>
8
8
  */
9
9
 
10
10
  /**
@@ -513,6 +513,24 @@ class ReactNativeFeatureFlagsDynamicProvider : public ReactNativeFeatureFlagsDef
513
513
  return ReactNativeFeatureFlagsDefaults::useFabricInterop();
514
514
  }
515
515
 
516
+ bool useNativeEqualsInNativeReadableArrayAndroid() override {
517
+ auto value = values_["useNativeEqualsInNativeReadableArrayAndroid"];
518
+ if (!value.isNull()) {
519
+ return value.getBool();
520
+ }
521
+
522
+ return ReactNativeFeatureFlagsDefaults::useNativeEqualsInNativeReadableArrayAndroid();
523
+ }
524
+
525
+ bool useNativeTransformHelperAndroid() override {
526
+ auto value = values_["useNativeTransformHelperAndroid"];
527
+ if (!value.isNull()) {
528
+ return value.getBool();
529
+ }
530
+
531
+ return ReactNativeFeatureFlagsDefaults::useNativeTransformHelperAndroid();
532
+ }
533
+
516
534
  bool useNativeViewConfigsInBridgelessMode() override {
517
535
  auto value = values_["useNativeViewConfigsInBridgelessMode"];
518
536
  if (!value.isNull()) {
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<f33ea0f19a27ec6124d8dbf1a043b4ce>>
7
+ * @generated SignedSource<<a045579d42e45fa80831856734a063aa>>
8
8
  */
9
9
 
10
10
  /**
@@ -30,6 +30,14 @@ class ReactNativeFeatureFlagsOverridesOSSExperimental : public ReactNativeFeatur
30
30
  bool preventShadowTreeCommitExhaustion() override {
31
31
  return true;
32
32
  }
33
+
34
+ bool useNativeEqualsInNativeReadableArrayAndroid() override {
35
+ return true;
36
+ }
37
+
38
+ bool useNativeTransformHelperAndroid() override {
39
+ return true;
40
+ }
33
41
  };
34
42
 
35
43
  } // namespace facebook::react
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<815769cc8d08e19b2598dd1862ed5060>>
7
+ * @generated SignedSource<<2387ed12fe46fb5b606ad13a17511f03>>
8
8
  */
9
9
 
10
10
  /**
@@ -77,6 +77,8 @@ class ReactNativeFeatureFlagsProvider {
77
77
  virtual bool updateRuntimeShadowNodeReferencesOnCommit() = 0;
78
78
  virtual bool useAlwaysAvailableJSErrorHandling() = 0;
79
79
  virtual bool useFabricInterop() = 0;
80
+ virtual bool useNativeEqualsInNativeReadableArrayAndroid() = 0;
81
+ virtual bool useNativeTransformHelperAndroid() = 0;
80
82
  virtual bool useNativeViewConfigsInBridgelessMode() = 0;
81
83
  virtual bool useOptimizedEventBatchingOnAndroid() = 0;
82
84
  virtual bool useRawPropsJsiValue() = 0;
@@ -31,9 +31,8 @@ Pod::Spec.new do |s|
31
31
  "USE_HEADERMAP" => "YES",
32
32
  "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
33
33
  "GCC_WARN_PEDANTIC" => "YES" }
34
- if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source()
35
- s.header_mappings_dir = './'
36
- end
34
+
35
+ resolve_use_frameworks(s, header_mappings_dir: './')
37
36
 
38
37
  s.source_files = podspec_sources("ReactCommon/**/*.{mm,cpp,h}", "ReactCommon/**/*.{h}")
39
38
 
@@ -38,10 +38,7 @@ Pod::Spec.new do |s|
38
38
  "OTHER_CFLAGS" => "$(inherited)",
39
39
  "DEFINES_MODULE" => "YES" }
40
40
 
41
- if ENV['USE_FRAMEWORKS']
42
- s.module_name = "React_defaultsnativemodule"
43
- s.header_mappings_dir = "../.."
44
- end
41
+ resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "React_defaultsnativemodule")
45
42
 
46
43
  s.dependency "React-jsi"
47
44
  s.dependency "React-jsiexecutor"
@@ -40,10 +40,7 @@ Pod::Spec.new do |s|
40
40
  "OTHER_CFLAGS" => "$(inherited)",
41
41
  "DEFINES_MODULE" => "YES" }
42
42
 
43
- if ENV['USE_FRAMEWORKS']
44
- s.module_name = "React_domnativemodule"
45
- s.header_mappings_dir = "../.."
46
- end
43
+ resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "React_domnativemodule")
47
44
 
48
45
  s.dependency "React-jsi"
49
46
  s.dependency "React-jsiexecutor"
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<474a64af739969acebb4bb9bb1005168>>
7
+ * @generated SignedSource<<45e1b08fd2438b27af82591b5cfa5744>>
8
8
  */
9
9
 
10
10
  /**
@@ -304,6 +304,16 @@ bool NativeReactNativeFeatureFlags::useFabricInterop(
304
304
  return ReactNativeFeatureFlags::useFabricInterop();
305
305
  }
306
306
 
307
+ bool NativeReactNativeFeatureFlags::useNativeEqualsInNativeReadableArrayAndroid(
308
+ jsi::Runtime& /*runtime*/) {
309
+ return ReactNativeFeatureFlags::useNativeEqualsInNativeReadableArrayAndroid();
310
+ }
311
+
312
+ bool NativeReactNativeFeatureFlags::useNativeTransformHelperAndroid(
313
+ jsi::Runtime& /*runtime*/) {
314
+ return ReactNativeFeatureFlags::useNativeTransformHelperAndroid();
315
+ }
316
+
307
317
  bool NativeReactNativeFeatureFlags::useNativeViewConfigsInBridgelessMode(
308
318
  jsi::Runtime& /*runtime*/) {
309
319
  return ReactNativeFeatureFlags::useNativeViewConfigsInBridgelessMode();
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<bfaa3cc7ab3eeff306337b06b7ae978a>>
7
+ * @generated SignedSource<<d1862a9ce3cfeda5d140941fcd3b25bc>>
8
8
  */
9
9
 
10
10
  /**
@@ -140,6 +140,10 @@ class NativeReactNativeFeatureFlags
140
140
 
141
141
  bool useFabricInterop(jsi::Runtime& runtime);
142
142
 
143
+ bool useNativeEqualsInNativeReadableArrayAndroid(jsi::Runtime& runtime);
144
+
145
+ bool useNativeTransformHelperAndroid(jsi::Runtime& runtime);
146
+
143
147
  bool useNativeViewConfigsInBridgelessMode(jsi::Runtime& runtime);
144
148
 
145
149
  bool useOptimizedEventBatchingOnAndroid(jsi::Runtime& runtime);
@@ -38,10 +38,7 @@ Pod::Spec.new do |s|
38
38
  "OTHER_CFLAGS" => "$(inherited)",
39
39
  "DEFINES_MODULE" => "YES" }
40
40
 
41
- if ENV['USE_FRAMEWORKS']
42
- s.module_name = "React_featureflagsnativemodule"
43
- s.header_mappings_dir = "../.."
44
- end
41
+ resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "React_featureflagsnativemodule")
45
42
 
46
43
  s.dependency "React-jsi"
47
44
  s.dependency "React-jsiexecutor"
@@ -38,10 +38,7 @@ Pod::Spec.new do |s|
38
38
  "OTHER_CFLAGS" => "$(inherited)",
39
39
  "DEFINES_MODULE" => "YES" }
40
40
 
41
- if ENV['USE_FRAMEWORKS']
42
- s.module_name = "idlecallbacksnativemodule"
43
- s.header_mappings_dir = "../.."
44
- end
41
+ resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "idlecallbacksnativemodule")
45
42
 
46
43
  s.dependency "React-jsi"
47
44
  s.dependency "React-jsiexecutor"
@@ -38,10 +38,7 @@ Pod::Spec.new do |s|
38
38
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
39
39
  "DEFINES_MODULE" => "YES" }
40
40
 
41
- if ENV['USE_FRAMEWORKS']
42
- s.module_name = "React_microtasksnativemodule"
43
- s.header_mappings_dir = "../.."
44
- end
41
+ resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "React_microtasksnativemodule")
45
42
 
46
43
  s.dependency "React-jsi"
47
44
  s.dependency "React-jsiexecutor"
@@ -40,6 +40,8 @@ Pod::Spec.new do |s|
40
40
  s.framework = "UIKit"
41
41
 
42
42
  if ENV['USE_FRAMEWORKS']
43
+ # Do not use resolve_use_frameworks here - since we're including source files.
44
+ # Then it is not needed.
43
45
  s.header_mappings_dir = './'
44
46
  end
45
47
 
@@ -38,10 +38,7 @@ Pod::Spec.new do |s|
38
38
  "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
39
39
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')}
40
40
 
41
- if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source()
42
- s.module_name = "React_performancetimeline"
43
- s.header_mappings_dir = "../../.."
44
- end
41
+ resolve_use_frameworks(s, header_mappings_dir: "../../..", module_name: "React_performancetimeline")
45
42
 
46
43
  s.dependency "React-featureflags"
47
44
  add_dependency(s, "React-jsinspectortracing", :framework_name => 'jsinspector_moderntracing')
@@ -0,0 +1,30 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include "AppleSwitchShadowNode.h"
11
+
12
+ #include <react/renderer/core/ConcreteComponentDescriptor.h>
13
+
14
+ namespace facebook::react {
15
+
16
+ /*
17
+ * Descriptor for <Switch> component.
18
+ */
19
+ class SwitchComponentDescriptor final
20
+ : public ConcreteComponentDescriptor<SwitchShadowNode> {
21
+ public:
22
+ SwitchComponentDescriptor(const ComponentDescriptorParameters& parameters)
23
+ : ConcreteComponentDescriptor(parameters) {}
24
+
25
+ void adopt(ShadowNode& shadowNode) const override {
26
+ ConcreteComponentDescriptor::adopt(shadowNode);
27
+ }
28
+ };
29
+
30
+ } // namespace facebook::react
@@ -0,0 +1,42 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <react/renderer/components/FBReactNativeSpec/EventEmitters.h>
11
+ #include <react/renderer/components/FBReactNativeSpec/Props.h>
12
+ #include <react/renderer/components/view/ConcreteViewShadowNode.h>
13
+
14
+ namespace facebook::react {
15
+
16
+ extern const char AppleSwitchComponentName[];
17
+
18
+ /*
19
+ * `ShadowNode` for <IOSSwitch> component.
20
+ */
21
+ class SwitchShadowNode final : public ConcreteViewShadowNode<
22
+ AppleSwitchComponentName,
23
+ SwitchProps,
24
+ SwitchEventEmitter> {
25
+ public:
26
+ using ConcreteViewShadowNode::ConcreteViewShadowNode;
27
+
28
+ static ShadowNodeTraits BaseTraits() {
29
+ auto traits = ConcreteViewShadowNode::BaseTraits();
30
+ traits.set(ShadowNodeTraits::Trait::LeafYogaNode);
31
+ traits.set(ShadowNodeTraits::Trait::MeasurableYogaNode);
32
+ return traits;
33
+ }
34
+
35
+ #pragma mark - LayoutableShadowNode
36
+
37
+ Size measureContent(
38
+ const LayoutContext& layoutContext,
39
+ const LayoutConstraints& layoutConstraints) const override;
40
+ };
41
+
42
+ } // namespace facebook::react
@@ -0,0 +1,28 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #import <React/RCTUtils.h>
9
+ #import <UIKit/UIKit.h>
10
+ #include "AppleSwitchShadowNode.h"
11
+
12
+ namespace facebook::react {
13
+
14
+ extern const char AppleSwitchComponentName[] = "Switch";
15
+
16
+ #pragma mark - LayoutableShadowNode
17
+
18
+ Size SwitchShadowNode::measureContent(
19
+ const LayoutContext & /*layoutContext*/,
20
+ const LayoutConstraints & /*layoutConstraints*/) const
21
+ {
22
+ CGSize uiSwitchSize = RCTSwitchSize();
23
+ // Apple has some error when returning the width of the component and it doesn't
24
+ // account for the borders.
25
+ return {.width = uiSwitchSize.width + 2, .height = uiSwitchSize.height};
26
+ }
27
+
28
+ } // namespace facebook::react
@@ -0,0 +1,32 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #import <AppKit/AppKit.h>
9
+ #include "AppleSwitchShadowNode.h"
10
+
11
+ namespace facebook::react {
12
+
13
+ extern const char AppleSwitchComponentName[] = "Switch";
14
+
15
+ #pragma mark - LayoutableShadowNode
16
+
17
+ Size SwitchShadowNode::measureContent(
18
+ const LayoutContext & /*layoutContext*/,
19
+ const LayoutConstraints & /*layoutConstraints*/) const
20
+ {
21
+ static CGSize nsSwitchSize = CGSizeZero;
22
+ static dispatch_once_t onceToken;
23
+ dispatch_once(&onceToken, ^{
24
+ dispatch_sync(dispatch_get_main_queue(), ^{
25
+ nsSwitchSize = [NSSwitch new].intrinsicContentSize;
26
+ });
27
+ });
28
+
29
+ return {.width = nsSwitchSize.width, .height = nsSwitchSize.height};
30
+ }
31
+
32
+ } // namespace facebook::react
@@ -13,6 +13,7 @@
13
13
  #include <react/renderer/components/view/ViewProps.h>
14
14
  #include <react/renderer/core/PropsParserContext.h>
15
15
  #include <react/renderer/graphics/Color.h>
16
+ #include <limits>
16
17
  #include <string>
17
18
 
18
19
  namespace facebook::react {
@@ -60,7 +61,7 @@ class BaseTextInputProps : public ViewProps, public BaseTextProps {
60
61
  // TODO: Rename to `tintColor` and make universal.
61
62
  SharedColor underlineColorAndroid{};
62
63
 
63
- int maxLength{};
64
+ int maxLength = std::numeric_limits<int>::max();
64
65
 
65
66
  /*
66
67
  * "Private" (only used by TextInput.js) props
@@ -550,6 +550,13 @@ BorderMetrics BaseViewProps::resolveBorderMetrics(
550
550
  Transform BaseViewProps::resolveTransform(
551
551
  const LayoutMetrics& layoutMetrics) const {
552
552
  const auto& frameSize = layoutMetrics.frame.size;
553
+ return resolveTransform(frameSize, transform, transformOrigin);
554
+ }
555
+
556
+ Transform BaseViewProps::resolveTransform(
557
+ const Size& frameSize,
558
+ const Transform& transform,
559
+ const TransformOrigin& transformOrigin) {
553
560
  auto transformMatrix = Transform{};
554
561
  if (frameSize.width == 0 && frameSize.height == 0) {
555
562
  return transformMatrix;
@@ -562,8 +569,7 @@ Transform BaseViewProps::resolveTransform(
562
569
  } else {
563
570
  for (const auto& operation : transform.operations) {
564
571
  transformMatrix = transformMatrix *
565
- Transform::FromTransformOperation(
566
- operation, layoutMetrics.frame.size, transform);
572
+ Transform::FromTransformOperation(operation, frameSize, transform);
567
573
  }
568
574
  }
569
575
 
@@ -115,6 +115,11 @@ class BaseViewProps : public YogaStylableProps, public AccessibilityProps {
115
115
  Transform resolveTransform(const LayoutMetrics& layoutMetrics) const;
116
116
  bool getClipsContentToBounds() const;
117
117
 
118
+ static Transform resolveTransform(
119
+ const Size& frameSize,
120
+ const Transform& transform,
121
+ const TransformOrigin& transformOrigin);
122
+
118
123
  #if RN_DEBUG_STRING_CONVERTIBLE
119
124
  SharedDebugStringConvertibleList getDebugProps() const override;
120
125
  #endif
@@ -38,8 +38,6 @@ Pod::Spec.new do |s|
38
38
  "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
39
39
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')}
40
40
 
41
- if ENV['USE_FRAMEWORKS']
42
- s.module_name = "React_rendererconsistency"
43
- s.header_mappings_dir = "../../.."
44
- end
41
+ resolve_use_frameworks(s, header_mappings_dir: "../../..", module_name: "React_rendererconsistency")
42
+
45
43
  end
@@ -18,7 +18,7 @@ end
18
18
 
19
19
  header_search_paths = []
20
20
 
21
- if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source()
21
+ if ENV['USE_FRAMEWORKS']
22
22
  header_search_paths << "\"$(PODS_TARGET_SRCROOT)/../../..\"" # this is needed to allow the renderer/css access its own files
23
23
  end
24
24
 
@@ -40,10 +40,7 @@ Pod::Spec.new do |s|
40
40
  "DEFINES_MODULE" => "YES",
41
41
  }
42
42
 
43
- if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source()
44
- s.module_name = "React_renderercss"
45
- s.header_mappings_dir = "../../.."
46
- end
43
+ resolve_use_frameworks(s, header_mappings_dir: "../../..", module_name: "React_renderercss")
47
44
 
48
45
  add_dependency(s, "React-debug")
49
46
  add_dependency(s, "React-utils")
@@ -40,10 +40,7 @@ Pod::Spec.new do |s|
40
40
  "DEFINES_MODULE" => "YES"
41
41
  }
42
42
 
43
- if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source()
44
- s.module_name = "React_rendererdebug"
45
- s.header_mappings_dir = "../../.."
46
- end
43
+ resolve_use_frameworks(s, header_mappings_dir: "../../..", module_name: "React_rendererdebug")
47
44
 
48
45
  add_dependency(s, "React-debug")
49
46
  add_rn_third_party_dependencies(s)
@@ -34,12 +34,12 @@ Pod::Spec.new do |s|
34
34
  s.header_dir = "react/renderer/graphics"
35
35
  s.framework = "UIKit"
36
36
 
37
- if ENV['USE_FRAMEWORKS'] && ReactNativeCoreUtils.build_rncore_from_source()
38
- s.module_name = "React_graphics"
39
- s.header_mappings_dir = "../../.."
37
+ if ENV['USE_FRAMEWORKS']
40
38
  header_search_paths = header_search_paths + ["\"$(PODS_TARGET_SRCROOT)/platform/ios\""]
41
39
  end
42
40
 
41
+ resolve_use_frameworks(s, header_mappings_dir: "../../..", module_name: "React_graphics")
42
+
43
43
  s.pod_target_xcconfig = { "USE_HEADERMAP" => "NO",
44
44
  "HEADER_SEARCH_PATHS" => header_search_paths.join(" "),
45
45
  "DEFINES_MODULE" => "YES",