react-native 0.83.0-rc.1 → 0.83.0-rc.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.
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/React/Base/RCTVersion.m +1 -1
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +8 -0
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +7 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +11 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +6 -4
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +12 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
- package/ReactAndroid/src/main/jni/CMakeLists.txt +5 -0
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +15 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +4 -1
- package/ReactCommon/React-Fabric.podspec +8 -2
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +5 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +6 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +73 -55
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +4 -2
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +8 -4
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +10 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSCanary.h +5 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +2 -1
- package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
- package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
- package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +5 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +6 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +3 -1
- package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.h +4 -0
- package/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec +66 -0
- package/package.json +8 -8
- package/scripts/react_native_pods.rb +1 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +9 -4
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +2 -1
- 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<<
|
|
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<<
|
|
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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native",
|
|
3
|
-
"version": "0.83.0-rc.
|
|
3
|
+
"version": "0.83.0-rc.2",
|
|
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.
|
|
164
|
-
"@react-native/codegen": "0.83.0-rc.
|
|
165
|
-
"@react-native/community-cli-plugin": "0.83.0-rc.
|
|
166
|
-
"@react-native/gradle-plugin": "0.83.0-rc.
|
|
167
|
-
"@react-native/js-polyfills": "0.83.0-rc.
|
|
168
|
-
"@react-native/normalize-colors": "0.83.0-rc.
|
|
169
|
-
"@react-native/virtualized-lists": "0.83.0-rc.
|
|
163
|
+
"@react-native/assets-registry": "0.83.0-rc.2",
|
|
164
|
+
"@react-native/codegen": "0.83.0-rc.2",
|
|
165
|
+
"@react-native/community-cli-plugin": "0.83.0-rc.2",
|
|
166
|
+
"@react-native/gradle-plugin": "0.83.0-rc.2",
|
|
167
|
+
"@react-native/js-polyfills": "0.83.0-rc.2",
|
|
168
|
+
"@react-native/normalize-colors": "0.83.0-rc.2",
|
|
169
|
+
"@react-native/virtualized-lists": "0.83.0-rc.2",
|
|
170
170
|
"abort-controller": "^3.0.0",
|
|
171
171
|
"anser": "^1.4.9",
|
|
172
172
|
"ansi-regex": "^5.0.0",
|
|
@@ -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"
|
|
@@ -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<<
|
|
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',
|
|
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',
|
|
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',
|
|
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<<
|
|
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
|
}
|