react-native 0.83.0-rc.1 → 0.83.0-rc.3

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 (41) hide show
  1. package/Libraries/Core/ReactNativeVersion.js +1 -1
  2. package/React/Base/RCTVersion.m +1 -1
  3. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +8 -0
  4. package/ReactAndroid/gradle.properties +1 -1
  5. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +7 -1
  6. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +11 -1
  7. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +3 -1
  8. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +6 -4
  9. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +12 -1
  10. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android.kt +3 -1
  11. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +3 -1
  12. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
  13. package/ReactAndroid/src/main/jni/CMakeLists.txt +5 -0
  14. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +15 -1
  15. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +4 -1
  16. package/ReactCommon/React-Fabric.podspec +8 -2
  17. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  18. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +5 -1
  19. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +6 -1
  20. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +73 -55
  21. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +4 -2
  22. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +8 -4
  23. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +10 -1
  24. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSCanary.h +5 -1
  25. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +2 -1
  26. package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
  27. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
  28. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +5 -1
  29. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +6 -1
  30. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +3 -1
  31. package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.h +4 -0
  32. package/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec +66 -0
  33. package/ReactCommon/react/networking/CMakeLists.txt +7 -0
  34. package/package.json +8 -8
  35. package/scripts/cocoapods/utils.rb +2 -0
  36. package/scripts/react_native_pods.rb +1 -0
  37. package/sdks/.hermesv1version +1 -1
  38. package/sdks/hermes-engine/version.properties +1 -1
  39. package/src/private/featureflags/ReactNativeFeatureFlags.js +9 -4
  40. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +2 -1
  41. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
@@ -10,6 +10,7 @@
10
10
  #include <react/nativemodule/dom/NativeDOM.h>
11
11
  #include <react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h>
12
12
  #include <react/nativemodule/idlecallbacks/NativeIdleCallbacks.h>
13
+ #include <react/nativemodule/intersectionobserver/NativeIntersectionObserver.h>
13
14
  #include <react/nativemodule/microtasks/NativeMicrotasks.h>
14
15
  #include <react/nativemodule/webperformance/NativePerformance.h>
15
16
 
@@ -44,6 +45,12 @@ namespace facebook::react {
44
45
  }
45
46
  }
46
47
 
48
+ if (ReactNativeFeatureFlags::enableIntersectionObserverByDefault()) {
49
+ if (name == NativeIntersectionObserver::kModuleName) {
50
+ return std::make_shared<NativeIntersectionObserver>(jsInvoker);
51
+ }
52
+ }
53
+
47
54
  #ifdef REACT_NATIVE_DEBUGGER_ENABLED_DEVONLY
48
55
  if (name == DevToolsRuntimeSettingsModule::kModuleName) {
49
56
  return std::make_shared<DevToolsRuntimeSettingsModule>(jsInvoker);
@@ -16,7 +16,9 @@ else
16
16
  source[:tag] = "v#{version}"
17
17
  end
18
18
 
19
- header_search_paths = []
19
+ header_search_paths = [
20
+ "\"$(PODS_ROOT)/Headers/Private/Yoga\"",
21
+ ]
20
22
 
21
23
  if ENV['USE_FRAMEWORKS']
22
24
  header_search_paths << "\"$(PODS_TARGET_SRCROOT)/../../..\"" # this is needed to allow the defaultsnativemodule to access its own files
@@ -40,6 +42,7 @@ Pod::Spec.new do |s|
40
42
 
41
43
  resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "React_defaultsnativemodule")
42
44
 
45
+ s.dependency "Yoga"
43
46
  s.dependency "React-jsi"
44
47
  s.dependency "React-jsiexecutor"
45
48
  depend_on_js_engine(s)
@@ -49,6 +52,7 @@ Pod::Spec.new do |s|
49
52
  s.dependency "React-domnativemodule"
50
53
  s.dependency "React-microtasksnativemodule"
51
54
  s.dependency "React-idlecallbacksnativemodule"
55
+ s.dependency "React-intersectionobservernativemodule"
52
56
  s.dependency "React-webperformancenativemodule"
53
57
  add_dependency(s, "React-RCTFBReactNativeSpec")
54
58
  add_dependency(s, "React-featureflags")
@@ -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<<368a69d36f8c7aef0103deb940751012>>
7
+ * @generated SignedSource<<3f6cc9604905bb29a9524a97eaa294bd>>
8
8
  */
9
9
 
10
10
  /**
@@ -194,6 +194,11 @@ bool NativeReactNativeFeatureFlags::enableInteropViewManagerClassLookUpOptimizat
194
194
  return ReactNativeFeatureFlags::enableInteropViewManagerClassLookUpOptimizationIOS();
195
195
  }
196
196
 
197
+ bool NativeReactNativeFeatureFlags::enableIntersectionObserverByDefault(
198
+ jsi::Runtime& /*runtime*/) {
199
+ return ReactNativeFeatureFlags::enableIntersectionObserverByDefault();
200
+ }
201
+
197
202
  bool NativeReactNativeFeatureFlags::enableKeyEvents(
198
203
  jsi::Runtime& /*runtime*/) {
199
204
  return ReactNativeFeatureFlags::enableKeyEvents();
@@ -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<<5b7229fbb99de21237fa8d69da46a057>>
7
+ * @generated SignedSource<<dece70d27e5d2e4d052ca4e158c4b968>>
8
8
  */
9
9
 
10
10
  /**
@@ -96,6 +96,8 @@ class NativeReactNativeFeatureFlags
96
96
 
97
97
  bool enableInteropViewManagerClassLookUpOptimizationIOS(jsi::Runtime& runtime);
98
98
 
99
+ bool enableIntersectionObserverByDefault(jsi::Runtime& runtime);
100
+
99
101
  bool enableKeyEvents(jsi::Runtime& runtime);
100
102
 
101
103
  bool enableLayoutAnimationsOnAndroid(jsi::Runtime& runtime);
@@ -7,7 +7,11 @@
7
7
 
8
8
  #pragma once
9
9
 
10
+ #if __has_include("FBReactNativeSpecJSI.h") // CocoaPod headers on Apple
11
+ #include "FBReactNativeSpecJSI.h"
12
+ #else
10
13
  #include <FBReactNativeSpec/FBReactNativeSpecJSI.h>
14
+ #endif
11
15
  #include <react/renderer/bridging/bridging.h>
12
16
  #include <react/renderer/observers/intersection/IntersectionObserverManager.h>
13
17
  #include <optional>
@@ -0,0 +1,66 @@
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ require "json"
7
+
8
+ package = JSON.parse(File.read(File.join(__dir__, "..", "..", "..", "..", "package.json")))
9
+ version = package['version']
10
+
11
+ source = { :git => 'https://github.com/facebook/react-native.git' }
12
+ if version == '1000.0.0'
13
+ # This is an unpublished version, use the latest commit hash of the react-native repo, which we're presumably in.
14
+ source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
15
+ else
16
+ source[:tag] = "v#{version}"
17
+ end
18
+
19
+ header_search_paths = [
20
+ "\"$(PODS_ROOT)/Headers/Private/Yoga\"",
21
+ ]
22
+
23
+ if ENV['USE_FRAMEWORKS']
24
+ header_search_paths << "\"$(PODS_TARGET_SRCROOT)/../../..\"" # this is needed to allow the module access its own files
25
+ end
26
+
27
+ Pod::Spec.new do |s|
28
+ s.name = "React-intersectionobservernativemodule"
29
+ s.version = version
30
+ s.summary = "React Native intersection observer native module"
31
+ s.homepage = "https://reactnative.dev/"
32
+ s.license = package["license"]
33
+ s.author = "Meta Platforms, Inc. and its affiliates"
34
+ s.platforms = min_supported_versions
35
+ s.source = source
36
+ s.source_files = podspec_sources("*.{cpp,h}", "*.h")
37
+ s.header_dir = "react/nativemodule/intersectionobserver"
38
+ s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
39
+ "HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
40
+ "OTHER_CFLAGS" => "$(inherited)",
41
+ "DEFINES_MODULE" => "YES" }
42
+
43
+ if ENV['USE_FRAMEWORKS']
44
+ s.module_name = "intersectionobservernativemodule"
45
+ s.header_mappings_dir = "../.."
46
+ end
47
+
48
+ s.dependency "Yoga"
49
+ s.dependency "React-jsi"
50
+ s.dependency "React-jsiexecutor"
51
+ s.dependency "React-cxxreact"
52
+
53
+ depend_on_js_engine(s)
54
+ add_rn_third_party_dependencies(s)
55
+ add_rncore_dependency(s)
56
+
57
+ s.dependency "ReactCommon/turbomodule/core"
58
+
59
+ s.dependency "React-Fabric"
60
+ s.dependency "React-Fabric/bridging"
61
+ s.dependency "React-runtimescheduler"
62
+ add_dependency(s, "React-RCTFBReactNativeSpec")
63
+ add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"])
64
+ add_dependency(s, "React-graphics", :additional_framework_paths => ["react/renderer/graphics/platform/ios"])
65
+
66
+ end
@@ -21,3 +21,10 @@ target_link_libraries(react_networking
21
21
  jsinspector_tracing
22
22
  react_performance_timeline
23
23
  react_timing)
24
+
25
+ if(${CMAKE_BUILD_TYPE} MATCHES Debug OR REACT_NATIVE_DEBUG_OPTIMIZED)
26
+ target_compile_options(react_networking PRIVATE
27
+ -DREACT_NATIVE_DEBUGGER_ENABLED=1
28
+ -DREACT_NATIVE_DEBUGGER_ENABLED_DEVONLY=1
29
+ )
30
+ endif ()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native",
3
- "version": "0.83.0-rc.1",
3
+ "version": "0.83.0-rc.3",
4
4
  "description": "A framework for building native apps using React",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -160,13 +160,13 @@
160
160
  },
161
161
  "dependencies": {
162
162
  "@jest/create-cache-key-function": "^29.7.0",
163
- "@react-native/assets-registry": "0.83.0-rc.1",
164
- "@react-native/codegen": "0.83.0-rc.1",
165
- "@react-native/community-cli-plugin": "0.83.0-rc.1",
166
- "@react-native/gradle-plugin": "0.83.0-rc.1",
167
- "@react-native/js-polyfills": "0.83.0-rc.1",
168
- "@react-native/normalize-colors": "0.83.0-rc.1",
169
- "@react-native/virtualized-lists": "0.83.0-rc.1",
163
+ "@react-native/assets-registry": "0.83.0-rc.3",
164
+ "@react-native/codegen": "0.83.0-rc.3",
165
+ "@react-native/community-cli-plugin": "0.83.0-rc.3",
166
+ "@react-native/gradle-plugin": "0.83.0-rc.3",
167
+ "@react-native/js-polyfills": "0.83.0-rc.3",
168
+ "@react-native/normalize-colors": "0.83.0-rc.3",
169
+ "@react-native/virtualized-lists": "0.83.0-rc.3",
170
170
  "abort-controller": "^3.0.0",
171
171
  "anser": "^1.4.9",
172
172
  "ansi-regex": "^5.0.0",
@@ -59,8 +59,10 @@ class ReactNativePodsUtils
59
59
  def self.set_gcc_preprocessor_definition_for_debugger(installer)
60
60
  self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "REACT_NATIVE_DEBUGGER_ENABLED=1", "React-jsinspector", :debug)
61
61
  self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "REACT_NATIVE_DEBUGGER_ENABLED=1", "React-RCTNetwork", :debug)
62
+ self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "REACT_NATIVE_DEBUGGER_ENABLED=1", "React-networking", :debug)
62
63
  self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "REACT_NATIVE_DEBUGGER_ENABLED_DEVONLY=1", "React-jsinspector", :debug)
63
64
  self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "REACT_NATIVE_DEBUGGER_ENABLED_DEVONLY=1", "React-RCTNetwork", :debug)
65
+ self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "REACT_NATIVE_DEBUGGER_ENABLED_DEVONLY=1", "React-networking", :debug)
64
66
  end
65
67
 
66
68
  def self.turn_off_resource_bundle_react_core(installer)
@@ -143,6 +143,7 @@ def use_react_native! (
143
143
  pod 'React-featureflagsnativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/featureflags"
144
144
  pod 'React-microtasksnativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/microtasks"
145
145
  pod 'React-idlecallbacksnativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/idlecallbacks"
146
+ pod 'React-intersectionobservernativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/intersectionobserver"
146
147
  pod 'React-webperformancenativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/webperformance"
147
148
  pod 'React-domnativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/dom"
148
149
  pod 'React-defaultsnativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/defaults"
@@ -1 +1 @@
1
- hermes-v250829098.0.3
1
+ hermes-v250829098.0.4
@@ -1,2 +1,2 @@
1
1
  HERMES_VERSION_NAME=0.14.0
2
- HERMES_V1_VERSION_NAME=250829098.0.3
2
+ HERMES_V1_VERSION_NAME=250829098.0.4
@@ -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<<472646b95362ace71083c0a471aa8878>>
7
+ * @generated SignedSource<<474b28e49cdb8a46a361a32df3c92eed>>
8
8
  * @flow strict
9
9
  * @noformat
10
10
  */
@@ -80,6 +80,7 @@ export type ReactNativeFeatureFlags = $ReadOnly<{
80
80
  enableImmediateUpdateModeForContentOffsetChanges: Getter<boolean>,
81
81
  enableImperativeFocus: Getter<boolean>,
82
82
  enableInteropViewManagerClassLookUpOptimizationIOS: Getter<boolean>,
83
+ enableIntersectionObserverByDefault: Getter<boolean>,
83
84
  enableKeyEvents: Getter<boolean>,
84
85
  enableLayoutAnimationsOnAndroid: Getter<boolean>,
85
86
  enableLayoutAnimationsOnIOS: Getter<boolean>,
@@ -335,6 +336,10 @@ export const enableImperativeFocus: Getter<boolean> = createNativeFlagGetter('en
335
336
  * This is to fix the issue with interop view manager where component descriptor lookup is causing ViewManager to preload.
336
337
  */
337
338
  export const enableInteropViewManagerClassLookUpOptimizationIOS: Getter<boolean> = createNativeFlagGetter('enableInteropViewManagerClassLookUpOptimizationIOS', false);
339
+ /**
340
+ * Enables the IntersectionObserver Web API in React Native.
341
+ */
342
+ export const enableIntersectionObserverByDefault: Getter<boolean> = createNativeFlagGetter('enableIntersectionObserverByDefault', false);
338
343
  /**
339
344
  * Enables key up/down/press events to be sent to JS from components
340
345
  */
@@ -362,7 +367,7 @@ export const enableNativeCSSParsing: Getter<boolean> = createNativeFlagGetter('e
362
367
  /**
363
368
  * Enable network event reporting hooks in each native platform through `NetworkReporter`. This flag should be combined with `enableResourceTimingAPI` and `fuseboxNetworkInspectionEnabled` to enable end-to-end reporting behaviour via the Web Performance API and CDP debugging respectively.
364
369
  */
365
- export const enableNetworkEventReporting: Getter<boolean> = createNativeFlagGetter('enableNetworkEventReporting', false);
370
+ export const enableNetworkEventReporting: Getter<boolean> = createNativeFlagGetter('enableNetworkEventReporting', true);
366
371
  /**
367
372
  * Enables caching text layout artifacts for later reuse
368
373
  */
@@ -374,7 +379,7 @@ export const enablePropsUpdateReconciliationAndroid: Getter<boolean> = createNat
374
379
  /**
375
380
  * Enables the reporting of network resource timings through `PerformanceObserver`.
376
381
  */
377
- export const enableResourceTimingAPI: Getter<boolean> = createNativeFlagGetter('enableResourceTimingAPI', false);
382
+ export const enableResourceTimingAPI: Getter<boolean> = createNativeFlagGetter('enableResourceTimingAPI', true);
378
383
  /**
379
384
  * When enabled, it will use SwiftUI for filter effects like blur on iOS.
380
385
  */
@@ -442,7 +447,7 @@ export const fuseboxEnabledRelease: Getter<boolean> = createNativeFlagGetter('fu
442
447
  /**
443
448
  * Enable network inspection support in the React Native DevTools CDP backend. Requires `enableBridgelessArchitecture`. This flag is global and should not be changed across React Host lifetimes.
444
449
  */
445
- export const fuseboxNetworkInspectionEnabled: Getter<boolean> = createNativeFlagGetter('fuseboxNetworkInspectionEnabled', false);
450
+ export const fuseboxNetworkInspectionEnabled: Getter<boolean> = createNativeFlagGetter('fuseboxNetworkInspectionEnabled', true);
446
451
  /**
447
452
  * Hides offscreen VirtualViews on iOS by setting hidden = YES to avoid extra cost of views
448
453
  */
@@ -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<<d51c41724cd4d10eb227f96847277e99>>
7
+ * @generated SignedSource<<fecd2198c65b74c22fa1a6ce96343228>>
8
8
  * @flow strict
9
9
  * @noformat
10
10
  */
@@ -55,6 +55,7 @@ export interface Spec extends TurboModule {
55
55
  +enableImmediateUpdateModeForContentOffsetChanges?: () => boolean;
56
56
  +enableImperativeFocus?: () => boolean;
57
57
  +enableInteropViewManagerClassLookUpOptimizationIOS?: () => boolean;
58
+ +enableIntersectionObserverByDefault?: () => boolean;
58
59
  +enableKeyEvents?: () => boolean;
59
60
  +enableLayoutAnimationsOnAndroid?: () => boolean;
60
61
  +enableLayoutAnimationsOnIOS?: () => boolean;
@@ -41,4 +41,10 @@ export default function setUpDefaltReactNativeEnvironment(
41
41
  }
42
42
 
43
43
  require('../../../Libraries/ReactNative/AppRegistry');
44
+
45
+ if (
46
+ require('../../../src/private/featureflags/ReactNativeFeatureFlags').enableIntersectionObserverByDefault()
47
+ ) {
48
+ require('./setUpIntersectionObserver').default();
49
+ }
44
50
  }