react-native-windows 0.0.0-canary.992 → 0.0.0-canary.993
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/.flowconfig +3 -1
- package/Libraries/Animated/Animated.js +0 -1
- package/Libraries/Animated/Animated.js.flow +0 -1
- package/Libraries/Animated/AnimatedExports.js +0 -1
- package/Libraries/Animated/AnimatedExports.js.flow +1 -2
- package/Libraries/Animated/animations/Animation.js +5 -2
- package/Libraries/Animated/components/AnimatedScrollView.js +53 -52
- package/Libraries/Animated/createAnimatedComponent.js +37 -33
- package/Libraries/Animated/nodes/AnimatedObject.js +2 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +1 -1
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +6 -1
- package/Libraries/AppState/AppState.js +6 -1
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +19 -18
- package/Libraries/Components/Button.js +2 -2
- package/Libraries/Components/Button.windows.js +2 -3
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +2 -3
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +2 -1
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +0 -1
- package/Libraries/Components/Pressable/Pressable.js +9 -6
- package/Libraries/Components/Pressable/Pressable.windows.js +9 -6
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +14 -13
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +13 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +29 -20
- package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -5
- package/Libraries/Components/ScrollView/ScrollView.js +18 -12
- package/Libraries/Components/ScrollView/ScrollView.windows.js +19 -12
- package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -1
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +19 -6
- package/Libraries/Components/Switch/Switch.js +8 -2
- package/Libraries/Components/Switch/Switch.windows.js +8 -2
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +1 -5
- package/Libraries/Components/TextInput/TextInput.flow.js +1 -5
- package/Libraries/Components/TextInput/TextInput.flow.windows.js +1 -6
- package/Libraries/Components/TextInput/TextInput.js +26 -25
- package/Libraries/Components/TextInput/TextInput.windows.js +27 -25
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -5
- package/Libraries/Components/Touchable/TouchableBounce.js +9 -3
- package/Libraries/Components/Touchable/TouchableBounce.windows.js +9 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +9 -4
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +9 -4
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +2 -1
- package/Libraries/Components/Touchable/TouchableOpacity.js +7 -3
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +7 -3
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -2
- package/Libraries/Components/View/View.js +111 -25
- package/Libraries/Components/View/View.windows.js +427 -227
- package/Libraries/Core/Devtools/loadBundleFromServer.js +49 -7
- package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +49 -7
- package/Libraries/Core/InitializeCore.js +1 -22
- package/Libraries/Core/ReactNativeVersion.js +3 -2
- package/Libraries/Debugging/DebuggingOverlay.js +6 -8
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +0 -1
- package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +0 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +1 -1
- package/Libraries/Image/AssetRegistry.js +4 -10
- package/Libraries/Image/AssetSourceResolver.js +17 -4
- package/Libraries/Image/AssetSourceResolver.windows.js +17 -4
- package/Libraries/Image/Image.android.js +112 -106
- package/Libraries/Image/Image.ios.js +10 -2
- package/Libraries/Image/Image.windows.js +30 -20
- package/Libraries/Image/ImageAnalyticsTagContext.js +2 -2
- package/Libraries/Image/RelativeImageStub.js +1 -0
- package/Libraries/Lists/FlatList.d.ts +9 -5
- package/Libraries/Lists/FlatList.js +1 -1
- package/Libraries/Lists/SectionListModern.js +9 -3
- package/Libraries/LogBox/UI/LogBoxButton.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -1
- package/Libraries/ReactNative/AppContainer-dev.js +4 -4
- package/Libraries/ReactNative/AppContainer-prod.js +0 -1
- package/Libraries/ReactNative/RootTag.js +2 -2
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
- package/Libraries/Renderer/shims/ReactNativeTypes.js +21 -25
- package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +270 -0
- package/Libraries/StyleSheet/StyleSheetExports.js.flow +3 -1
- package/Libraries/StyleSheet/StyleSheetTypes.js +4 -3
- package/Libraries/StyleSheet/private/_TransformStyle.js +49 -21
- package/Libraries/StyleSheet/processBoxShadow.js +0 -1
- package/Libraries/StyleSheet/processFilter.js +0 -1
- package/Libraries/Text/Text.d.ts +1 -2
- package/Libraries/Text/Text.js +255 -244
- package/Libraries/Text/Text.windows.js +281 -300
- package/Libraries/Text/TextAncestor.js +3 -2
- package/Libraries/Text/TextProps.js +2 -34
- package/Libraries/Text/TextProps.windows.js +2 -34
- package/Libraries/Types/ReactDevToolsTypes.js +0 -1
- package/Libraries/Utilities/PerformanceLoggerContext.js +2 -2
- package/Libraries/Utilities/PlatformTypes.js +1 -1
- package/Libraries/vendor/core/ErrorUtils.js +28 -4
- package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.h +1 -1
- package/Microsoft.ReactNative/Fabric/AbiShadowNode.h +1 -1
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +2 -2
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +10 -9
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +21 -17
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -4
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +19 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +76 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +6 -0
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +19 -2
- package/Microsoft.ReactNative/Utils/ThemeUtils.cpp +49 -0
- package/Microsoft.ReactNative/Utils/ThemeUtils.h +31 -0
- package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +36 -8
- package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +6 -2
- package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +9 -1
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Base.h +45 -34
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +1 -1
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +1 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +36 -33
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Number.h +10 -10
- package/PropertySheets/External/Microsoft.ReactNative.Cpp.Dependencies.props +10 -0
- package/PropertySheets/Generated/PackageVersion.g.props +2 -2
- package/PropertySheets/React.Cpp.props +1 -1
- package/ReactCommon/ReactCommon.vcxproj +10 -19
- package/ReactCommon/ReactCommon.vcxproj.filters +36 -13
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +1 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +110 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +1 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.cpp +19 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.h +9 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +459 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +92 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +35 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityProps.cpp +28 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/css/CSSTokenizer.h +1 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +2 -1
- package/Scripts/creaternwapp.cmd +11 -8
- package/Shared/HermesRuntimeHolder.cpp +3 -1
- package/Shared/Shared.vcxitems +5 -1
- package/Shared/Shared.vcxitems.filters +4 -0
- package/codegen/NativeDOMSpec.g.h +6 -0
- package/codegen/NativeIntersectionObserverSpec.g.h +19 -5
- package/codegen/NativeMutationObserverSpec.g.h +11 -5
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +104 -92
- package/codegen/react/components/rnwcore/States.h +8 -8
- package/codegen/rnwcoreJSI-generated.cpp +48 -3
- package/codegen/rnwcoreJSI.h +73 -10
- package/index.js +0 -1
- package/jest/mockNativeComponent.js +2 -1
- package/jest/renderer.js +0 -1
- package/jest/resolver.js +31 -0
- package/package.json +13 -13
- package/src/private/animated/NativeAnimatedHelper.js +6 -1
- package/src/private/animated/createAnimatedPropsHook.js +11 -4
- package/src/private/animated/createAnimatedPropsMemoHook.js +0 -1
- package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
- package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
- package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
- package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.windows.js +8 -9
- package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
- package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
- package/src/private/featureflags/ReactNativeFeatureFlags.js +39 -4
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -2
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
- package/src/private/styles/composeStyles.js +12 -5
- package/src/private/webapis/dom/events/Event.js +3 -0
- package/src/private/webapis/dom/events/EventTarget.js +3 -0
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +6 -23
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +3 -1
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +3 -0
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +3 -0
- package/src/private/webapis/errors/DOMException.js +166 -0
- package/src/private/webapis/geometry/DOMRect.js +5 -0
- package/src/private/webapis/geometry/DOMRectList.js +3 -0
- package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +15 -7
- package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +80 -18
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +12 -0
- package/src/private/webapis/mutationobserver/MutationObserver.js +23 -33
- package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
- package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +56 -24
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +4 -1
- package/src/private/webapis/performance/MemoryInfo.js +4 -1
- package/src/private/webapis/performance/Performance.js +19 -8
- package/src/private/webapis/performance/PerformanceEntry.js +4 -0
- package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +2 -0
- package/src/private/webapis/structuredClone/structuredClone.js +233 -0
- package/src/private/webapis/webidl/PlatformObjects.js +59 -0
- package/src/types/globals.d.ts +42 -0
- package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +0 -1
- package/types/index.d.ts +1 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +0 -78
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +0 -196
package/codegen/rnwcoreJSI.h
CHANGED
|
@@ -23,6 +23,7 @@ public:
|
|
|
23
23
|
virtual bool commonTestFlag(jsi::Runtime &rt) = 0;
|
|
24
24
|
virtual bool commonTestFlagWithoutNativeImplementation(jsi::Runtime &rt) = 0;
|
|
25
25
|
virtual bool animatedShouldSignalBatch(jsi::Runtime &rt) = 0;
|
|
26
|
+
virtual bool avoidCeilingAvailableAndroidTextWidth(jsi::Runtime &rt) = 0;
|
|
26
27
|
virtual bool cxxNativeAnimatedEnabled(jsi::Runtime &rt) = 0;
|
|
27
28
|
virtual bool disableMainQueueSyncDispatchIOS(jsi::Runtime &rt) = 0;
|
|
28
29
|
virtual bool disableMountItemReorderingAndroid(jsi::Runtime &rt) = 0;
|
|
@@ -39,7 +40,7 @@ public:
|
|
|
39
40
|
virtual bool enableFixForParentTagDuringReparenting(jsi::Runtime &rt) = 0;
|
|
40
41
|
virtual bool enableFontScaleChangesUpdatingLayout(jsi::Runtime &rt) = 0;
|
|
41
42
|
virtual bool enableIOSViewClipToPaddingBox(jsi::Runtime &rt) = 0;
|
|
42
|
-
virtual bool
|
|
43
|
+
virtual bool enableIntersectionObserverEventLoopIntegration(jsi::Runtime &rt) = 0;
|
|
43
44
|
virtual bool enableLayoutAnimationsOnAndroid(jsi::Runtime &rt) = 0;
|
|
44
45
|
virtual bool enableLayoutAnimationsOnIOS(jsi::Runtime &rt) = 0;
|
|
45
46
|
virtual bool enableMainQueueModulesOnIOS(jsi::Runtime &rt) = 0;
|
|
@@ -61,6 +62,7 @@ public:
|
|
|
61
62
|
virtual bool traceTurboModulePromiseRejectionsOnAndroid(jsi::Runtime &rt) = 0;
|
|
62
63
|
virtual bool updateRuntimeShadowNodeReferencesOnCommit(jsi::Runtime &rt) = 0;
|
|
63
64
|
virtual bool useAlwaysAvailableJSErrorHandling(jsi::Runtime &rt) = 0;
|
|
65
|
+
virtual bool useAndroidTextLayoutWidthDirectly(jsi::Runtime &rt) = 0;
|
|
64
66
|
virtual bool useFabricInterop(jsi::Runtime &rt) = 0;
|
|
65
67
|
virtual bool useNativeViewConfigsInBridgelessMode(jsi::Runtime &rt) = 0;
|
|
66
68
|
virtual bool useOptimizedEventBatchingOnAndroid(jsi::Runtime &rt) = 0;
|
|
@@ -122,6 +124,14 @@ private:
|
|
|
122
124
|
return bridging::callFromJs<bool>(
|
|
123
125
|
rt, &T::animatedShouldSignalBatch, jsInvoker_, instance_);
|
|
124
126
|
}
|
|
127
|
+
bool avoidCeilingAvailableAndroidTextWidth(jsi::Runtime &rt) override {
|
|
128
|
+
static_assert(
|
|
129
|
+
bridging::getParameterCount(&T::avoidCeilingAvailableAndroidTextWidth) == 1,
|
|
130
|
+
"Expected avoidCeilingAvailableAndroidTextWidth(...) to have 1 parameters");
|
|
131
|
+
|
|
132
|
+
return bridging::callFromJs<bool>(
|
|
133
|
+
rt, &T::avoidCeilingAvailableAndroidTextWidth, jsInvoker_, instance_);
|
|
134
|
+
}
|
|
125
135
|
bool cxxNativeAnimatedEnabled(jsi::Runtime &rt) override {
|
|
126
136
|
static_assert(
|
|
127
137
|
bridging::getParameterCount(&T::cxxNativeAnimatedEnabled) == 1,
|
|
@@ -250,13 +260,13 @@ private:
|
|
|
250
260
|
return bridging::callFromJs<bool>(
|
|
251
261
|
rt, &T::enableIOSViewClipToPaddingBox, jsInvoker_, instance_);
|
|
252
262
|
}
|
|
253
|
-
bool
|
|
263
|
+
bool enableIntersectionObserverEventLoopIntegration(jsi::Runtime &rt) override {
|
|
254
264
|
static_assert(
|
|
255
|
-
bridging::getParameterCount(&T::
|
|
256
|
-
"Expected
|
|
265
|
+
bridging::getParameterCount(&T::enableIntersectionObserverEventLoopIntegration) == 1,
|
|
266
|
+
"Expected enableIntersectionObserverEventLoopIntegration(...) to have 1 parameters");
|
|
257
267
|
|
|
258
268
|
return bridging::callFromJs<bool>(
|
|
259
|
-
rt, &T::
|
|
269
|
+
rt, &T::enableIntersectionObserverEventLoopIntegration, jsInvoker_, instance_);
|
|
260
270
|
}
|
|
261
271
|
bool enableLayoutAnimationsOnAndroid(jsi::Runtime &rt) override {
|
|
262
272
|
static_assert(
|
|
@@ -426,6 +436,14 @@ private:
|
|
|
426
436
|
return bridging::callFromJs<bool>(
|
|
427
437
|
rt, &T::useAlwaysAvailableJSErrorHandling, jsInvoker_, instance_);
|
|
428
438
|
}
|
|
439
|
+
bool useAndroidTextLayoutWidthDirectly(jsi::Runtime &rt) override {
|
|
440
|
+
static_assert(
|
|
441
|
+
bridging::getParameterCount(&T::useAndroidTextLayoutWidthDirectly) == 1,
|
|
442
|
+
"Expected useAndroidTextLayoutWidthDirectly(...) to have 1 parameters");
|
|
443
|
+
|
|
444
|
+
return bridging::callFromJs<bool>(
|
|
445
|
+
rt, &T::useAndroidTextLayoutWidthDirectly, jsInvoker_, instance_);
|
|
446
|
+
}
|
|
429
447
|
bool useFabricInterop(jsi::Runtime &rt) override {
|
|
430
448
|
static_assert(
|
|
431
449
|
bridging::getParameterCount(&T::useFabricInterop) == 1,
|
|
@@ -8239,14 +8257,15 @@ struct NativeIntersectionObserverNativeIntersectionObserverEntryBridging {
|
|
|
8239
8257
|
|
|
8240
8258
|
#pragma mark - NativeIntersectionObserverNativeIntersectionObserverObserveOptions
|
|
8241
8259
|
|
|
8242
|
-
template <typename P0, typename P1, typename P2, typename P3>
|
|
8260
|
+
template <typename P0, typename P1, typename P2, typename P3, typename P4>
|
|
8243
8261
|
struct NativeIntersectionObserverNativeIntersectionObserverObserveOptions {
|
|
8244
8262
|
P0 intersectionObserverId;
|
|
8245
|
-
P1
|
|
8246
|
-
P2
|
|
8247
|
-
P3
|
|
8263
|
+
P1 rootShadowNode;
|
|
8264
|
+
P2 targetShadowNode;
|
|
8265
|
+
P3 thresholds;
|
|
8266
|
+
P4 rootThresholds;
|
|
8248
8267
|
bool operator==(const NativeIntersectionObserverNativeIntersectionObserverObserveOptions &other) const {
|
|
8249
|
-
return intersectionObserverId == other.intersectionObserverId && targetShadowNode == other.targetShadowNode && thresholds == other.thresholds && rootThresholds == other.rootThresholds;
|
|
8268
|
+
return intersectionObserverId == other.intersectionObserverId && rootShadowNode == other.rootShadowNode && targetShadowNode == other.targetShadowNode && thresholds == other.thresholds && rootThresholds == other.rootThresholds;
|
|
8250
8269
|
}
|
|
8251
8270
|
};
|
|
8252
8271
|
|
|
@@ -8260,6 +8279,7 @@ struct NativeIntersectionObserverNativeIntersectionObserverObserveOptionsBridgin
|
|
|
8260
8279
|
const std::shared_ptr<CallInvoker> &jsInvoker) {
|
|
8261
8280
|
T result{
|
|
8262
8281
|
bridging::fromJs<decltype(types.intersectionObserverId)>(rt, value.getProperty(rt, "intersectionObserverId"), jsInvoker),
|
|
8282
|
+
bridging::fromJs<decltype(types.rootShadowNode)>(rt, value.getProperty(rt, "rootShadowNode"), jsInvoker),
|
|
8263
8283
|
bridging::fromJs<decltype(types.targetShadowNode)>(rt, value.getProperty(rt, "targetShadowNode"), jsInvoker),
|
|
8264
8284
|
bridging::fromJs<decltype(types.thresholds)>(rt, value.getProperty(rt, "thresholds"), jsInvoker),
|
|
8265
8285
|
bridging::fromJs<decltype(types.rootThresholds)>(rt, value.getProperty(rt, "rootThresholds"), jsInvoker)};
|
|
@@ -8271,6 +8291,10 @@ struct NativeIntersectionObserverNativeIntersectionObserverObserveOptionsBridgin
|
|
|
8271
8291
|
return bridging::toJs(rt, value);
|
|
8272
8292
|
}
|
|
8273
8293
|
|
|
8294
|
+
static std::optional<jsi::Value> rootShadowNodeToJs(jsi::Runtime &rt, decltype(types.rootShadowNode) value) {
|
|
8295
|
+
return bridging::toJs(rt, value);
|
|
8296
|
+
}
|
|
8297
|
+
|
|
8274
8298
|
static jsi::Value targetShadowNodeToJs(jsi::Runtime &rt, decltype(types.targetShadowNode) value) {
|
|
8275
8299
|
return bridging::toJs(rt, value);
|
|
8276
8300
|
}
|
|
@@ -8290,6 +8314,9 @@ struct NativeIntersectionObserverNativeIntersectionObserverObserveOptionsBridgin
|
|
|
8290
8314
|
const std::shared_ptr<CallInvoker> &jsInvoker) {
|
|
8291
8315
|
auto result = facebook::jsi::Object(rt);
|
|
8292
8316
|
result.setProperty(rt, "intersectionObserverId", bridging::toJs(rt, value.intersectionObserverId, jsInvoker));
|
|
8317
|
+
if (value.rootShadowNode) {
|
|
8318
|
+
result.setProperty(rt, "rootShadowNode", bridging::toJs(rt, value.rootShadowNode.value(), jsInvoker));
|
|
8319
|
+
}
|
|
8293
8320
|
result.setProperty(rt, "targetShadowNode", bridging::toJs(rt, value.targetShadowNode, jsInvoker));
|
|
8294
8321
|
result.setProperty(rt, "thresholds", bridging::toJs(rt, value.thresholds, jsInvoker));
|
|
8295
8322
|
if (value.rootThresholds) {
|
|
@@ -8306,6 +8333,8 @@ protected:
|
|
|
8306
8333
|
public:
|
|
8307
8334
|
virtual void observe(jsi::Runtime &rt, jsi::Object options) = 0;
|
|
8308
8335
|
virtual void unobserve(jsi::Runtime &rt, double intersectionObserverId, jsi::Value targetShadowNode) = 0;
|
|
8336
|
+
virtual jsi::Value observeV2(jsi::Runtime &rt, jsi::Object options) = 0;
|
|
8337
|
+
virtual void unobserveV2(jsi::Runtime &rt, double intersectionObserverId, jsi::Value token) = 0;
|
|
8309
8338
|
virtual void connect(jsi::Runtime &rt, jsi::Function notifyIntersectionObserversCallback) = 0;
|
|
8310
8339
|
virtual void disconnect(jsi::Runtime &rt) = 0;
|
|
8311
8340
|
virtual jsi::Array takeRecords(jsi::Runtime &rt) = 0;
|
|
@@ -8355,6 +8384,22 @@ private:
|
|
|
8355
8384
|
return bridging::callFromJs<void>(
|
|
8356
8385
|
rt, &T::unobserve, jsInvoker_, instance_, std::move(intersectionObserverId), std::move(targetShadowNode));
|
|
8357
8386
|
}
|
|
8387
|
+
jsi::Value observeV2(jsi::Runtime &rt, jsi::Object options) override {
|
|
8388
|
+
static_assert(
|
|
8389
|
+
bridging::getParameterCount(&T::observeV2) == 2,
|
|
8390
|
+
"Expected observeV2(...) to have 2 parameters");
|
|
8391
|
+
|
|
8392
|
+
return bridging::callFromJs<jsi::Value>(
|
|
8393
|
+
rt, &T::observeV2, jsInvoker_, instance_, std::move(options));
|
|
8394
|
+
}
|
|
8395
|
+
void unobserveV2(jsi::Runtime &rt, double intersectionObserverId, jsi::Value token) override {
|
|
8396
|
+
static_assert(
|
|
8397
|
+
bridging::getParameterCount(&T::unobserveV2) == 3,
|
|
8398
|
+
"Expected unobserveV2(...) to have 3 parameters");
|
|
8399
|
+
|
|
8400
|
+
return bridging::callFromJs<void>(
|
|
8401
|
+
rt, &T::unobserveV2, jsInvoker_, instance_, std::move(intersectionObserverId), std::move(token));
|
|
8402
|
+
}
|
|
8358
8403
|
void connect(jsi::Runtime &rt, jsi::Function notifyIntersectionObserversCallback) override {
|
|
8359
8404
|
static_assert(
|
|
8360
8405
|
bridging::getParameterCount(&T::connect) == 2,
|
|
@@ -8566,6 +8611,7 @@ protected:
|
|
|
8566
8611
|
public:
|
|
8567
8612
|
virtual void observe(jsi::Runtime &rt, jsi::Object options) = 0;
|
|
8568
8613
|
virtual void unobserve(jsi::Runtime &rt, double mutationObserverId, jsi::Value targetShadowNode) = 0;
|
|
8614
|
+
virtual void unobserveAll(jsi::Runtime &rt, double mutationObserverId) = 0;
|
|
8569
8615
|
virtual void connect(jsi::Runtime &rt, jsi::Function notifyMutationObservers, jsi::Function getPublicInstanceFromInstanceHandle) = 0;
|
|
8570
8616
|
virtual void disconnect(jsi::Runtime &rt) = 0;
|
|
8571
8617
|
virtual jsi::Array takeRecords(jsi::Runtime &rt) = 0;
|
|
@@ -8615,6 +8661,14 @@ private:
|
|
|
8615
8661
|
return bridging::callFromJs<void>(
|
|
8616
8662
|
rt, &T::unobserve, jsInvoker_, instance_, std::move(mutationObserverId), std::move(targetShadowNode));
|
|
8617
8663
|
}
|
|
8664
|
+
void unobserveAll(jsi::Runtime &rt, double mutationObserverId) override {
|
|
8665
|
+
static_assert(
|
|
8666
|
+
bridging::getParameterCount(&T::unobserveAll) == 2,
|
|
8667
|
+
"Expected unobserveAll(...) to have 2 parameters");
|
|
8668
|
+
|
|
8669
|
+
return bridging::callFromJs<void>(
|
|
8670
|
+
rt, &T::unobserveAll, jsInvoker_, instance_, std::move(mutationObserverId));
|
|
8671
|
+
}
|
|
8618
8672
|
void connect(jsi::Runtime &rt, jsi::Function notifyMutationObservers, jsi::Function getPublicInstanceFromInstanceHandle) override {
|
|
8619
8673
|
static_assert(
|
|
8620
8674
|
bridging::getParameterCount(&T::connect) == 3,
|
|
@@ -9094,6 +9148,7 @@ public:
|
|
|
9094
9148
|
virtual void measure(jsi::Runtime &rt, jsi::Value nativeElementReference, jsi::Function callback) = 0;
|
|
9095
9149
|
virtual void measureInWindow(jsi::Runtime &rt, jsi::Value nativeElementReference, jsi::Function callback) = 0;
|
|
9096
9150
|
virtual void measureLayout(jsi::Runtime &rt, jsi::Value nativeElementReference, jsi::Value relativeNode, jsi::Function onFail, jsi::Function onSuccess) = 0;
|
|
9151
|
+
virtual void setNativeProps(jsi::Runtime &rt, jsi::Value nativeElementReference, jsi::Value updatePayload) = 0;
|
|
9097
9152
|
|
|
9098
9153
|
};
|
|
9099
9154
|
|
|
@@ -9276,6 +9331,14 @@ private:
|
|
|
9276
9331
|
return bridging::callFromJs<void>(
|
|
9277
9332
|
rt, &T::measureLayout, jsInvoker_, instance_, std::move(nativeElementReference), std::move(relativeNode), std::move(onFail), std::move(onSuccess));
|
|
9278
9333
|
}
|
|
9334
|
+
void setNativeProps(jsi::Runtime &rt, jsi::Value nativeElementReference, jsi::Value updatePayload) override {
|
|
9335
|
+
static_assert(
|
|
9336
|
+
bridging::getParameterCount(&T::setNativeProps) == 3,
|
|
9337
|
+
"Expected setNativeProps(...) to have 3 parameters");
|
|
9338
|
+
|
|
9339
|
+
return bridging::callFromJs<void>(
|
|
9340
|
+
rt, &T::setNativeProps, jsInvoker_, instance_, std::move(nativeElementReference), std::move(updatePayload));
|
|
9341
|
+
}
|
|
9279
9342
|
|
|
9280
9343
|
private:
|
|
9281
9344
|
friend class NativeDOMCxxSpec;
|
package/index.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
'use strict';
|
|
11
11
|
|
|
12
12
|
const React = require('react');
|
|
13
|
+
const {createElement} = require('react');
|
|
13
14
|
|
|
14
15
|
let nativeTag = 1;
|
|
15
16
|
|
|
@@ -18,7 +19,7 @@ export default viewName => {
|
|
|
18
19
|
_nativeTag = nativeTag++;
|
|
19
20
|
|
|
20
21
|
render() {
|
|
21
|
-
return
|
|
22
|
+
return createElement(viewName, this.props, this.props.children);
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
// The methods that exist on host components
|
package/jest/renderer.js
CHANGED
package/jest/resolver.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
* @format
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
module.exports = (path, options) => {
|
|
13
|
+
const originalPackageFilter = options.packageFilter;
|
|
14
|
+
|
|
15
|
+
return options.defaultResolver(path, {
|
|
16
|
+
...options,
|
|
17
|
+
packageFilter: pkg => {
|
|
18
|
+
const filteredPkg = originalPackageFilter
|
|
19
|
+
? originalPackageFilter(pkg)
|
|
20
|
+
: pkg;
|
|
21
|
+
|
|
22
|
+
// Temporarily allow any react-native subpaths to be resolved and
|
|
23
|
+
// mocked by Jest (backwards compatibility around RFC0894)
|
|
24
|
+
if (filteredPkg.name === 'react-native') {
|
|
25
|
+
delete filteredPkg.exports;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return filteredPkg;
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-windows",
|
|
3
|
-
"version": "0.0.0-canary.
|
|
3
|
+
"version": "0.0.0-canary.993",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -28,14 +28,14 @@
|
|
|
28
28
|
"@react-native-community/cli-platform-ios": "17.0.0",
|
|
29
29
|
"@react-native-windows/cli": "0.0.0-canary.276",
|
|
30
30
|
"@react-native/assets": "1.0.0",
|
|
31
|
-
"@react-native/assets-registry": "0.
|
|
32
|
-
"@react-native/codegen": "0.
|
|
33
|
-
"@react-native/community-cli-plugin": "0.
|
|
34
|
-
"@react-native/gradle-plugin": "0.
|
|
35
|
-
"@react-native/js-polyfills": "0.
|
|
36
|
-
"@react-native/normalize-colors": "0.
|
|
37
|
-
"@react-native/virtualized-lists": "0.
|
|
38
|
-
"@react-native/new-app-screen": "0.
|
|
31
|
+
"@react-native/assets-registry": "0.81.0-nightly-20250521-3cb70bb6a",
|
|
32
|
+
"@react-native/codegen": "0.81.0-nightly-20250521-3cb70bb6a",
|
|
33
|
+
"@react-native/community-cli-plugin": "0.81.0-nightly-20250521-3cb70bb6a",
|
|
34
|
+
"@react-native/gradle-plugin": "0.81.0-nightly-20250521-3cb70bb6a",
|
|
35
|
+
"@react-native/js-polyfills": "0.81.0-nightly-20250521-3cb70bb6a",
|
|
36
|
+
"@react-native/normalize-colors": "0.81.0-nightly-20250521-3cb70bb6a",
|
|
37
|
+
"@react-native/virtualized-lists": "0.81.0-nightly-20250521-3cb70bb6a",
|
|
38
|
+
"@react-native/new-app-screen": "0.81.0-nightly-20250521-3cb70bb6a",
|
|
39
39
|
"abort-controller": "^3.0.0",
|
|
40
40
|
"anser": "^1.4.9",
|
|
41
41
|
"ansi-regex": "^5.0.0",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@react-native-windows/codegen": "0.0.0-canary.125",
|
|
72
|
-
"@react-native/metro-config": "0.
|
|
72
|
+
"@react-native/metro-config": "0.81.0-nightly-20250521-3cb70bb6a",
|
|
73
73
|
"@rnw-scripts/babel-react-native-config": "0.0.0",
|
|
74
74
|
"@rnw-scripts/eslint-config": "1.2.37",
|
|
75
75
|
"@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.41",
|
|
@@ -84,15 +84,15 @@
|
|
|
84
84
|
"just-scripts": "^1.3.3",
|
|
85
85
|
"prettier": "2.8.8",
|
|
86
86
|
"react": "19.1.0",
|
|
87
|
-
"react-native": "0.
|
|
88
|
-
"react-native-platform-override": "^1.9.
|
|
87
|
+
"react-native": "0.81.0-nightly-20250521-3cb70bb6a",
|
|
88
|
+
"react-native-platform-override": "^1.9.58",
|
|
89
89
|
"react-refresh": "^0.14.0",
|
|
90
90
|
"typescript": "5.0.4"
|
|
91
91
|
},
|
|
92
92
|
"peerDependencies": {
|
|
93
93
|
"@types/react": "^19.1.0",
|
|
94
94
|
"react": "^19.1.0",
|
|
95
|
-
"react-native": "0.
|
|
95
|
+
"react-native": "0.81.0-nightly-20250521-3cb70bb6a"
|
|
96
96
|
},
|
|
97
97
|
"beachball": {
|
|
98
98
|
"defaultNpmTag": "canary",
|
|
@@ -57,7 +57,7 @@ const eventListenerAnimationFinishedCallbacks: {
|
|
|
57
57
|
let globalEventEmitterGetValueListener: ?EventSubscription = null;
|
|
58
58
|
let globalEventEmitterAnimationFinishedListener: ?EventSubscription = null;
|
|
59
59
|
|
|
60
|
-
const shouldSignalBatch =
|
|
60
|
+
const shouldSignalBatch: boolean =
|
|
61
61
|
ReactNativeFeatureFlags.animatedShouldSignalBatch() ||
|
|
62
62
|
ReactNativeFeatureFlags.cxxNativeAnimatedEnabled();
|
|
63
63
|
|
|
@@ -97,6 +97,10 @@ function createNativeOperations(): $NonMaybeType<typeof NativeAnimatedModule> {
|
|
|
97
97
|
// is possible because # arguments is fixed for each operation. For more
|
|
98
98
|
// details, see `NativeAnimatedModule.queueAndExecuteBatchedOperations`.
|
|
99
99
|
singleOpQueue.push(operationID, ...args);
|
|
100
|
+
if (shouldSignalBatch) {
|
|
101
|
+
clearImmediate(flushQueueImmediate);
|
|
102
|
+
flushQueueImmediate = setImmediate(API.flushQueue);
|
|
103
|
+
}
|
|
100
104
|
};
|
|
101
105
|
}
|
|
102
106
|
} else {
|
|
@@ -436,6 +440,7 @@ export default {
|
|
|
436
440
|
generateNewAnimationId,
|
|
437
441
|
assertNativeAnimatedModule,
|
|
438
442
|
shouldUseNativeDriver,
|
|
443
|
+
shouldSignalBatch,
|
|
439
444
|
transformDataType,
|
|
440
445
|
// $FlowExpectedError[unsafe-getters-setters] - unsafe getter lint suppression
|
|
441
446
|
// $FlowExpectedError[missing-type-arg] - unsafe getter lint suppression
|
|
@@ -66,9 +66,13 @@ export default function createAnimatedPropsHook(
|
|
|
66
66
|
);
|
|
67
67
|
|
|
68
68
|
useEffect(() => {
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
NativeAnimatedHelper.
|
|
69
|
+
// Animated queue flush is handled deterministically in setImmediate for the following feature flags:
|
|
70
|
+
// animatedShouldSignalBatch, cxxNativeAnimatedEnabled
|
|
71
|
+
if (!NativeAnimatedHelper.shouldSignalBatch) {
|
|
72
|
+
// If multiple components call `flushQueue`, the first one will flush the
|
|
73
|
+
// queue and subsequent ones will do nothing.
|
|
74
|
+
NativeAnimatedHelper.API.flushQueue();
|
|
75
|
+
}
|
|
72
76
|
let drivenAnimationEndedListener: ?EventSubscription = null;
|
|
73
77
|
if (node.__isNative) {
|
|
74
78
|
drivenAnimationEndedListener =
|
|
@@ -128,7 +132,10 @@ export default function createAnimatedPropsHook(
|
|
|
128
132
|
if (node.__isNative) {
|
|
129
133
|
// Check 2: this is an animation driven by native.
|
|
130
134
|
// In native driven animations, this callback is only called once the animation completes.
|
|
131
|
-
if (
|
|
135
|
+
if (
|
|
136
|
+
isFabricNode &&
|
|
137
|
+
!ReactNativeFeatureFlags.cxxNativeAnimatedEnabled()
|
|
138
|
+
) {
|
|
132
139
|
// Call `scheduleUpdate` to synchronise Fiber and Shadow tree.
|
|
133
140
|
// Must not be called in Paper.
|
|
134
141
|
scheduleUpdate();
|
|
@@ -4,17 +4,16 @@
|
|
|
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
|
-
* @flow strict
|
|
7
|
+
* @flow strict
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import NativeReactDevToolsSettingsManager from './specs/NativeReactDevToolsSettingsManager';
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
setGlobalHookSettings(settings
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
13
|
+
export function setGlobalHookSettings(settings: string) {
|
|
14
|
+
NativeReactDevToolsSettingsManager?.setGlobalHookSettings(settings);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function getGlobalHookSettings(): ?string {
|
|
18
|
+
return NativeReactDevToolsSettingsManager?.getGlobalHookSettings();
|
|
19
|
+
}
|
|
@@ -12,19 +12,16 @@ import Settings from '../../../../Libraries/Settings/Settings';
|
|
|
12
12
|
|
|
13
13
|
const GLOBAL_HOOK_SETTINGS = 'ReactDevTools::HookSettings';
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
},
|
|
21
|
-
getGlobalHookSettings(): ?string {
|
|
22
|
-
const value = Settings.get(GLOBAL_HOOK_SETTINGS);
|
|
23
|
-
if (typeof value === 'string') {
|
|
24
|
-
return value;
|
|
25
|
-
}
|
|
26
|
-
return null;
|
|
27
|
-
},
|
|
28
|
-
};
|
|
15
|
+
export function setGlobalHookSettings(settings: string) {
|
|
16
|
+
Settings.set({
|
|
17
|
+
[GLOBAL_HOOK_SETTINGS]: settings,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
29
20
|
|
|
30
|
-
|
|
21
|
+
export function getGlobalHookSettings(): ?string {
|
|
22
|
+
const value = Settings.get(GLOBAL_HOOK_SETTINGS);
|
|
23
|
+
if (typeof value === 'string') {
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
@@ -4,17 +4,16 @@
|
|
|
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
|
-
* @flow strict
|
|
7
|
+
* @flow strict
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import NativeReactDevToolsSettingsManager from './specs/NativeReactDevToolsSettingsManager';
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
setGlobalHookSettings(settings
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
13
|
+
export function setGlobalHookSettings(settings: string) {
|
|
14
|
+
NativeReactDevToolsSettingsManager?.setGlobalHookSettings(settings);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function getGlobalHookSettings(): ?string {
|
|
18
|
+
return NativeReactDevToolsSettingsManager?.getGlobalHookSettings();
|
|
19
|
+
}
|
|
@@ -4,8 +4,9 @@
|
|
|
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<<81be36e22e6ec5f6720c89089d725086>>
|
|
8
8
|
* @flow strict
|
|
9
|
+
* @noformat
|
|
9
10
|
*/
|
|
10
11
|
|
|
11
12
|
/**
|
|
@@ -33,12 +34,16 @@ export type ReactNativeFeatureFlagsJsOnly = $ReadOnly<{
|
|
|
33
34
|
avoidStateUpdateInAnimatedPropsMemo: Getter<boolean>,
|
|
34
35
|
disableInteractionManager: Getter<boolean>,
|
|
35
36
|
enableAccessToHostTreeInFabric: Getter<boolean>,
|
|
37
|
+
enableVirtualViewDebugFeatures: Getter<boolean>,
|
|
38
|
+
enableVirtualViewDoubleStateHidden: Getter<boolean>,
|
|
36
39
|
fixVirtualizeListCollapseWindowSize: Getter<boolean>,
|
|
37
40
|
isLayoutAnimationEnabled: Getter<boolean>,
|
|
41
|
+
reduceDefaultPropsInView: Getter<boolean>,
|
|
38
42
|
scheduleAnimatedCleanupInMicrotask: Getter<boolean>,
|
|
39
43
|
shouldUseAnimatedObjectForTransform: Getter<boolean>,
|
|
40
44
|
shouldUseRemoveClippedSubviewsAsDefaultOnIOS: Getter<boolean>,
|
|
41
45
|
shouldUseSetNativePropsInFabric: Getter<boolean>,
|
|
46
|
+
utilizeTokensInIntersectionObserver: Getter<boolean>,
|
|
42
47
|
}>;
|
|
43
48
|
|
|
44
49
|
export type ReactNativeFeatureFlagsJsOnlyOverrides = OverridesFor<ReactNativeFeatureFlagsJsOnly>;
|
|
@@ -48,6 +53,7 @@ export type ReactNativeFeatureFlags = $ReadOnly<{
|
|
|
48
53
|
commonTestFlag: Getter<boolean>,
|
|
49
54
|
commonTestFlagWithoutNativeImplementation: Getter<boolean>,
|
|
50
55
|
animatedShouldSignalBatch: Getter<boolean>,
|
|
56
|
+
avoidCeilingAvailableAndroidTextWidth: Getter<boolean>,
|
|
51
57
|
cxxNativeAnimatedEnabled: Getter<boolean>,
|
|
52
58
|
disableMainQueueSyncDispatchIOS: Getter<boolean>,
|
|
53
59
|
disableMountItemReorderingAndroid: Getter<boolean>,
|
|
@@ -64,7 +70,7 @@ export type ReactNativeFeatureFlags = $ReadOnly<{
|
|
|
64
70
|
enableFixForParentTagDuringReparenting: Getter<boolean>,
|
|
65
71
|
enableFontScaleChangesUpdatingLayout: Getter<boolean>,
|
|
66
72
|
enableIOSViewClipToPaddingBox: Getter<boolean>,
|
|
67
|
-
|
|
73
|
+
enableIntersectionObserverEventLoopIntegration: Getter<boolean>,
|
|
68
74
|
enableLayoutAnimationsOnAndroid: Getter<boolean>,
|
|
69
75
|
enableLayoutAnimationsOnIOS: Getter<boolean>,
|
|
70
76
|
enableMainQueueModulesOnIOS: Getter<boolean>,
|
|
@@ -86,6 +92,7 @@ export type ReactNativeFeatureFlags = $ReadOnly<{
|
|
|
86
92
|
traceTurboModulePromiseRejectionsOnAndroid: Getter<boolean>,
|
|
87
93
|
updateRuntimeShadowNodeReferencesOnCommit: Getter<boolean>,
|
|
88
94
|
useAlwaysAvailableJSErrorHandling: Getter<boolean>,
|
|
95
|
+
useAndroidTextLayoutWidthDirectly: Getter<boolean>,
|
|
89
96
|
useFabricInterop: Getter<boolean>,
|
|
90
97
|
useNativeViewConfigsInBridgelessMode: Getter<boolean>,
|
|
91
98
|
useOptimizedEventBatchingOnAndroid: Getter<boolean>,
|
|
@@ -125,6 +132,16 @@ export const disableInteractionManager: Getter<boolean> = createJavaScriptFlagGe
|
|
|
125
132
|
*/
|
|
126
133
|
export const enableAccessToHostTreeInFabric: Getter<boolean> = createJavaScriptFlagGetter('enableAccessToHostTreeInFabric', false);
|
|
127
134
|
|
|
135
|
+
/**
|
|
136
|
+
* Enables VirtualView debug features such as logging and overlays.
|
|
137
|
+
*/
|
|
138
|
+
export const enableVirtualViewDebugFeatures: Getter<boolean> = createJavaScriptFlagGetter('enableVirtualViewDebugFeatures', false);
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Enables a VirtualView workaround that triggers a second state update when changing to hidden mode.
|
|
142
|
+
*/
|
|
143
|
+
export const enableVirtualViewDoubleStateHidden: Getter<boolean> = createJavaScriptFlagGetter('enableVirtualViewDoubleStateHidden', false);
|
|
144
|
+
|
|
128
145
|
/**
|
|
129
146
|
* Fixing an edge case where the current window size is not properly calculated with fast scrolling. Window size collapsed to 1 element even if windowSize more than the current amount of elements
|
|
130
147
|
*/
|
|
@@ -135,6 +152,11 @@ export const fixVirtualizeListCollapseWindowSize: Getter<boolean> = createJavaSc
|
|
|
135
152
|
*/
|
|
136
153
|
export const isLayoutAnimationEnabled: Getter<boolean> = createJavaScriptFlagGetter('isLayoutAnimationEnabled', true);
|
|
137
154
|
|
|
155
|
+
/**
|
|
156
|
+
* Optimize how default (accessibility) props are processed in View to avoid unnecessary keys.
|
|
157
|
+
*/
|
|
158
|
+
export const reduceDefaultPropsInView: Getter<boolean> = createJavaScriptFlagGetter('reduceDefaultPropsInView', true);
|
|
159
|
+
|
|
138
160
|
/**
|
|
139
161
|
* Changes the cleanup of `AnimatedProps` to occur in a microtask instead of synchronously during effect cleanup (for unmount) or subsequent mounts (for updates).
|
|
140
162
|
*/
|
|
@@ -155,6 +177,11 @@ export const shouldUseRemoveClippedSubviewsAsDefaultOnIOS: Getter<boolean> = cre
|
|
|
155
177
|
*/
|
|
156
178
|
export const shouldUseSetNativePropsInFabric: Getter<boolean> = createJavaScriptFlagGetter('shouldUseSetNativePropsInFabric', true);
|
|
157
179
|
|
|
180
|
+
/**
|
|
181
|
+
* Use tokens in IntersectionObserver vs ShadowNode.
|
|
182
|
+
*/
|
|
183
|
+
export const utilizeTokensInIntersectionObserver: Getter<boolean> = createJavaScriptFlagGetter('utilizeTokensInIntersectionObserver', true);
|
|
184
|
+
|
|
158
185
|
/**
|
|
159
186
|
* Common flag for testing. Do NOT modify.
|
|
160
187
|
*/
|
|
@@ -167,6 +194,10 @@ export const commonTestFlagWithoutNativeImplementation: Getter<boolean> = create
|
|
|
167
194
|
* Enables start- and finishOperationBatch on any platform.
|
|
168
195
|
*/
|
|
169
196
|
export const animatedShouldSignalBatch: Getter<boolean> = createNativeFlagGetter('animatedShouldSignalBatch', false);
|
|
197
|
+
/**
|
|
198
|
+
* Do not incorrectly ceil the available width of an Android text layout
|
|
199
|
+
*/
|
|
200
|
+
export const avoidCeilingAvailableAndroidTextWidth: Getter<boolean> = createNativeFlagGetter('avoidCeilingAvailableAndroidTextWidth', true);
|
|
170
201
|
/**
|
|
171
202
|
* Use a C++ implementation of Native Animated instead of the platform implementation.
|
|
172
203
|
*/
|
|
@@ -232,9 +263,9 @@ export const enableFontScaleChangesUpdatingLayout: Getter<boolean> = createNativ
|
|
|
232
263
|
*/
|
|
233
264
|
export const enableIOSViewClipToPaddingBox: Getter<boolean> = createNativeFlagGetter('enableIOSViewClipToPaddingBox', false);
|
|
234
265
|
/**
|
|
235
|
-
*
|
|
266
|
+
* Integrates IntersectionObserver in the Event Loop in the new architecture, to dispatch the initial notifications for observations in the "Update the rendering" step.
|
|
236
267
|
*/
|
|
237
|
-
export const
|
|
268
|
+
export const enableIntersectionObserverEventLoopIntegration: Getter<boolean> = createNativeFlagGetter('enableIntersectionObserverEventLoopIntegration', true);
|
|
238
269
|
/**
|
|
239
270
|
* When enabled, LayoutAnimations API will animate state changes on Android.
|
|
240
271
|
*/
|
|
@@ -319,6 +350,10 @@ export const updateRuntimeShadowNodeReferencesOnCommit: Getter<boolean> = create
|
|
|
319
350
|
* In Bridgeless mode, use the always available javascript error reporting pipeline.
|
|
320
351
|
*/
|
|
321
352
|
export const useAlwaysAvailableJSErrorHandling: Getter<boolean> = createNativeFlagGetter('useAlwaysAvailableJSErrorHandling', false);
|
|
353
|
+
/**
|
|
354
|
+
* Trust the width of a text layout we create, instead of re-deriving it from its contents
|
|
355
|
+
*/
|
|
356
|
+
export const useAndroidTextLayoutWidthDirectly: Getter<boolean> = createNativeFlagGetter('useAndroidTextLayoutWidthDirectly', true);
|
|
322
357
|
/**
|
|
323
358
|
* Should this application enable the Fabric Interop Layer for Android? If yes, the application will behave so that it can accept non-Fabric components and render them on Fabric. This toggle is controlling extra logic such as custom event dispatching that are needed for the Fabric Interop Layer to work correctly.
|
|
324
359
|
*/
|