react-native-windows 0.0.0-canary.685 → 0.0.0-canary.686

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/.flowconfig +1 -1
  2. package/Libraries/Animated/Animated.js +1 -1
  3. package/Libraries/Animated/animations/Animation.js +5 -1
  4. package/Libraries/Animated/useAnimatedProps.js +5 -2
  5. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +1 -0
  6. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +1 -0
  7. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -0
  8. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -0
  9. package/Libraries/Components/TextInput/TextInput.d.ts +31 -7
  10. package/Libraries/Components/TextInput/TextInput.flow.js +33 -10
  11. package/Libraries/Components/TextInput/TextInput.js +46 -10
  12. package/Libraries/Components/TextInput/TextInput.windows.js +46 -10
  13. package/Libraries/Components/View/ViewPropTypes.js +3 -3
  14. package/Libraries/Components/View/ViewPropTypes.windows.js +3 -3
  15. package/Libraries/Core/ReactNativeVersion.js +1 -1
  16. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
  17. package/Libraries/Pressability/Pressability.js +8 -2
  18. package/Libraries/Pressability/Pressability.windows.js +8 -2
  19. package/Libraries/ReactNative/BridgelessUIManager.js +26 -8
  20. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -0
  21. package/Libraries/ReactNative/UIManager.js +8 -0
  22. package/Libraries/Share/Share.d.ts +3 -9
  23. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +19 -15
  24. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  25. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  26. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  27. package/Libraries/Utilities/Platform.android.js +6 -0
  28. package/Libraries/Utilities/Platform.d.ts +1 -0
  29. package/Libraries/Utilities/Platform.ios.js +6 -0
  30. package/Libraries/Utilities/Platform.windows.js +6 -0
  31. package/Libraries/vendor/emitter/EventEmitter.js +13 -13
  32. package/PropertySheets/Generated/PackageVersion.g.props +2 -2
  33. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +14 -0
  34. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +2 -43
  35. package/Shared/Shared.vcxitems +3 -0
  36. package/codegen/NativePlatformConstantsAndroidSpec.g.h +2 -0
  37. package/codegen/NativePlatformConstantsIOSSpec.g.h +2 -0
  38. package/codegen/NativePlatformConstantsWinSpec.g.h +2 -0
  39. package/codegen/rnwcoreJSI.h +189 -63
  40. package/package.json +11 -11
  41. package/types/modules/globals.d.ts +1 -1
@@ -13,27 +13,45 @@
13
13
  import type {RootTag} from '../Types/RootTagTypes';
14
14
 
15
15
  import {unstable_hasComponent} from '../NativeComponent/NativeComponentRegistryUnstable';
16
+ import ReactNativeFeatureFlags from './ReactNativeFeatureFlags';
17
+
18
+ let cachedConstants = null;
16
19
 
17
20
  const errorMessageForMethod = (methodName: string): string =>
18
21
  "[ReactNative Architecture][JS] '" +
19
22
  methodName +
20
23
  "' is not available in the new React Native architecture.";
21
24
 
25
+ function getCachedConstants(): Object {
26
+ if (!cachedConstants) {
27
+ cachedConstants = global.RN$LegacyInterop_UIManager_getConstants();
28
+ }
29
+ return cachedConstants;
30
+ }
31
+
22
32
  module.exports = {
23
33
  getViewManagerConfig: (viewManagerName: string): mixed => {
24
- console.error(
25
- errorMessageForMethod('getViewManagerConfig') +
26
- 'Use hasViewManagerConfig instead. viewManagerName: ' +
27
- viewManagerName,
28
- );
29
- return null;
34
+ if (ReactNativeFeatureFlags.enableNativeViewConfigsInBridgelessMode) {
35
+ return getCachedConstants()[viewManagerName];
36
+ } else {
37
+ console.error(
38
+ errorMessageForMethod('getViewManagerConfig') +
39
+ 'Use hasViewManagerConfig instead. viewManagerName: ' +
40
+ viewManagerName,
41
+ );
42
+ return null;
43
+ }
30
44
  },
31
45
  hasViewManagerConfig: (viewManagerName: string): boolean => {
32
46
  return unstable_hasComponent(viewManagerName);
33
47
  },
34
48
  getConstants: (): Object => {
35
- console.error(errorMessageForMethod('getConstants'));
36
- return {};
49
+ if (ReactNativeFeatureFlags.enableNativeViewConfigsInBridgelessMode) {
50
+ return getCachedConstants();
51
+ } else {
52
+ console.error(errorMessageForMethod('getConstants'));
53
+ return null;
54
+ }
37
55
  },
38
56
  getConstantsForViewManager: (viewManagerName: string): Object => {
39
57
  console.error(errorMessageForMethod('getConstantsForViewManager'));
@@ -49,6 +49,14 @@ export type FeatureFlags = {|
49
49
  * Enables use of AnimatedObject for animating transform values.
50
50
  */
51
51
  shouldUseAnimatedObjectForTransform: () => boolean,
52
+ /**
53
+ * Enables use of setNativeProps in JS driven animations.
54
+ */
55
+ shouldUseSetNativePropsInFabric: () => boolean,
56
+ /**
57
+ * Enables native view configs in brdgeless mode.
58
+ */
59
+ enableNativeViewConfigsInBridgelessMode: () => boolean,
52
60
  |};
53
61
 
54
62
  const ReactNativeFeatureFlags: FeatureFlags = {
@@ -60,6 +68,8 @@ const ReactNativeFeatureFlags: FeatureFlags = {
60
68
  isGlobalWebPerformanceLoggerEnabled: () => false,
61
69
  enableAccessToHostTreeInFabric: () => false,
62
70
  shouldUseAnimatedObjectForTransform: () => false,
71
+ shouldUseSetNativePropsInFabric: () => false,
72
+ enableNativeViewConfigsInBridgelessMode: () => false,
63
73
  };
64
74
 
65
75
  module.exports = ReactNativeFeatureFlags;
@@ -180,6 +180,14 @@ const UIManager = {
180
180
  commandName: number | string,
181
181
  commandArgs: any[],
182
182
  ) {
183
+ // Sometimes, libraries directly pass in the output of `findNodeHandle` to
184
+ // this function without checking if it's null. This guards against that
185
+ // case. We throw early here in Javascript so we can get a JS stacktrace
186
+ // instead of a harder-to-debug native Java or Objective-C stacktrace.
187
+ if (typeof reactTag !== 'number') {
188
+ throw new Error('dispatchViewManagerCommand: found null reactTag');
189
+ }
190
+
183
191
  if (isFabricReactTag(reactTag)) {
184
192
  const FabricUIManager = nullthrows(getFabricUIManager());
185
193
  const shadowNode =
@@ -27,17 +27,11 @@ export type ShareOptions = {
27
27
  anchor?: number | undefined;
28
28
  };
29
29
 
30
- export type ShareSharedAction = {
31
- action: 'sharedAction';
32
- activityType?: string | undefined;
30
+ export type ShareAction = {
31
+ action: 'sharedAction' | 'dismissedAction';
32
+ activityType?: string | null | undefined;
33
33
  };
34
34
 
35
- export type ShareDismissedAction = {
36
- action: 'dismissedAction';
37
- };
38
-
39
- export type ShareAction = ShareSharedAction | ShareDismissedAction;
40
-
41
35
  export interface ShareStatic {
42
36
  /**
43
37
  * Open a dialog to share text content.
@@ -173,23 +173,27 @@ interface MatrixTransform {
173
173
  matrix: AnimatableNumericValue[];
174
174
  }
175
175
 
176
+ type MaximumOneOf<T, K extends keyof T = keyof T> = K extends keyof T
177
+ ? {[P in K]: T[K]} & {[P in Exclude<keyof T, K>]?: never}
178
+ : never;
179
+
176
180
  export interface TransformsStyle {
177
181
  transform?:
178
- | (
179
- | PerpectiveTransform
180
- | RotateTransform
181
- | RotateXTransform
182
- | RotateYTransform
183
- | RotateZTransform
184
- | ScaleTransform
185
- | ScaleXTransform
186
- | ScaleYTransform
187
- | TranslateXTransform
188
- | TranslateYTransform
189
- | SkewXTransform
190
- | SkewYTransform
191
- | MatrixTransform
192
- )[]
182
+ | MaximumOneOf<
183
+ PerpectiveTransform &
184
+ RotateTransform &
185
+ RotateXTransform &
186
+ RotateYTransform &
187
+ RotateZTransform &
188
+ ScaleTransform &
189
+ ScaleXTransform &
190
+ ScaleYTransform &
191
+ TranslateXTransform &
192
+ TranslateYTransform &
193
+ SkewXTransform &
194
+ SkewYTransform &
195
+ MatrixTransform
196
+ >[]
193
197
  | string
194
198
  | undefined;
195
199
  /**
@@ -15,6 +15,7 @@ import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
15
15
  export interface Spec extends TurboModule {
16
16
  +getConstants: () => {|
17
17
  isTesting: boolean,
18
+ isDisableAnimations?: boolean,
18
19
  reactNativeVersion: {|
19
20
  major: number,
20
21
  minor: number,
@@ -15,6 +15,7 @@ import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
15
15
  export interface Spec extends TurboModule {
16
16
  +getConstants: () => {|
17
17
  isTesting: boolean,
18
+ isDisableAnimations?: boolean,
18
19
  reactNativeVersion: {|
19
20
  major: number,
20
21
  minor: number,
@@ -13,6 +13,7 @@ import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
13
13
  export interface Spec extends TurboModule {
14
14
  +getConstants: () => {|
15
15
  isTesting: boolean,
16
+ isDisableAnimations?: boolean,
16
17
  reactNativeVersion: {|
17
18
  major: number,
18
19
  minor: number,
@@ -28,6 +28,7 @@ const Platform = {
28
28
  // $FlowFixMe[unsafe-getters-setters]
29
29
  get constants(): {|
30
30
  isTesting: boolean,
31
+ isDisableAnimations?: boolean,
31
32
  reactNativeVersion: {|
32
33
  major: number,
33
34
  minor: number,
@@ -61,6 +62,11 @@ const Platform = {
61
62
  return false;
62
63
  },
63
64
  // $FlowFixMe[unsafe-getters-setters]
65
+ get isDisableAnimations(): boolean {
66
+ // $FlowFixMe[object-this-reference]
67
+ return this.constants.isDisableAnimations ?? this.isTesting;
68
+ },
69
+ // $FlowFixMe[unsafe-getters-setters]
64
70
  get isTV(): boolean {
65
71
  // $FlowFixMe[object-this-reference]
66
72
  return this.constants.uiMode === 'tv';
@@ -19,6 +19,7 @@ export type PlatformOSType =
19
19
  | 'native';
20
20
  type PlatformConstants = {
21
21
  isTesting: boolean;
22
+ isDisableAnimations?: boolean | undefined;
22
23
  reactNativeVersion: {
23
24
  major: number;
24
25
  minor: number;
@@ -30,6 +30,7 @@ const Platform = {
30
30
  forceTouchAvailable: boolean,
31
31
  interfaceIdiom: string,
32
32
  isTesting: boolean,
33
+ isDisableAnimations?: boolean,
33
34
  osVersion: string,
34
35
  reactNativeVersion: {|
35
36
  major: number,
@@ -65,6 +66,11 @@ const Platform = {
65
66
  }
66
67
  return false;
67
68
  },
69
+ // $FlowFixMe[unsafe-getters-setters]
70
+ get isDisableAnimations(): boolean {
71
+ // $FlowFixMe[object-this-reference]
72
+ return this.constants.isDisableAnimations ?? this.isTesting;
73
+ },
68
74
  select: <T>(spec: PlatformSelectSpec<T>): T =>
69
75
  // $FlowFixMe[incompatible-return]
70
76
  'ios' in spec ? spec.ios : 'native' in spec ? spec.native : spec.default,
@@ -26,6 +26,7 @@ const Platform = {
26
26
  // $FlowFixMe[unsafe-getters-setters]
27
27
  get constants(): {|
28
28
  isTesting: boolean,
29
+ isDisableAnimations?: boolean,
29
30
  reactNativeVersion: {|
30
31
  major: number,
31
32
  minor: number,
@@ -51,6 +52,11 @@ const Platform = {
51
52
  return false;
52
53
  },
53
54
  // $FlowFixMe[unsafe-getters-setters]
55
+ get isDisableAnimations(): boolean {
56
+ // $FlowFixMe[object-this-reference]
57
+ return this.constants.isDisableAnimations ?? this.isTesting;
58
+ },
59
+ // $FlowFixMe[unsafe-getters-setters]
54
60
  get isTV(): boolean {
55
61
  // $FlowFixMe[object-this-reference]
56
62
  return false;
@@ -15,13 +15,13 @@ export interface EventSubscription {
15
15
  export interface IEventEmitter<TEventToArgsMap: {...}> {
16
16
  addListener<TEvent: $Keys<TEventToArgsMap>>(
17
17
  eventType: TEvent,
18
- listener: (...args: $ElementType<TEventToArgsMap, TEvent>) => mixed,
18
+ listener: (...args: TEventToArgsMap[TEvent]) => mixed,
19
19
  context?: mixed,
20
20
  ): EventSubscription;
21
21
 
22
22
  emit<TEvent: $Keys<TEventToArgsMap>>(
23
23
  eventType: TEvent,
24
- ...args: $ElementType<TEventToArgsMap, TEvent>
24
+ ...args: TEventToArgsMap[TEvent]
25
25
  ): void;
26
26
 
27
27
  removeAllListeners<TEvent: $Keys<TEventToArgsMap>>(eventType?: ?TEvent): void;
@@ -71,7 +71,7 @@ export default class EventEmitter<TEventToArgsMap: {...}>
71
71
  */
72
72
  addListener<TEvent: $Keys<TEventToArgsMap>>(
73
73
  eventType: TEvent,
74
- listener: (...args: $ElementType<TEventToArgsMap, TEvent>) => mixed,
74
+ listener: (...args: TEventToArgsMap[TEvent]) => mixed,
75
75
  context: mixed,
76
76
  ): EventSubscription {
77
77
  if (typeof listener !== 'function') {
@@ -79,11 +79,12 @@ export default class EventEmitter<TEventToArgsMap: {...}>
79
79
  'EventEmitter.addListener(...): 2nd argument must be a function.',
80
80
  );
81
81
  }
82
- const registrations = allocate<_, _, TEventToArgsMap[TEvent]>(
83
- this._registry,
84
- eventType,
85
- );
86
- const registration: Registration<$ElementType<TEventToArgsMap, TEvent>> = {
82
+ const registrations = allocate<
83
+ TEventToArgsMap,
84
+ TEvent,
85
+ TEventToArgsMap[TEvent],
86
+ >(this._registry, eventType);
87
+ const registration: Registration<TEventToArgsMap[TEvent]> = {
87
88
  context,
88
89
  listener,
89
90
  remove(): void {
@@ -103,11 +104,10 @@ export default class EventEmitter<TEventToArgsMap: {...}>
103
104
  */
104
105
  emit<TEvent: $Keys<TEventToArgsMap>>(
105
106
  eventType: TEvent,
106
- ...args: $ElementType<TEventToArgsMap, TEvent>
107
+ ...args: TEventToArgsMap[TEvent]
107
108
  ): void {
108
- const registrations: ?Set<
109
- Registration<$ElementType<TEventToArgsMap, TEvent>>,
110
- > = this._registry[eventType];
109
+ const registrations: ?Set<Registration<TEventToArgsMap[TEvent]>> =
110
+ this._registry[eventType];
111
111
  if (registrations != null) {
112
112
  for (const registration of [...registrations]) {
113
113
  registration.listener.apply(registration.context, args);
@@ -140,7 +140,7 @@ export default class EventEmitter<TEventToArgsMap: {...}>
140
140
  function allocate<
141
141
  TEventToArgsMap: {...},
142
142
  TEvent: $Keys<TEventToArgsMap>,
143
- TEventArgs: $ElementType<TEventToArgsMap, TEvent>,
143
+ TEventArgs: TEventToArgsMap[TEvent],
144
144
  >(
145
145
  registry: Registry<TEventToArgsMap>,
146
146
  eventType: TEvent,
@@ -10,11 +10,11 @@
10
10
  -->
11
11
  <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
12
12
  <PropertyGroup>
13
- <ReactNativeWindowsVersion>0.0.0-canary.685</ReactNativeWindowsVersion>
13
+ <ReactNativeWindowsVersion>0.0.0-canary.686</ReactNativeWindowsVersion>
14
14
  <ReactNativeWindowsMajor>0</ReactNativeWindowsMajor>
15
15
  <ReactNativeWindowsMinor>0</ReactNativeWindowsMinor>
16
16
  <ReactNativeWindowsPatch>0</ReactNativeWindowsPatch>
17
17
  <ReactNativeWindowsCanary>true</ReactNativeWindowsCanary>
18
- <ReactNativeWindowsCommitId>a1b2fc1f681ba2652a3f3eb6650174d39625b15f</ReactNativeWindowsCommitId>
18
+ <ReactNativeWindowsCommitId>1f6d2a9ab892a5ab2ffb9652d4ee41ff6a04b2b6</ReactNativeWindowsCommitId>
19
19
  </PropertyGroup>
20
20
  </Project>
@@ -478,6 +478,20 @@ TEST_P(JSITest, ArrayTest) {
478
478
  Array alpha2 = Array(rt, 1);
479
479
  alpha2 = std::move(alpha);
480
480
  EXPECT_EQ(alpha2.size(rt), 4);
481
+
482
+ // Test getting/setting an element that is an accessor.
483
+ auto arrWithAccessor =
484
+ eval(
485
+ "Object.defineProperty([], '0', {set(){ throw 72 }, get(){ return 45 }});")
486
+ .getObject(rt)
487
+ .getArray(rt);
488
+ try {
489
+ arrWithAccessor.setValueAtIndex(rt, 0, 1);
490
+ FAIL() << "Expected exception";
491
+ } catch (const JSError& err) {
492
+ EXPECT_EQ(err.value().getNumber(), 72);
493
+ }
494
+ EXPECT_EQ(arrWithAccessor.getValueAtIndex(rt, 0).getNumber(), 45);
481
495
  }
482
496
 
483
497
  TEST_P(JSITest, FunctionTest) {
@@ -58,43 +58,6 @@ static jsi::Value touchEventPayload(
58
58
  return object;
59
59
  }
60
60
 
61
- static jsi::Value pointerEventPayload(
62
- jsi::Runtime &runtime,
63
- PointerEvent const &event) {
64
- auto object = jsi::Object(runtime);
65
- object.setProperty(runtime, "pointerId", event.pointerId);
66
- object.setProperty(runtime, "pressure", event.pressure);
67
- object.setProperty(runtime, "pointerType", event.pointerType);
68
- object.setProperty(runtime, "clientX", event.clientPoint.x);
69
- object.setProperty(runtime, "clientY", event.clientPoint.y);
70
- // x/y are an alias to clientX/Y
71
- object.setProperty(runtime, "x", event.clientPoint.x);
72
- object.setProperty(runtime, "y", event.clientPoint.y);
73
- // since RN doesn't have a scrollable root, pageX/Y will always equal
74
- // clientX/Y
75
- object.setProperty(runtime, "pageX", event.clientPoint.x);
76
- object.setProperty(runtime, "pageY", event.clientPoint.y);
77
- object.setProperty(runtime, "screenX", event.screenPoint.x);
78
- object.setProperty(runtime, "screenY", event.screenPoint.y);
79
- object.setProperty(runtime, "offsetX", event.offsetPoint.x);
80
- object.setProperty(runtime, "offsetY", event.offsetPoint.y);
81
- object.setProperty(runtime, "width", event.width);
82
- object.setProperty(runtime, "height", event.height);
83
- object.setProperty(runtime, "tiltX", event.tiltX);
84
- object.setProperty(runtime, "tiltY", event.tiltY);
85
- object.setProperty(runtime, "detail", event.detail);
86
- object.setProperty(runtime, "buttons", event.buttons);
87
- object.setProperty(runtime, "tangentialPressure", event.tangentialPressure);
88
- object.setProperty(runtime, "twist", event.twist);
89
- object.setProperty(runtime, "ctrlKey", event.ctrlKey);
90
- object.setProperty(runtime, "shiftKey", event.shiftKey);
91
- object.setProperty(runtime, "altKey", event.altKey);
92
- object.setProperty(runtime, "metaKey", event.metaKey);
93
- object.setProperty(runtime, "isPrimary", event.isPrimary);
94
- object.setProperty(runtime, "button", event.button);
95
- return object;
96
- }
97
-
98
61
  void TouchEventEmitter::dispatchTouchEvent(
99
62
  std::string type,
100
63
  TouchEvent const &event,
@@ -116,9 +79,7 @@ void TouchEventEmitter::dispatchPointerEvent(
116
79
  RawEvent::Category category) const {
117
80
  dispatchEvent(
118
81
  std::move(type),
119
- [event](jsi::Runtime &runtime) {
120
- return pointerEventPayload(runtime, event);
121
- },
82
+ std::make_shared<PointerEvent>(event),
122
83
  priority,
123
84
  category);
124
85
  }
@@ -178,9 +139,7 @@ void TouchEventEmitter::onPointerDown(const PointerEvent &event) const {
178
139
  }
179
140
 
180
141
  void TouchEventEmitter::onPointerMove(const PointerEvent &event) const {
181
- dispatchUniqueEvent("pointerMove", [event](jsi::Runtime &runtime) {
182
- return pointerEventPayload(runtime, event);
183
- });
142
+ dispatchUniqueEvent("pointerMove", std::make_shared<PointerEvent>(event));
184
143
  }
185
144
 
186
145
  void TouchEventEmitter::onPointerUp(const PointerEvent &event) const {
@@ -440,6 +440,7 @@
440
440
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\text\TextShadowNode.cpp" />
441
441
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\text\RawTextShadowNode.cpp" />
442
442
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\view\AccessibilityProps.cpp" DisableSpecificWarnings="4018;%(DisableSpecificWarnings)" />
443
+ <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\view\PointerEvent.cpp" DisableSpecificWarnings="4018;%(DisableSpecificWarnings)" />
443
444
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\view\TouchEventEmitter.cpp" DisableSpecificWarnings="4018;%(DisableSpecificWarnings)" />
444
445
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\view\ViewEventEmitter.cpp" DisableSpecificWarnings="4018;%(DisableSpecificWarnings)" />
445
446
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\view\ViewProps.cpp" DisableSpecificWarnings="4459;4715;%(DisableSpecificWarnings)" />
@@ -448,6 +449,7 @@
448
449
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\view\YogaStylableProps.cpp" DisableSpecificWarnings="4715;%(DisableSpecificWarnings)" />
449
450
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\core\BatchedEventQueue.cpp" />
450
451
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\core\ComponentDescriptor.cpp" />
452
+ <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\core\ValueFactoryEventPayload.cpp" />
451
453
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\utils\CoreFeatures.cpp" />
452
454
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\core\DynamicPropsUtilities.cpp" />
453
455
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\core\EventBeat.cpp" />
@@ -504,6 +506,7 @@
504
506
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\templateprocessor\UITemplateProcessor.cpp" DisableSpecificWarnings="4244;%(DisableSpecificWarnings)" />
505
507
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\textlayoutmanager\TextMeasureCache.cpp" />
506
508
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\uimanager\bindingUtils.cpp" />
509
+ <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\uimanager\PointerEventsProcessor.cpp" />
507
510
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\uimanager\SurfaceRegistryBinding.cpp" DisableSpecificWarnings="4715;%(DisableSpecificWarnings)" />
508
511
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\uimanager\UIManager.cpp" />
509
512
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\uimanager\UIManagerBinding.cpp" DisableSpecificWarnings="4389;4715;%(DisableSpecificWarnings)" />
@@ -29,6 +29,8 @@ REACT_STRUCT(PlatformConstantsAndroidSpec_Constants)
29
29
  struct PlatformConstantsAndroidSpec_Constants {
30
30
  REACT_FIELD(isTesting)
31
31
  bool isTesting;
32
+ REACT_FIELD(isDisableAnimations)
33
+ std::optional<bool> isDisableAnimations;
32
34
  REACT_FIELD(reactNativeVersion)
33
35
  PlatformConstantsAndroidSpec_Constants_reactNativeVersion reactNativeVersion;
34
36
  REACT_FIELD(Version)
@@ -29,6 +29,8 @@ REACT_STRUCT(PlatformConstantsIOSSpec_Constants)
29
29
  struct PlatformConstantsIOSSpec_Constants {
30
30
  REACT_FIELD(isTesting)
31
31
  bool isTesting;
32
+ REACT_FIELD(isDisableAnimations)
33
+ std::optional<bool> isDisableAnimations;
32
34
  REACT_FIELD(reactNativeVersion)
33
35
  PlatformConstantsIOSSpec_Constants_reactNativeVersion reactNativeVersion;
34
36
  REACT_FIELD(forceTouchAvailable)
@@ -29,6 +29,8 @@ REACT_STRUCT(PlatformConstantsWinSpec_Constants)
29
29
  struct PlatformConstantsWinSpec_Constants {
30
30
  REACT_FIELD(isTesting)
31
31
  bool isTesting;
32
+ REACT_FIELD(isDisableAnimations)
33
+ std::optional<bool> isDisableAnimations;
32
34
  REACT_FIELD(reactNativeVersion)
33
35
  PlatformConstantsWinSpec_Constants_reactNativeVersion reactNativeVersion;
34
36
  REACT_FIELD(osVersion)