react-native-windows 0.83.0-preview.2 → 0.84.0-preview.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/.flowconfig +2 -2
  2. package/Folly/Folly.vcxproj +2 -0
  3. package/Libraries/Animated/AnimatedEvent.js +2 -2
  4. package/Libraries/Animated/animations/Animation.js +1 -3
  5. package/Libraries/Animated/createAnimatedComponent.js +8 -5
  6. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  7. package/Libraries/Animated/nodes/AnimatedInterpolation.js +40 -4
  8. package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
  9. package/Libraries/Animated/nodes/AnimatedObject.js +16 -11
  10. package/Libraries/Animated/nodes/AnimatedProps.js +43 -12
  11. package/Libraries/Animated/nodes/AnimatedStyle.js +12 -12
  12. package/Libraries/Animated/nodes/AnimatedValue.js +6 -3
  13. package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
  14. package/Libraries/BatchedBridge/MessageQueue.js +24 -22
  15. package/Libraries/Blob/URL.js +34 -3
  16. package/Libraries/Blob/URLSearchParams.js +1 -0
  17. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +9 -1
  18. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +6 -1
  19. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +6 -1
  20. package/Libraries/Components/Button.js +2 -5
  21. package/Libraries/Components/Button.windows.js +2 -5
  22. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -1
  23. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +4 -4
  24. package/Libraries/Components/Keyboard/Keyboard.js +2 -2
  25. package/Libraries/Components/Pressable/Pressable.js +8 -8
  26. package/Libraries/Components/Pressable/Pressable.windows.js +14 -13
  27. package/Libraries/Components/TextInput/TextInput.flow.js +13 -13
  28. package/Libraries/Components/TextInput/TextInput.flow.windows.js +19 -18
  29. package/Libraries/Components/TextInput/TextInput.js +33 -34
  30. package/Libraries/Components/TextInput/TextInput.windows.js +40 -39
  31. package/Libraries/Components/Touchable/PooledClass.js +2 -2
  32. package/Libraries/Components/Touchable/TouchableBounce.js +3 -3
  33. package/Libraries/Components/Touchable/TouchableBounce.windows.js +3 -3
  34. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  35. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +1 -1
  36. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +9 -9
  37. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +9 -9
  38. package/Libraries/Components/View/ViewPropTypes.js +16 -6
  39. package/Libraries/Components/View/ViewPropTypes.windows.js +21 -11
  40. package/Libraries/Core/Devtools/loadBundleFromServer.js +6 -3
  41. package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +6 -3
  42. package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
  43. package/Libraries/Core/ExceptionsManager.js +3 -3
  44. package/Libraries/Core/RawEventEmitter.js +1 -1
  45. package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
  46. package/Libraries/Core/ReactNativeVersion.js +3 -3
  47. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  48. package/Libraries/Core/setUpErrorHandling.js +1 -1
  49. package/Libraries/EventEmitter/NativeEventEmitter.js +2 -2
  50. package/Libraries/Image/Image.android.js +2 -2
  51. package/Libraries/Image/Image.ios.js +2 -2
  52. package/Libraries/Image/Image.windows.js +2 -2
  53. package/Libraries/Image/ImageProps.js +1 -1
  54. package/Libraries/Image/ImageTypes.flow.js +2 -2
  55. package/Libraries/Interaction/InteractionManager.js +3 -3
  56. package/Libraries/Interaction/PanResponder.js +1 -1
  57. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
  58. package/Libraries/Linking/Linking.js +1 -1
  59. package/Libraries/Lists/FlatList.js +2 -2
  60. package/Libraries/LogBox/Data/LogBoxData.js +31 -4
  61. package/Libraries/LogBox/Data/LogBoxLog.js +2 -2
  62. package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
  63. package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -5
  64. package/Libraries/LogBox/LogBox.js +7 -7
  65. package/Libraries/NativeComponent/BaseViewConfig.android.js +12 -0
  66. package/Libraries/NativeComponent/StaticViewConfigValidator.js +4 -4
  67. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -1
  68. package/Libraries/NativeComponent/ViewConfigIgnore.windows.js +1 -1
  69. package/Libraries/Network/RCTNetworking.android.js +3 -3
  70. package/Libraries/Network/RCTNetworking.ios.js +2 -2
  71. package/Libraries/Network/RCTNetworking.js.flow +2 -2
  72. package/Libraries/Network/RCTNetworking.windows.js +2 -2
  73. package/Libraries/Pressability/Pressability.js +9 -9
  74. package/Libraries/Pressability/Pressability.windows.js +17 -16
  75. package/Libraries/ReactNative/AppRegistry.flow.js +1 -1
  76. package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
  77. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  78. package/Libraries/ReactNative/PaperUIManager.js +1 -1
  79. package/Libraries/ReactNative/PaperUIManager.windows.js +1 -1
  80. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
  81. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +2 -2
  82. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +1 -1
  83. package/Libraries/ReactNative/RendererImplementation.js +1 -1
  84. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  85. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
  86. package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -3
  87. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
  88. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
  89. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +11 -4
  90. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +11 -4
  91. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +11 -4
  92. package/Libraries/Renderer/shims/ReactFabric.js +3 -1
  93. package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
  94. package/Libraries/Renderer/shims/ReactNative.js +2 -2
  95. package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
  96. package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +3 -1
  97. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
  98. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
  99. package/Libraries/Settings/Settings.ios.js +1 -1
  100. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
  101. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  102. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +4 -2
  103. package/Libraries/StyleSheet/StyleSheetExports.js +1 -1
  104. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +99 -4
  105. package/Libraries/StyleSheet/StyleSheetTypes.js +6 -8
  106. package/Libraries/StyleSheet/processFilter.js +1 -1
  107. package/Libraries/Text/Text.js +46 -6
  108. package/Libraries/Text/Text.windows.js +46 -6
  109. package/Libraries/Text/TextNativeComponent.js +1 -1
  110. package/Libraries/Text/TextProps.js +7 -7
  111. package/Libraries/Text/TextProps.windows.js +7 -7
  112. package/Libraries/Types/CodegenTypes.js +1 -1
  113. package/Libraries/Types/CoreEventTypes.js +31 -0
  114. package/Libraries/Types/CoreEventTypes.windows.js +31 -13
  115. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  116. package/Libraries/Utilities/Appearance.js +2 -2
  117. package/Libraries/Utilities/DevLoadingView.js +8 -1
  118. package/Libraries/Utilities/DevSettings.js +3 -3
  119. package/Libraries/Utilities/HMRClient.js +4 -3
  120. package/Libraries/Utilities/RCTLog.js +3 -3
  121. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  122. package/Libraries/Utilities/SceneTracker.js +1 -1
  123. package/Libraries/Utilities/codegenNativeCommands.js +1 -1
  124. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +3 -3
  125. package/Libraries/Utilities/logError.js +1 -1
  126. package/Libraries/Utilities/stringifySafe.js +7 -7
  127. package/Libraries/Utilities/useRefEffect.js +1 -1
  128. package/Libraries/WebSocket/WebSocketInterceptor.js +3 -3
  129. package/Libraries/promiseRejectionTrackingOptions.js +8 -8
  130. package/Libraries/vendor/core/ErrorUtils.js +10 -10
  131. package/Libraries/vendor/emitter/EventEmitter.js +6 -6
  132. package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +5 -0
  133. package/Microsoft.ReactNative/Fabric/AbiViewProps.h +1 -0
  134. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +25 -5
  135. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +2 -1
  136. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +9 -3
  137. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +2 -3
  138. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +2 -2
  139. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +2 -0
  140. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +6 -0
  141. package/Microsoft.ReactNative/ViewProps.idl +9 -0
  142. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +12 -2
  143. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  144. package/ReactCommon/ReactCommon.vcxproj +7 -1
  145. package/ReactCommon/ReactCommon.vcxproj.filters +0 -3
  146. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +5 -5
  147. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +0 -1
  148. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSIExecutor.cpp +2 -43
  149. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +12 -2
  150. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/attributedstring/TextAttributes.cpp +291 -0
  151. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +0 -1
  152. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +1 -3
  153. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/propsConversions.h +199 -0
  154. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +6 -0
  155. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +17 -10
  156. package/Scripts/creaternwapp.cmd +8 -1
  157. package/Scripts/creaternwlib.cmd +21 -2
  158. package/Shared/DevSettings.h +0 -3
  159. package/Shared/Modules/WebSocketModule.cpp +0 -1
  160. package/Shared/Modules/WebSocketModule.h +62 -3
  161. package/Shared/OInstance.cpp +5 -0
  162. package/Shared/Shared.vcxitems +4 -6
  163. package/Shared/Shared.vcxitems.filters +218 -709
  164. package/codegen/NativeAccessibilityManagerSpec.g.h +2 -0
  165. package/codegen/NativeAnimatedModuleSpec.g.h +21 -15
  166. package/codegen/NativeDevLoadingViewSpec.g.h +3 -3
  167. package/codegen/NativeIntentAndroidSpec.g.h +16 -3
  168. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +209 -191
  169. package/codegen/react/components/rnwcore/EventEmitters.h +1 -0
  170. package/codegen/react/components/rnwcore/Props.h +14 -0
  171. package/codegen/rnwcoreJSI.h +246 -211
  172. package/index.js +3 -0
  173. package/index.windows.js +3 -0
  174. package/jest/mock.js +2 -2
  175. package/jest/mockComponent.js +1 -1
  176. package/jest/setup.js +1 -1
  177. package/package.json +22 -21
  178. package/src/private/animated/NativeAnimatedHelper.js +130 -125
  179. package/src/private/animated/NativeAnimatedValidation.js +7 -4
  180. package/src/private/animated/createAnimatedPropsHook.js +13 -5
  181. package/src/private/animated/createAnimatedPropsMemoHook.js +10 -10
  182. package/src/private/components/virtualview/VirtualView.js +16 -9
  183. package/src/private/components/virtualview/logger/VirtualViewLogger.js +21 -0
  184. package/src/private/components/virtualview/logger/VirtualViewLoggerTypes.js +24 -0
  185. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  186. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +6 -25
  187. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -27
  188. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +3 -2
  189. package/src/private/featureflags/ReactNativeFeatureFlags.js +63 -42
  190. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
  191. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +12 -9
  192. package/src/private/renderer/errorhandling/ErrorHandlers.js +7 -4
  193. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
  194. package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +4 -0
  195. package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -0
  196. package/src/private/webapis/dom/events/CustomEvent.js +3 -3
  197. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  198. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  199. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +29 -29
  200. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +1 -1
  201. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  202. package/src/private/webapis/geometry/DOMRectReadOnly.js +1 -1
  203. package/src/private/webapis/html/events/MessageEvent.js +3 -3
  204. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +3 -3
  205. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +53 -5
  206. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +2 -2
  207. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +4 -4
  208. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +1 -1
  209. package/src/private/webapis/mutationobserver/MutationObserver.js +1 -1
  210. package/src/private/webapis/mutationobserver/MutationRecord.js +1 -1
  211. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +4 -4
  212. package/src/private/webapis/performance/Performance.js +1 -1
  213. package/src/private/webapis/performance/UserTiming.js +1 -1
  214. package/src/private/webapis/performance/specs/NativePerformance.js +3 -3
  215. package/src/private/webapis/structuredClone/structuredClone.js +3 -3
  216. package/src/types/globals.d.ts +30 -1
  217. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/image/conversions.h +0 -178
  218. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/imagemanager/primitives.h +0 -183
  219. package/Shared/Modules/WebSocketTurboModule.h +0 -71
  220. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +0 -628
  221. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +0 -66
@@ -412,6 +412,21 @@ export function observe(observer: Observer): Subscription {
412
412
  };
413
413
  }
414
414
 
415
+ /**
416
+ * Same as observe(), but doesn't call notify observer sync at the time of subscription.
417
+ * Expected to be used only in LogBoxStateSubscription.
418
+ */
419
+ function observeNext(observer: Observer): Subscription {
420
+ const subscription = {observer};
421
+ observers.add(subscription);
422
+
423
+ return {
424
+ unsubscribe(): void {
425
+ observers.delete(subscription);
426
+ },
427
+ };
428
+ }
429
+
415
430
  type LogBoxStateSubscriptionProps = $ReadOnly<{}>;
416
431
  type LogBoxStateSubscriptionState = $ReadOnly<{
417
432
  logs: LogBoxLogs,
@@ -447,12 +462,11 @@ export function withSubscription(
447
462
  }
448
463
 
449
464
  _subscription: ?Subscription;
465
+ _updateStateOnMountTimeoutId: ?TimeoutID;
450
466
 
451
467
  state: LogBoxStateSubscriptionState = {
452
- logs: new Set(),
453
- isDisabled: false,
454
468
  hasError: false,
455
- selectedLogIndex: -1,
469
+ ...getNextState(),
456
470
  };
457
471
 
458
472
  render(): React.Node {
@@ -472,12 +486,25 @@ export function withSubscription(
472
486
  }
473
487
 
474
488
  componentDidMount(): void {
475
- this._subscription = observe(data => {
489
+ this._subscription = observeNext(data => {
476
490
  this.setState(data);
477
491
  });
492
+
493
+ /**
494
+ * This should cover the case when the state changes in between the first render and mount effect.
495
+ * We defer the state update to next task to avoid cascading update.
496
+ */
497
+ this._updateStateOnMountTimeoutId = setTimeout(() => {
498
+ this._updateStateOnMountTimeoutId = null;
499
+ this.setState(getNextState());
500
+ }, 0);
478
501
  }
479
502
 
480
503
  componentWillUnmount(): void {
504
+ if (this._updateStateOnMountTimeoutId != null) {
505
+ clearTimeout(this._updateStateOnMountTimeoutId);
506
+ }
507
+
481
508
  if (this._subscription != null) {
482
509
  this._subscription.unsubscribe();
483
510
  }
@@ -65,7 +65,7 @@ export type LogBoxLogData = $ReadOnly<{
65
65
  componentStack: ComponentStack,
66
66
  codeFrame?: ?CodeFrame,
67
67
  isComponentError: boolean,
68
- extraData?: mixed,
68
+ extraData?: unknown,
69
69
  onNotificationPress?: ?() => void,
70
70
  }>;
71
71
 
@@ -81,7 +81,7 @@ class LogBoxLog {
81
81
  codeFrame: ?CodeFrame;
82
82
  componentCodeFrame: ?CodeFrame;
83
83
  isComponentError: boolean;
84
- extraData: mixed | void;
84
+ extraData: unknown | void;
85
85
  symbolicated:
86
86
  | $ReadOnly<{error: null, stack: null, status: 'NONE'}>
87
87
  | $ReadOnly<{error: null, stack: null, status: 'PENDING'}>
@@ -53,7 +53,7 @@ export function deleteStack(stack: Stack): void {
53
53
 
54
54
  export function symbolicate(
55
55
  stack: Stack,
56
- extraData?: mixed,
56
+ extraData?: unknown,
57
57
  ): Promise<SymbolicatedStackTrace> {
58
58
  let promise = cache.get(stack);
59
59
  if (promise == null) {
@@ -93,7 +93,7 @@ const RE_BABEL_CODE_FRAME_MARKER_PATTERN = new RegExp(
93
93
  'm',
94
94
  );
95
95
 
96
- export function hasComponentStack(args: $ReadOnlyArray<mixed>): boolean {
96
+ export function hasComponentStack(args: $ReadOnlyArray<unknown>): boolean {
97
97
  for (const arg of args) {
98
98
  if (typeof arg === 'string' && isComponentStack(arg)) {
99
99
  return true;
@@ -136,7 +136,7 @@ export type ComponentStackType = 'legacy' | 'stack';
136
136
 
137
137
  const SUBSTITUTION = UTFSequence.BOM + '%s';
138
138
 
139
- export function parseInterpolation(args: $ReadOnlyArray<mixed>): $ReadOnly<{
139
+ export function parseInterpolation(args: $ReadOnlyArray<unknown>): $ReadOnly<{
140
140
  category: Category,
141
141
  message: Message,
142
142
  }> {
@@ -444,7 +444,7 @@ export function parseLogBoxException(
444
444
  };
445
445
  }
446
446
 
447
- export function withoutANSIColorStyles(message: mixed): mixed {
447
+ export function withoutANSIColorStyles(message: unknown): unknown {
448
448
  if (typeof message !== 'string') {
449
449
  return message;
450
450
  }
@@ -456,14 +456,14 @@ export function withoutANSIColorStyles(message: mixed): mixed {
456
456
  );
457
457
  }
458
458
 
459
- export function parseLogBoxLog(args: $ReadOnlyArray<mixed>): {
459
+ export function parseLogBoxLog(args: $ReadOnlyArray<unknown>): {
460
460
  componentStack: ComponentStack,
461
461
  componentStackType: ComponentStackType,
462
462
  category: Category,
463
463
  message: Message,
464
464
  } {
465
465
  const message = withoutANSIColorStyles(args[0]);
466
- let argsWithoutComponentStack: Array<mixed> = [];
466
+ let argsWithoutComponentStack: Array<unknown> = [];
467
467
  let componentStack: ComponentStack = [];
468
468
  let componentStackType = 'legacy';
469
469
 
@@ -27,7 +27,7 @@ interface ILogBox {
27
27
  ignoreAllLogs(value?: boolean): void;
28
28
  clearAllLogs(): void;
29
29
  addLog(log: LogData): void;
30
- addConsoleLog(level: 'warn' | 'error', ...args: Array<mixed>): void;
30
+ addConsoleLog(level: 'warn' | 'error', ...args: Array<unknown>): void;
31
31
  addException(error: ExtendedExceptionData): void;
32
32
  }
33
33
 
@@ -42,7 +42,7 @@ if (__DEV__) {
42
42
  } = require('./Data/parseLogBoxLog');
43
43
 
44
44
  let originalConsoleWarn;
45
- let consoleWarnImpl: (...args: Array<mixed>) => void;
45
+ let consoleWarnImpl: (...args: Array<unknown>) => void;
46
46
 
47
47
  let isLogBoxInstalled: boolean = false;
48
48
 
@@ -56,7 +56,7 @@ if (__DEV__) {
56
56
 
57
57
  if (global.RN$registerExceptionListener != null) {
58
58
  global.RN$registerExceptionListener(
59
- (error: ExtendedExceptionData & {preventDefault: () => mixed}) => {
59
+ (error: ExtendedExceptionData & {preventDefault: () => unknown}) => {
60
60
  if (global.RN$isRuntimeReady?.() || !error.isFatal) {
61
61
  error.preventDefault();
62
62
  addException(error);
@@ -140,7 +140,7 @@ if (__DEV__) {
140
140
  }
141
141
  },
142
142
 
143
- addConsoleLog(level: 'warn' | 'error', ...args: Array<mixed>) {
143
+ addConsoleLog(level: 'warn' | 'error', ...args: Array<unknown>) {
144
144
  if (isLogBoxInstalled) {
145
145
  let filteredLevel: 'warn' | 'error' | 'fatal' = level;
146
146
  try {
@@ -207,13 +207,13 @@ if (__DEV__) {
207
207
  }
208
208
  }
209
209
 
210
- const isRCTLogAdviceWarning = (...args: Array<mixed>) => {
210
+ const isRCTLogAdviceWarning = (...args: Array<unknown>) => {
211
211
  // RCTLogAdvice is a native logging function designed to show users
212
212
  // a message in the console, but not show it to them in Logbox.
213
213
  return typeof args[0] === 'string' && args[0].startsWith('(ADVICE)');
214
214
  };
215
215
 
216
- const registerWarning = (...args: Array<mixed>): void => {
216
+ const registerWarning = (...args: Array<unknown>): void => {
217
217
  // Let warnings within LogBox itself fall through.
218
218
  if (LogBoxData.isLogBoxErrorMessage(String(args[0]))) {
219
219
  return;
@@ -271,7 +271,7 @@ if (__DEV__) {
271
271
  // Do nothing.
272
272
  },
273
273
 
274
- addConsoleLog(level: 'warn' | 'error', ...args: Array<mixed>): void {
274
+ addConsoleLog(level: 'warn' | 'error', ...args: Array<unknown>): void {
275
275
  // Do nothing.
276
276
  },
277
277
 
@@ -122,6 +122,18 @@ const bubblingEventTypes = {
122
122
  bubbled: 'onFocus',
123
123
  },
124
124
  },
125
+ topKeyDown: {
126
+ phasedRegistrationNames: {
127
+ captured: 'onKeyDownCapture',
128
+ bubbled: 'onKeyDown',
129
+ },
130
+ },
131
+ topKeyUp: {
132
+ phasedRegistrationNames: {
133
+ captured: 'onKeyUpCapture',
134
+ bubbled: 'onKeyUp',
135
+ },
136
+ },
125
137
  };
126
138
 
127
139
  const directEventTypes = {
@@ -15,13 +15,13 @@ export type Difference =
15
15
  | {
16
16
  type: 'missing',
17
17
  path: Array<string>,
18
- nativeValue: mixed,
18
+ nativeValue: unknown,
19
19
  }
20
20
  | {
21
21
  type: 'unequal',
22
22
  path: Array<string>,
23
- nativeValue: mixed,
24
- staticValue: mixed,
23
+ nativeValue: unknown,
24
+ staticValue: unknown,
25
25
  };
26
26
 
27
27
  export type ValidationResult = ValidResult | InvalidResult;
@@ -143,6 +143,6 @@ function accumulateDifferences(
143
143
  }
144
144
  }
145
145
 
146
- function ifObject(value: mixed): ?{...} {
146
+ function ifObject(value: unknown): ?{...} {
147
147
  return typeof value === 'object' && !Array.isArray(value) ? value : null;
148
148
  }
@@ -43,7 +43,7 @@ export function ConditionallyIgnoredEventHandlers<
43
43
  return undefined;
44
44
  }
45
45
 
46
- export function isIgnored(value: mixed): boolean {
46
+ export function isIgnored(value: unknown): boolean {
47
47
  if (typeof value === 'object' && value != null) {
48
48
  return ignoredViewConfigProps.has(value);
49
49
  }
@@ -37,7 +37,7 @@ export function ConditionallyIgnoredEventHandlers<
37
37
  return value;
38
38
  }
39
39
 
40
- export function isIgnored(value: mixed): boolean {
40
+ export function isIgnored(value: unknown): boolean {
41
41
  if (typeof value === 'object' && value != null) {
42
42
  return ignoredViewConfigProps.has(value);
43
43
  }
@@ -50,8 +50,8 @@ const emitter = new NativeEventEmitter<$FlowFixMe>(
50
50
  const RCTNetworking = {
51
51
  addListener<K: $Keys<RCTNetworkingEventDefinitions>>(
52
52
  eventType: K,
53
- listener: (...RCTNetworkingEventDefinitions[K]) => mixed,
54
- context?: mixed,
53
+ listener: (...RCTNetworkingEventDefinitions[K]) => unknown,
54
+ context?: unknown,
55
55
  ): EventSubscription {
56
56
  // $FlowFixMe[incompatible-type]
57
57
  return emitter.addListener(eventType, listener, context);
@@ -66,7 +66,7 @@ const RCTNetworking = {
66
66
  responseType: NativeResponseType,
67
67
  incrementalUpdates: boolean,
68
68
  timeout: number,
69
- callback: (requestId: number) => mixed,
69
+ callback: (requestId: number) => unknown,
70
70
  withCredentials: boolean,
71
71
  ) {
72
72
  const body = convertRequestBody(data);
@@ -20,8 +20,8 @@ import {type NativeResponseType} from './XMLHttpRequest';
20
20
  const RCTNetworking = {
21
21
  addListener<K: $Keys<RCTNetworkingEventDefinitions>>(
22
22
  eventType: K,
23
- listener: (...RCTNetworkingEventDefinitions[K]) => mixed,
24
- context?: mixed,
23
+ listener: (...RCTNetworkingEventDefinitions[K]) => unknown,
24
+ context?: unknown,
25
25
  ): EventSubscription {
26
26
  // $FlowFixMe[incompatible-type]
27
27
  return RCTDeviceEventEmitter.addListener(eventType, listener, context);
@@ -19,8 +19,8 @@ declare const RCTNetworking: interface {
19
19
  addListener<K: $Keys<RCTNetworkingEventDefinitions>>(
20
20
  eventType: K,
21
21
  // $FlowFixMe[invalid-computed-prop]
22
- listener: (...RCTNetworkingEventDefinitions[K]) => mixed,
23
- context?: mixed,
22
+ listener: (...RCTNetworkingEventDefinitions[K]) => unknown,
23
+ context?: unknown,
24
24
  ): EventSubscription,
25
25
 
26
26
  sendRequest(
@@ -20,8 +20,8 @@ import {type NativeResponseType} from './XMLHttpRequest';
20
20
  const RCTNetworking = {
21
21
  addListener<K: $Keys<RCTNetworkingEventDefinitions>>(
22
22
  eventType: K,
23
- listener: (...RCTNetworkingEventDefinitions[K]) => mixed,
24
- context?: mixed,
23
+ listener: (...RCTNetworkingEventDefinitions[K]) => unknown,
24
+ context?: unknown,
25
25
  ): EventSubscription {
26
26
  // $FlowFixMe[incompatible-type]
27
27
  return RCTDeviceEventEmitter.addListener(eventType, listener, context);
@@ -88,47 +88,47 @@ export type PressabilityConfig = $ReadOnly<{
88
88
  /**
89
89
  * Called after the element loses focus.
90
90
  */
91
- onBlur?: ?(event: BlurEvent) => mixed,
91
+ onBlur?: ?(event: BlurEvent) => unknown,
92
92
 
93
93
  /**
94
94
  * Called after the element is focused.
95
95
  */
96
- onFocus?: ?(event: FocusEvent) => mixed,
96
+ onFocus?: ?(event: FocusEvent) => unknown,
97
97
 
98
98
  /**
99
99
  * Called when the hover is activated to provide visual feedback.
100
100
  */
101
- onHoverIn?: ?(event: MouseEvent) => mixed,
101
+ onHoverIn?: ?(event: MouseEvent) => unknown,
102
102
 
103
103
  /**
104
104
  * Called when the hover is deactivated to undo visual feedback.
105
105
  */
106
- onHoverOut?: ?(event: MouseEvent) => mixed,
106
+ onHoverOut?: ?(event: MouseEvent) => unknown,
107
107
 
108
108
  /**
109
109
  * Called when a long press gesture has been triggered.
110
110
  */
111
- onLongPress?: ?(event: GestureResponderEvent) => mixed,
111
+ onLongPress?: ?(event: GestureResponderEvent) => unknown,
112
112
 
113
113
  /**
114
114
  * Called when a press gesture has been triggered.
115
115
  */
116
- onPress?: ?(event: GestureResponderEvent) => mixed,
116
+ onPress?: ?(event: GestureResponderEvent) => unknown,
117
117
 
118
118
  /**
119
119
  * Called when the press is activated to provide visual feedback.
120
120
  */
121
- onPressIn?: ?(event: GestureResponderEvent) => mixed,
121
+ onPressIn?: ?(event: GestureResponderEvent) => unknown,
122
122
 
123
123
  /**
124
124
  * Called when the press location moves. (This should rarely be used.)
125
125
  */
126
- onPressMove?: ?(event: GestureResponderEvent) => mixed,
126
+ onPressMove?: ?(event: GestureResponderEvent) => unknown,
127
127
 
128
128
  /**
129
129
  * Called when the press is deactivated to undo visual feedback.
130
130
  */
131
- onPressOut?: ?(event: GestureResponderEvent) => mixed,
131
+ onPressOut?: ?(event: GestureResponderEvent) => unknown,
132
132
 
133
133
  /**
134
134
  * Whether to prevent any other native components from becoming responder
@@ -14,7 +14,8 @@ import type {
14
14
  FocusEvent,
15
15
  GestureResponderEvent,
16
16
  MouseEvent,
17
- KeyEvent, // [Windows]
17
+ KeyDownEvent, // [Windows]
18
+ KeyUpEvent, // [Windows]
18
19
  } from '../Types/CoreEventTypes';
19
20
 
20
21
  import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
@@ -89,57 +90,57 @@ export type PressabilityConfig = $ReadOnly<{
89
90
  /**
90
91
  * Called after the element loses focus.
91
92
  */
92
- onBlur?: ?(event: BlurEvent) => mixed,
93
+ onBlur?: ?(event: BlurEvent) => unknown,
93
94
 
94
95
  /**
95
96
  * Called after the element is focused.
96
97
  */
97
- onFocus?: ?(event: FocusEvent) => mixed,
98
+ onFocus?: ?(event: FocusEvent) => unknown,
98
99
 
99
100
  /*
100
101
  * Called after a key down event is detected.
101
102
  */
102
- onKeyDown?: ?(event: KeyEvent) => mixed,
103
+ onKeyDown?: ?(event: KeyDownEvent) => mixed,
103
104
 
104
105
  /*
105
106
  * Called after a key up event is detected.
106
107
  */
107
- onKeyUp?: ?(event: KeyEvent) => mixed,
108
+ onKeyUp?: ?(event: KeyUpEvent) => mixed,
108
109
 
109
110
  /**
110
111
  * Called when the hover is activated to provide visual feedback.
111
112
  */
112
- onHoverIn?: ?(event: MouseEvent) => mixed,
113
+ onHoverIn?: ?(event: MouseEvent) => unknown,
113
114
 
114
115
  /**
115
116
  * Called when the hover is deactivated to undo visual feedback.
116
117
  */
117
- onHoverOut?: ?(event: MouseEvent) => mixed,
118
+ onHoverOut?: ?(event: MouseEvent) => unknown,
118
119
 
119
120
  /**
120
121
  * Called when a long press gesture has been triggered.
121
122
  */
122
- onLongPress?: ?(event: GestureResponderEvent) => mixed,
123
+ onLongPress?: ?(event: GestureResponderEvent) => unknown,
123
124
 
124
125
  /**
125
126
  * Called when a press gesture has been triggered.
126
127
  */
127
- onPress?: ?(event: GestureResponderEvent) => mixed,
128
+ onPress?: ?(event: GestureResponderEvent) => unknown,
128
129
 
129
130
  /**
130
131
  * Called when the press is activated to provide visual feedback.
131
132
  */
132
- onPressIn?: ?(event: GestureResponderEvent) => mixed,
133
+ onPressIn?: ?(event: GestureResponderEvent) => unknown,
133
134
 
134
135
  /**
135
136
  * Called when the press location moves. (This should rarely be used.)
136
137
  */
137
- onPressMove?: ?(event: GestureResponderEvent) => mixed,
138
+ onPressMove?: ?(event: GestureResponderEvent) => unknown,
138
139
 
139
140
  /**
140
141
  * Called when the press is deactivated to undo visual feedback.
141
142
  */
142
- onPressOut?: ?(event: GestureResponderEvent) => mixed,
143
+ onPressOut?: ?(event: GestureResponderEvent) => unknown,
143
144
 
144
145
  /**
145
146
  * Whether to prevent any other native components from becoming responder
@@ -179,8 +180,8 @@ export type EventHandlers = $ReadOnly<{
179
180
  onResponderTerminationRequest: () => boolean,
180
181
  onStartShouldSetResponder: () => boolean,
181
182
  // [Windows
182
- onKeyUp: (event: KeyEvent) => void,
183
- onKeyDown: (event: KeyEvent) => void,
183
+ onKeyUp: (event: KeyUpEvent) => void,
184
+ onKeyDown: (event: KeyDownEvent) => void,
184
185
  // Windows]
185
186
  }>;
186
187
 
@@ -591,7 +592,7 @@ export default class Pressability {
591
592
 
592
593
  // [Windows
593
594
  const keyboardEventHandlers = {
594
- onKeyUp: (event: KeyEvent): void => {
595
+ onKeyUp: (event: KeyUpEvent): void => {
595
596
  const {onKeyUp} = this._config;
596
597
  onKeyUp && onKeyUp(event);
597
598
 
@@ -611,7 +612,7 @@ export default class Pressability {
611
612
  // Native windows app clears the key pressed state when another key press interrupts the current
612
613
  this._isKeyDown = false;
613
614
  },
614
- onKeyDown: (event: KeyEvent): void => {
615
+ onKeyDown: (event: KeyDownEvent): void => {
615
616
  const {onKeyDown, disabled} = this._config;
616
617
  onKeyDown && onKeyDown(event);
617
618
 
@@ -29,7 +29,7 @@ export type AppConfig = {
29
29
  ...
30
30
  };
31
31
  export type AppParameters = {
32
- initialProps: $ReadOnly<{[string]: mixed, ...}>,
32
+ initialProps: $ReadOnly<{[string]: unknown, ...}>,
33
33
  rootTag: RootTag,
34
34
  fabric?: boolean,
35
35
  };
@@ -265,7 +265,7 @@ const UIManagerJS: UIManagerJSInterface & {[string]: any} = {
265
265
  ...UIManagerJSDeprecatedPlatformAPIs,
266
266
  ...UIManagerJSPlatformAPIs,
267
267
  ...UIManagerJSUnusedInNewArchAPIs,
268
- getViewManagerConfig: (viewManagerName: string): mixed => {
268
+ getViewManagerConfig: (viewManagerName: string): unknown => {
269
269
  if (getUIManagerConstants) {
270
270
  const constants = getUIManagerConstantsCached();
271
271
  if (
@@ -71,7 +71,7 @@ export interface Spec {
71
71
  +dispatchCommand: (
72
72
  node: Node,
73
73
  commandName: string,
74
- args: Array<mixed>,
74
+ args: Array<unknown>,
75
75
  ) => void;
76
76
  +findNodeAtPoint: (
77
77
  node: Node,
@@ -121,7 +121,7 @@ function lazifyViewManagerConfig(viewName: string) {
121
121
  defineLazyObjectProperty(viewConfig, 'Constants', {
122
122
  get: () => {
123
123
  const viewManager = NativeModules[viewConfig.Manager];
124
- const constants: {[string]: mixed} = {};
124
+ const constants: {[string]: unknown} = {};
125
125
  viewManager &&
126
126
  Object.keys(viewManager).forEach(key => {
127
127
  const value = viewManager[key];
@@ -140,7 +140,7 @@ function lazifyViewManagerConfig(viewName: string) {
140
140
  defineLazyObjectProperty(viewConfig, 'Constants', {
141
141
  get: () => {
142
142
  const viewManager = NativeModules[viewConfig.Manager];
143
- const constants: {[string]: mixed} = {};
143
+ const constants: {[string]: unknown} = {};
144
144
  viewManager &&
145
145
  Object.keys(viewManager).forEach(key => {
146
146
  const value = viewManager[key];
@@ -27,7 +27,7 @@ import ReactNativeElement from '../../../src/private/webapis/dom/nodes/ReactNati
27
27
  import ReadOnlyText from '../../../src/private/webapis/dom/nodes/ReadOnlyText';
28
28
  import * as RendererProxy from '../../ReactNative/RendererProxy';
29
29
 
30
- export opaque type PublicRootInstance = mixed;
30
+ export opaque type PublicRootInstance = unknown;
31
31
 
32
32
  export function createPublicRootInstance(rootTag: RootTag): PublicRootInstance {
33
33
  // $FlowExpectedError[incompatible-return]
@@ -16,7 +16,7 @@
16
16
  * In that case `nativeFabricUIManager` isn't defined and `ReactFabric` throws.
17
17
  */
18
18
 
19
- export function isPublicInstance(maybeInstance: mixed): boolean {
19
+ export function isPublicInstance(maybeInstance: unknown): boolean {
20
20
  return (
21
21
  maybeInstance != null &&
22
22
  // TODO: implement a better check when the instance is defined in the React Native repository.
@@ -26,7 +26,7 @@ export function isPublicInstance(maybeInstance: mixed): boolean {
26
26
  );
27
27
  }
28
28
 
29
- function isLegacyFabricInstance(maybeInstance: mixed): boolean {
29
+ function isLegacyFabricInstance(maybeInstance: unknown): boolean {
30
30
  /* eslint-disable dot-notation */
31
31
  return (
32
32
  maybeInstance != null &&
@@ -34,7 +34,7 @@ const deepDifferOptions = {
34
34
  unsafelyIgnoreFunctions: true,
35
35
  };
36
36
 
37
- function defaultDiffer(prevProp: mixed, nextProp: mixed): boolean {
37
+ function defaultDiffer(prevProp: unknown, nextProp: unknown): boolean {
38
38
  if (typeof nextProp !== 'object' || nextProp === null) {
39
39
  // Scalars have already been checked for equality
40
40
  return true;
@@ -114,7 +114,7 @@ let cachedPaperDispatchCommand;
114
114
  export function dispatchCommand(
115
115
  handle: HostInstance,
116
116
  command: string,
117
- args: Array<mixed>,
117
+ args: Array<unknown>,
118
118
  ): void {
119
119
  if (global.RN$Bridgeless === true) {
120
120
  // Note: this function has the same implementation in the legacy and new renderer.
@@ -69,7 +69,7 @@ function getNativeComponentAttributes(uiViewClassName: string): any {
69
69
  }
70
70
  }
71
71
 
72
- const validAttributes: {[string]: mixed} = {};
72
+ const validAttributes: {[string]: unknown} = {};
73
73
 
74
74
  for (const key in nativeProps) {
75
75
  const typeName = nativeProps[key];
@@ -39,7 +39,6 @@ import typeof Platform from '../Utilities/Platform';
39
39
  // Expose these types to the React renderer
40
40
  export type {
41
41
  HostInstance as PublicInstance,
42
-
43
42
  // These types are only necessary for Paper
44
43
  NativeMethods as LegacyPublicInstance,
45
44
  MeasureOnSuccessCallback,
@@ -79,7 +78,7 @@ module.exports = {
79
78
  return require('../Utilities/differ/deepDiffer').default;
80
79
  },
81
80
  get deepFreezeAndThrowOnMutationInDev(): deepFreezeAndThrowOnMutationInDev<
82
- {...} | Array<mixed>,
81
+ {...} | Array<unknown>,
83
82
  > {
84
83
  return require('../Utilities/deepFreezeAndThrowOnMutationInDev').default;
85
84
  },
@@ -7,7 +7,7 @@
7
7
  * @noflow
8
8
  * @nolint
9
9
  * @preventMunge
10
- * @generated SignedSource<<d53d779c0308b393f00f3bad2e7e86d4>>
10
+ * @generated SignedSource<<e7f6759bcc8955193867c6ab42bd07ad>>
11
11
  *
12
12
  * This file was sync'd from the facebook/react repository.
13
13
  */
@@ -18901,10 +18901,10 @@ __DEV__ &&
18901
18901
  (function () {
18902
18902
  var internals = {
18903
18903
  bundleType: 1,
18904
- version: "19.2.0",
18904
+ version: "19.2.3",
18905
18905
  rendererPackageName: "react-native-renderer",
18906
18906
  currentDispatcherRef: ReactSharedInternals,
18907
- reconcilerVersion: "19.2.0"
18907
+ reconcilerVersion: "19.2.3"
18908
18908
  };
18909
18909
  null !== extraDevToolsConfig &&
18910
18910
  (internals.rendererConfig = extraDevToolsConfig);
@@ -7,7 +7,7 @@
7
7
  * @noflow
8
8
  * @nolint
9
9
  * @preventMunge
10
- * @generated SignedSource<<e8da88ae248e2c108d8595c48ad070ca>>
10
+ * @generated SignedSource<<8d29d23a1c540d7502dd188e691eb725>>
11
11
  *
12
12
  * This file was sync'd from the facebook/react repository.
13
13
  */
@@ -10495,10 +10495,10 @@ batchedUpdatesImpl = function (fn, a) {
10495
10495
  var roots = new Map(),
10496
10496
  internals$jscomp$inline_1245 = {
10497
10497
  bundleType: 0,
10498
- version: "19.2.0",
10498
+ version: "19.2.3",
10499
10499
  rendererPackageName: "react-native-renderer",
10500
10500
  currentDispatcherRef: ReactSharedInternals,
10501
- reconcilerVersion: "19.2.0"
10501
+ reconcilerVersion: "19.2.3"
10502
10502
  };
10503
10503
  null !== extraDevToolsConfig &&
10504
10504
  (internals$jscomp$inline_1245.rendererConfig = extraDevToolsConfig);