@office-iss/react-native-win32 0.0.0-canary.298 → 0.0.0-canary.299

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 (220) hide show
  1. package/.flowconfig +5 -3
  2. package/CHANGELOG.json +28 -1
  3. package/CHANGELOG.md +16 -6
  4. package/IntegrationTests/IntegrationTestsApp.js +1 -0
  5. package/IntegrationTests/LoggingTestModule.js +16 -20
  6. package/IntegrationTests/TimersTest.js +1 -0
  7. package/IntegrationTests/WebSocketTest.js +1 -0
  8. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  9. package/Libraries/Alert/Alert.js +2 -2
  10. package/Libraries/Alert/NativeAlertManager.js +1 -0
  11. package/Libraries/Alert/RCTAlertManager.android.js +19 -13
  12. package/Libraries/Alert/RCTAlertManager.ios.js +9 -11
  13. package/Libraries/Alert/RCTAlertManager.js +1 -3
  14. package/Libraries/Alert/RCTAlertManager.js.flow +4 -6
  15. package/Libraries/Animated/AnimatedEvent.js +4 -3
  16. package/Libraries/Animated/AnimatedExports.js.flow +5 -0
  17. package/Libraries/Animated/AnimatedImplementation.js +44 -44
  18. package/Libraries/Animated/AnimatedMock.js +2 -2
  19. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  20. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  21. package/Libraries/Animated/animations/Animation.js +6 -1
  22. package/Libraries/Animated/components/AnimatedScrollView.js +6 -5
  23. package/Libraries/Animated/components/AnimatedText.js +2 -5
  24. package/Libraries/Animated/components/AnimatedView.js +2 -1
  25. package/Libraries/Animated/createAnimatedComponent.js +2 -4
  26. package/Libraries/Animated/nodes/AnimatedProps.js +2 -7
  27. package/Libraries/AppState/NativeAppState.js +1 -0
  28. package/Libraries/Blob/NativeBlobModule.js +1 -0
  29. package/Libraries/Blob/NativeFileReaderModule.js +1 -0
  30. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -2
  31. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +1 -2
  32. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +1 -2
  33. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +1 -2
  34. package/Libraries/Components/Button.js +7 -4
  35. package/Libraries/Components/Button.win32.js +7 -4
  36. package/Libraries/Components/Clipboard/NativeClipboard.js +1 -2
  37. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +1 -2
  38. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -2
  39. package/Libraries/Components/Pressable/Pressable.js +8 -2
  40. package/Libraries/Components/Pressable/Pressable.win32.js +8 -8
  41. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +1 -2
  42. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +1 -2
  43. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +1 -0
  44. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -2
  45. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +9 -0
  46. package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -2
  47. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +3 -2
  48. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +1 -2
  49. package/Libraries/Components/ScrollView/ScrollView.d.ts +10 -1
  50. package/Libraries/Components/ScrollView/ScrollView.js +3 -1
  51. package/Libraries/Components/Sound/NativeSoundManager.js +1 -2
  52. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -2
  53. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -2
  54. package/Libraries/Components/StatusBar/StatusBar.d.ts +4 -0
  55. package/Libraries/Components/StatusBar/StatusBar.js +5 -0
  56. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +1 -2
  57. package/Libraries/Components/Switch/Switch.js +2 -1
  58. package/Libraries/Components/Switch/SwitchNativeComponent.js +1 -2
  59. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -7
  60. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -2
  61. package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
  62. package/Libraries/Components/TextInput/TextInput.js +2 -4
  63. package/Libraries/Components/TextInput/TextInput.win32.js +28 -3
  64. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -2
  65. package/Libraries/Components/Touchable/Touchable.js +7 -3
  66. package/Libraries/Components/Touchable/Touchable.win32.js +7 -3
  67. package/Libraries/Components/Touchable/TouchableHighlight.js +5 -1
  68. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +3 -2
  69. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +3 -2
  70. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +1 -0
  71. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -2
  72. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -2
  73. package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -15
  74. package/Libraries/Components/View/View.js +17 -18
  75. package/Libraries/Components/View/View.win32.js +16 -2
  76. package/Libraries/Components/View/ViewAccessibility.js +0 -7
  77. package/Libraries/Components/View/ViewAccessibility.win32.js +0 -7
  78. package/Libraries/Components/View/ViewPropTypes.d.ts +4 -0
  79. package/Libraries/Components/View/ViewPropTypes.js +8 -0
  80. package/Libraries/Components/View/ViewPropTypes.win32.js +8 -0
  81. package/Libraries/Core/ExceptionsManager.js +28 -15
  82. package/Libraries/Core/NativeExceptionsManager.js +1 -0
  83. package/Libraries/Core/ReactNativeVersion.js +1 -1
  84. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
  85. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  86. package/Libraries/Core/checkNativeVersion.js +1 -0
  87. package/Libraries/Core/setUpReactDevTools.js +21 -4
  88. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +1 -0
  89. package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
  90. package/Libraries/Image/Image.android.js +3 -3
  91. package/Libraries/Image/ImageSource.d.ts +5 -0
  92. package/Libraries/Image/ImageViewNativeComponent.js +3 -3
  93. package/Libraries/Image/NativeImageEditor.js +1 -0
  94. package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
  95. package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
  96. package/Libraries/Image/NativeImageLoaderWin32.js +1 -0
  97. package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
  98. package/Libraries/Image/NativeImageStoreIOS.js +1 -0
  99. package/Libraries/Image/RelativeImageStub.js +1 -1
  100. package/Libraries/Image/TextInlineImageNativeComponent.js +3 -3
  101. package/Libraries/Interaction/InteractionManager.js +6 -1
  102. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
  103. package/Libraries/Interaction/TaskQueue.js +14 -0
  104. package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -8
  105. package/Libraries/Linking/NativeIntentAndroid.js +1 -0
  106. package/Libraries/Linking/NativeLinkingManager.js +1 -0
  107. package/Libraries/Lists/FlatList.js +5 -6
  108. package/Libraries/Lists/SectionList.js +4 -4
  109. package/Libraries/Lists/VirtualizedList.js +3 -2
  110. package/Libraries/LogBox/Data/LogBoxData.js +7 -4
  111. package/Libraries/LogBox/LogBox.js +72 -101
  112. package/Libraries/Modal/Modal.d.ts +8 -2
  113. package/Libraries/Modal/Modal.js +19 -2
  114. package/Libraries/Modal/NativeModalManager.js +1 -0
  115. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +1 -0
  116. package/Libraries/NativeComponent/BaseViewConfig.android.js +6 -15
  117. package/Libraries/NativeComponent/BaseViewConfig.ios.js +6 -15
  118. package/Libraries/NativeComponent/BaseViewConfig.win32.js +6 -15
  119. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
  120. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
  121. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
  122. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
  123. package/Libraries/NativeModules/specs/NativeLogBox.js +1 -0
  124. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
  125. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
  126. package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
  127. package/Libraries/Network/NativeNetworkingIOS.js +1 -0
  128. package/Libraries/Network/XMLHttpRequest.js +2 -0
  129. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  130. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -2
  131. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  132. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  133. package/Libraries/ReactNative/AppRegistryImpl.js +0 -10
  134. package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
  135. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
  136. package/Libraries/ReactNative/NativeI18nManager.js +1 -0
  137. package/Libraries/ReactNative/NativeUIManager.js +1 -0
  138. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +80 -61
  139. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -1
  140. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +2 -2
  141. package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -1
  142. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -1
  143. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -1
  144. package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -12
  145. package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +3 -12
  146. package/Libraries/Settings/NativeSettingsManager.js +1 -0
  147. package/Libraries/Share/NativeShareModule.js +1 -0
  148. package/Libraries/StyleSheet/StyleSheet.js +1 -0
  149. package/Libraries/StyleSheet/processAspectRatio.js +2 -0
  150. package/Libraries/Text/Text.js +4 -6
  151. package/Libraries/Text/TextAncestor.js +3 -10
  152. package/Libraries/Text/TextAncestorContext.js +23 -0
  153. package/Libraries/Text/TextProps.js +2 -2
  154. package/Libraries/Text/TextProps.win32.js +2 -2
  155. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
  156. package/Libraries/Types/CodegenTypesNamespace.js +1 -0
  157. package/Libraries/Utilities/HMRClient.js +12 -2
  158. package/Libraries/Utilities/NativeAppearance.js +1 -0
  159. package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
  160. package/Libraries/Utilities/NativeDeviceInfo.js +1 -2
  161. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  162. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  163. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  164. package/Libraries/Utilities/Platform.android.js +1 -4
  165. package/Libraries/Utilities/Platform.ios.js +1 -4
  166. package/Libraries/Utilities/Platform.js.flow +2 -2
  167. package/Libraries/Utilities/Platform.win32.js +1 -4
  168. package/Libraries/Utilities/PlatformTypes.js +1 -1
  169. package/Libraries/Utilities/codegenNativeCommands.js +4 -2
  170. package/Libraries/Utilities/codegenNativeComponent.js +3 -3
  171. package/Libraries/Utilities/createPerformanceLogger.js +32 -0
  172. package/Libraries/Vibration/NativeVibration.js +1 -0
  173. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
  174. package/Libraries/vendor/emitter/EventEmitter.js +6 -6
  175. package/index.js +21 -0
  176. package/index.win32.js +12 -1
  177. package/jest/setup.js +1 -0
  178. package/overrides.json +25 -25
  179. package/package.json +11 -11
  180. package/src/private/animated/createAnimatedPropsHook.js +4 -1
  181. package/src/private/animated/createAnimatedPropsMemoHook.js +2 -2
  182. package/src/private/components/virtualview/VirtualView.js +145 -0
  183. package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
  184. package/src/private/featureflags/ReactNativeFeatureFlags.js +43 -23
  185. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +9 -5
  186. package/src/private/setup/setUpPerformanceObserver.js +7 -0
  187. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +7 -4
  188. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
  189. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +3 -3
  190. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +3 -3
  191. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +10 -7
  192. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +5 -4
  193. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +7 -4
  194. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +9 -6
  195. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +9 -6
  196. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +14 -5
  197. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +8 -5
  198. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +5 -5
  199. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +3 -3
  200. package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +1 -0
  201. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +9 -6
  202. package/src/private/styles/composeStyles.js +5 -12
  203. package/src/private/webapis/errors/DOMException.js +1 -1
  204. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +4 -2
  205. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +12 -7
  206. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +13 -0
  207. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +2 -1
  208. package/src/private/webapis/performance/Performance.js +164 -61
  209. package/src/private/webapis/performance/PerformanceEntry.js +20 -16
  210. package/src/private/webapis/performance/PerformanceObserver.js +31 -27
  211. package/src/private/webapis/performance/ResourceTiming.js +108 -0
  212. package/src/private/webapis/performance/UserTiming.js +60 -8
  213. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +47 -32
  214. package/src/private/webapis/performance/specs/NativePerformance.js +13 -1
  215. package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +4 -0
  216. package/Libraries/BugReporting/BugReporting.js +0 -140
  217. package/Libraries/BugReporting/NativeBugReporting.js +0 -13
  218. package/Libraries/BugReporting/dumpReactTree.js +0 -151
  219. package/Libraries/BugReporting/getReactData.js +0 -187
  220. package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +0 -20
@@ -61,7 +61,7 @@ function restoreDeletedValuesInNestedArray(
61
61
  } else if (node && removedKeyCount > 0) {
62
62
  const obj = node;
63
63
  for (const propKey in removedKeys) {
64
- // $FlowFixMe[incompatible-use] found when upgrading Flow
64
+ // $FlowFixMe[incompatible-use] removedKeys is always non-null
65
65
  if (!removedKeys[propKey]) {
66
66
  continue;
67
67
  }
@@ -133,12 +133,12 @@ function diffNestedArrayProperty(
133
133
  );
134
134
  }
135
135
  for (; i < nextArray.length; i++) {
136
- // Add all remaining properties.
137
- updatePayload = addNestedProperty(
138
- updatePayload,
139
- nextArray[i],
140
- validAttributes,
141
- );
136
+ // Add all remaining properties
137
+ const nextProp = nextArray[i];
138
+ if (!nextProp) {
139
+ continue;
140
+ }
141
+ updatePayload = addNestedProperty(updatePayload, nextProp, validAttributes);
142
142
  }
143
143
  return updatePayload;
144
144
  }
@@ -183,9 +183,7 @@ function diffNestedProperty(
183
183
  if (Array.isArray(prevProp)) {
184
184
  return diffProperties(
185
185
  updatePayload,
186
- // $FlowFixMe - We know that this is always an object when the input is.
187
186
  flattenStyle(prevProp),
188
- // $FlowFixMe - We know that this isn't an array because of above flow.
189
187
  nextProp,
190
188
  validAttributes,
191
189
  );
@@ -194,43 +192,11 @@ function diffNestedProperty(
194
192
  return diffProperties(
195
193
  updatePayload,
196
194
  prevProp,
197
- // $FlowFixMe - We know that this is always an object when the input is.
198
195
  flattenStyle(nextProp),
199
196
  validAttributes,
200
197
  );
201
198
  }
202
199
 
203
- /**
204
- * addNestedProperty takes a single set of props and valid attribute
205
- * attribute configurations. It processes each prop and adds it to the
206
- * updatePayload.
207
- */
208
- function addNestedProperty(
209
- updatePayload: null | Object,
210
- nextProp: NestedNode,
211
- validAttributes: AttributeConfiguration,
212
- ): $FlowFixMe {
213
- if (!nextProp) {
214
- return updatePayload;
215
- }
216
-
217
- if (!Array.isArray(nextProp)) {
218
- // Add each property of the leaf.
219
- return addProperties(updatePayload, nextProp, validAttributes);
220
- }
221
-
222
- for (let i = 0; i < nextProp.length; i++) {
223
- // Add all the properties of the array.
224
- updatePayload = addNestedProperty(
225
- updatePayload,
226
- nextProp[i],
227
- validAttributes,
228
- );
229
- }
230
-
231
- return updatePayload;
232
- }
233
-
234
200
  /**
235
201
  * clearNestedProperty takes a single set of props and valid attributes. It
236
202
  * adds a null sentinel to the updatePayload, for each prop key.
@@ -285,14 +251,19 @@ function diffProperties(
285
251
  prevProp = prevProps[propKey];
286
252
  nextProp = nextProps[propKey];
287
253
 
288
- // functions are converted to booleans as markers that the associated
289
- // events should be sent from native.
290
254
  if (typeof nextProp === 'function') {
291
- nextProp = (true: any);
292
- // If nextProp is not a function, then don't bother changing prevProp
293
- // since nextProp will win and go into the updatePayload regardless.
294
- if (typeof prevProp === 'function') {
295
- prevProp = (true: any);
255
+ const attributeConfigHasProcess =
256
+ typeof attributeConfig === 'object' &&
257
+ typeof attributeConfig.process === 'function';
258
+ if (!attributeConfigHasProcess) {
259
+ // functions are converted to booleans as markers that the associated
260
+ // events should be sent from native.
261
+ nextProp = (true: any);
262
+ // If nextProp is not a function, then don't bother changing prevProp
263
+ // since nextProp will win and go into the updatePayload regardless.
264
+ if (typeof prevProp === 'function') {
265
+ prevProp = (true: any);
266
+ }
296
267
  }
297
268
  }
298
269
 
@@ -442,16 +413,69 @@ function diffProperties(
442
413
  return updatePayload;
443
414
  }
444
415
 
445
- /**
446
- * addProperties adds all the valid props to the payload after being processed.
447
- */
448
- function addProperties(
449
- updatePayload: null | Object,
416
+ function addNestedProperty(
417
+ payload: null | Object,
450
418
  props: Object,
451
419
  validAttributes: AttributeConfiguration,
452
420
  ): null | Object {
453
- // TODO: Fast path
454
- return diffProperties(updatePayload, emptyObject, props, validAttributes);
421
+ // Flatten nested style props.
422
+ if (Array.isArray(props)) {
423
+ for (let i = 0; i < props.length; i++) {
424
+ payload = addNestedProperty(payload, props[i], validAttributes);
425
+ }
426
+ return payload;
427
+ }
428
+
429
+ for (const propKey in props) {
430
+ const prop = props[propKey];
431
+
432
+ const attributeConfig = ((validAttributes[
433
+ propKey
434
+ ]: any): AttributeConfiguration);
435
+
436
+ if (attributeConfig == null) {
437
+ continue;
438
+ }
439
+
440
+ let newValue;
441
+
442
+ if (prop === undefined) {
443
+ // Discard the prop if it was previously defined.
444
+ if (payload && payload[propKey] !== undefined) {
445
+ newValue = null;
446
+ } else {
447
+ continue;
448
+ }
449
+ } else if (typeof attributeConfig === 'object') {
450
+ if (typeof attributeConfig.process === 'function') {
451
+ // An atomic prop with custom processing.
452
+ newValue = attributeConfig.process(prop);
453
+ } else if (typeof attributeConfig.diff === 'function') {
454
+ // An atomic prop with custom diffing. We don't need to do diffing when adding props.
455
+ newValue = prop;
456
+ }
457
+ } else {
458
+ if (typeof prop === 'function') {
459
+ // A function prop. It represents an event handler. Pass it to native as 'true'.
460
+ newValue = true;
461
+ } else {
462
+ // An atomic prop. Doesn't need to be flattened.
463
+ newValue = prop;
464
+ }
465
+ }
466
+
467
+ if (newValue !== undefined) {
468
+ if (!payload) {
469
+ payload = ({}: {[string]: $FlowFixMe});
470
+ }
471
+ payload[propKey] = newValue;
472
+ continue;
473
+ }
474
+
475
+ payload = addNestedProperty(payload, prop, attributeConfig);
476
+ }
477
+
478
+ return payload;
455
479
  }
456
480
 
457
481
  /**
@@ -463,7 +487,6 @@ function clearProperties(
463
487
  prevProps: Object,
464
488
  validAttributes: AttributeConfiguration,
465
489
  ): null | Object {
466
- // TODO: Fast path
467
490
  return diffProperties(updatePayload, prevProps, emptyObject, validAttributes);
468
491
  }
469
492
 
@@ -471,11 +494,7 @@ export function create(
471
494
  props: Object,
472
495
  validAttributes: AttributeConfiguration,
473
496
  ): null | Object {
474
- return addProperties(
475
- null, // updatePayload
476
- props,
477
- validAttributes,
478
- );
497
+ return addNestedProperty(null, props, validAttributes);
479
498
  }
480
499
 
481
500
  export function diff(
@@ -51,7 +51,7 @@ export type {PublicRootInstance} from '../ReactNative/ReactFabricPublicInstance/
51
51
  export type PublicTextInstance = ReturnType<createPublicTextInstance>;
52
52
 
53
53
  // flowlint unsafe-getters-setters:off
54
- // eslint-disable-next-line lint/no-commonjs-exports
54
+ // eslint-disable-next-line @react-native/monorepo/no-commonjs-exports
55
55
  module.exports = {
56
56
  get BatchedBridge(): BatchedBridge {
57
57
  return require('../BatchedBridge/BatchedBridge').default;
@@ -8,7 +8,7 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import typeof {createPublicTextInstance} from '../ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance';
11
+ import typeof {createPublicTextInstance as createPublicTextInstanceT} from '../ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance';
12
12
 
13
13
  export type {
14
14
  HostInstance as PublicInstance,
@@ -21,7 +21,7 @@ export type {
21
21
  } from '../../src/private/types/HostInstance';
22
22
 
23
23
  export type {PublicRootInstance} from '../ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance';
24
- export type PublicTextInstance = ReturnType<createPublicTextInstance>;
24
+ export type PublicTextInstance = ReturnType<createPublicTextInstanceT>;
25
25
 
26
26
  export {default as BatchedBridge} from '../BatchedBridge/BatchedBridge';
27
27
  export {default as ExceptionsManager} from '../Core/ExceptionsManager';
@@ -7,7 +7,7 @@
7
7
  * @noflow
8
8
  * @nolint
9
9
  * @preventMunge
10
- * @generated SignedSource<<d944291b21bfca6afd58b1fd5a118042>>
10
+ * @generated SignedSource<<6b3694149dd8856f0c741d3d94e05646>>
11
11
  *
12
12
  * This file was sync'd from the facebook/react repository.
13
13
  */
@@ -10561,6 +10561,8 @@ __DEV__ &&
10561
10561
  (offscreenSubtreeWasHidden ||
10562
10562
  null === current ||
10563
10563
  safelyDetachRef(current, current.return));
10564
+ null !== finishedWork.alternate &&
10565
+ (finishedWork.alternate.stateNode = finishedWork.stateNode);
10564
10566
  break;
10565
10567
  case 6:
10566
10568
  recursivelyTraverseMutationEffects(root, finishedWork);
@@ -7,7 +7,7 @@
7
7
  * @noflow
8
8
  * @nolint
9
9
  * @preventMunge
10
- * @generated SignedSource<<8c6274bec0d166bb311325a3c6c468b5>>
10
+ * @generated SignedSource<<7430b56dac3186eca669ae53bbf1f23d>>
11
11
  *
12
12
  * This file was sync'd from the facebook/react repository.
13
13
  */
@@ -8075,6 +8075,8 @@ function commitMutationEffectsOnFiber(finishedWork, root) {
8075
8075
  (offscreenSubtreeWasHidden ||
8076
8076
  null === current ||
8077
8077
  safelyDetachRef(current, current.return));
8078
+ null !== finishedWork.alternate &&
8079
+ (finishedWork.alternate.stateNode = finishedWork.stateNode);
8078
8080
  break;
8079
8081
  case 6:
8080
8082
  recursivelyTraverseMutationEffects(root, finishedWork);
@@ -7,7 +7,7 @@
7
7
  * @noflow
8
8
  * @nolint
9
9
  * @preventMunge
10
- * @generated SignedSource<<49b14f3fcc953f4ddb02c1ef3f6e8c4e>>
10
+ * @generated SignedSource<<cf19390911979c415bb5e95c5270fba6>>
11
11
  *
12
12
  * This file was sync'd from the facebook/react repository.
13
13
  */
@@ -8530,6 +8530,8 @@ function commitMutationEffectsOnFiber(finishedWork, root) {
8530
8530
  (offscreenSubtreeWasHidden ||
8531
8531
  null === current ||
8532
8532
  safelyDetachRef(current, current.return));
8533
+ null !== finishedWork.alternate &&
8534
+ (finishedWork.alternate.stateNode = finishedWork.stateNode);
8533
8535
  break;
8534
8536
  case 6:
8535
8537
  recursivelyTraverseMutationEffects(root, finishedWork);
@@ -7,7 +7,7 @@
7
7
  * @noformat
8
8
  * @nolint
9
9
  * @flow strict
10
- * @generated SignedSource<<4216c04f5a8c40a833b0146588fab5fa>>
10
+ * @generated SignedSource<<deb7924d11c790f99448a1c2f0edddb9>>
11
11
  */
12
12
 
13
13
  import type {
@@ -35,16 +35,7 @@ export type AttributeType<T, V> =
35
35
  export type AnyAttributeType = AttributeType<$FlowFixMe, $FlowFixMe>;
36
36
 
37
37
  export type AttributeConfiguration = $ReadOnly<{
38
- [propName: string]: AnyAttributeType,
39
- style: $ReadOnly<{
40
- [propName: string]: AnyAttributeType,
41
- ...
42
- }>,
43
- ...
44
- }>;
45
-
46
- export type PartialAttributeConfiguration = $ReadOnly<{
47
- [propName: string]: AnyAttributeType,
38
+ [propName: string]: AnyAttributeType | void,
48
39
  style?: $ReadOnly<{
49
40
  [propName: string]: AnyAttributeType,
50
41
  ...
@@ -84,7 +75,7 @@ export type PartialViewConfig = $ReadOnly<{
84
75
  directEventTypes?: ViewConfig['directEventTypes'],
85
76
  supportsRawText?: boolean,
86
77
  uiViewClassName: string,
87
- validAttributes?: PartialAttributeConfiguration,
78
+ validAttributes?: AttributeConfiguration,
88
79
  }>;
89
80
 
90
81
  type InspectorDataProps = $ReadOnly<{
@@ -7,7 +7,7 @@
7
7
  * @noformat
8
8
  * @nolint
9
9
  * @flow strict
10
- * @generated SignedSource<<4216c04f5a8c40a833b0146588fab5fa>>
10
+ * @generated SignedSource<<deb7924d11c790f99448a1c2f0edddb9>>
11
11
  */
12
12
 
13
13
  import type {
@@ -39,16 +39,7 @@ export type AttributeType<T, V> =
39
39
  export type AnyAttributeType = AttributeType<$FlowFixMe, $FlowFixMe>;
40
40
 
41
41
  export type AttributeConfiguration = $ReadOnly<{
42
- [propName: string]: AnyAttributeType,
43
- style: $ReadOnly<{
44
- [propName: string]: AnyAttributeType,
45
- ...
46
- }>,
47
- ...
48
- }>;
49
-
50
- export type PartialAttributeConfiguration = $ReadOnly<{
51
- [propName: string]: AnyAttributeType,
42
+ [propName: string]: AnyAttributeType | void,
52
43
  style?: $ReadOnly<{
53
44
  [propName: string]: AnyAttributeType,
54
45
  ...
@@ -88,7 +79,7 @@ export type PartialViewConfig = $ReadOnly<{
88
79
  directEventTypes?: ViewConfig['directEventTypes'],
89
80
  supportsRawText?: boolean,
90
81
  uiViewClassName: string,
91
- validAttributes?: PartialAttributeConfiguration,
82
+ validAttributes?: AttributeConfiguration,
92
83
  }>;
93
84
 
94
85
  type InspectorDataProps = $ReadOnly<{
@@ -10,4 +10,5 @@
10
10
 
11
11
  export * from '../../src/private/specs_DEPRECATED/modules/NativeSettingsManager';
12
12
  import NativeSettingsManager from '../../src/private/specs_DEPRECATED/modules/NativeSettingsManager';
13
+
13
14
  export default NativeSettingsManager;
@@ -10,4 +10,5 @@
10
10
 
11
11
  export * from '../../src/private/specs_DEPRECATED/modules/NativeShareModule';
12
12
  import NativeShareModule from '../../src/private/specs_DEPRECATED/modules/NativeShareModule';
13
+
13
14
  export default NativeShareModule;
@@ -25,6 +25,7 @@ import type {
25
25
  ____ViewStyleProp_Internal,
26
26
  NativeColorValue,
27
27
  } from './StyleSheetTypes';
28
+
28
29
  const StyleSheet: StyleSheetExports = (
29
30
  require('./StyleSheetExports') as $FlowFixMe
30
31
  ).default;
@@ -19,6 +19,8 @@ function processAspectRatio(aspectRatio?: number | string): ?number {
19
19
  if (typeof aspectRatio !== 'string') {
20
20
  if (__DEV__) {
21
21
  invariant(
22
+ /* $FlowFixMe[constant-condition] Error discovered during Constant
23
+ * Condition roll out. See https://fburl.com/workplace/1v97vimq. */
22
24
  !aspectRatio,
23
25
  'aspectRatio must either be a number, a ratio string or `auto`. You passed: %s',
24
26
  aspectRatio,
@@ -19,7 +19,7 @@ import usePressability from '../Pressability/usePressability';
19
19
  import flattenStyle from '../StyleSheet/flattenStyle';
20
20
  import processColor from '../StyleSheet/processColor';
21
21
  import Platform from '../Utilities/Platform';
22
- import TextAncestor from './TextAncestor';
22
+ import TextAncestorContext from './TextAncestorContext';
23
23
  import {NativeText, NativeVirtualText} from './TextNativeComponent';
24
24
  import * as React from 'react';
25
25
  import {useContext, useMemo, useState} from 'react';
@@ -169,7 +169,7 @@ const TextImpl: component(
169
169
 
170
170
  const _nativeID = id ?? nativeID;
171
171
 
172
- const hasTextAncestor = useContext(TextAncestor);
172
+ const hasTextAncestor = useContext(TextAncestorContext);
173
173
  if (hasTextAncestor) {
174
174
  if (isPressable) {
175
175
  return (
@@ -302,7 +302,7 @@ const TextImpl: component(
302
302
  }
303
303
 
304
304
  // If the children do not contain a JSX element it would not be possible to have a
305
- // nested `Text` component so we can skip adding the `TextAncestor` context wrapper
305
+ // nested `Text` component so we can skip adding the `TextAncestorContext` context wrapper
306
306
  // which has a performance overhead. Since we do this for performance reasons we need
307
307
  // to keep the check simple to avoid regressing overall perf. For this reason the
308
308
  // `children.length` constant is set to `3`, this should be a reasonable tradeoff
@@ -322,9 +322,7 @@ const TextImpl: component(
322
322
  return nativeText;
323
323
  }
324
324
 
325
- return (
326
- <TextAncestor.Provider value={true}>{nativeText}</TextAncestor.Provider>
327
- );
325
+ return <TextAncestorContext value={true}>{nativeText}</TextAncestorContext>;
328
326
  };
329
327
 
330
328
  TextImpl.displayName = 'Text';
@@ -8,16 +8,9 @@
8
8
  * @format
9
9
  */
10
10
 
11
- 'use strict';
11
+ // Compatibility module for ReactStrictDOMTextAncestorContext.native.js.flow (react-strict-dom)
12
+ // TODO(huntie): Delete after we've fixed this cross-repo reference
12
13
 
13
- import * as React from 'react';
14
- import {createContext} from 'react';
14
+ import TextAncestorContext from './TextAncestorContext';
15
15
 
16
- /**
17
- * Whether the current element is the descendant of a <Text> element.
18
- */
19
- const TextAncestorContext: React.Context<boolean> = createContext(false);
20
- if (__DEV__) {
21
- TextAncestorContext.displayName = 'TextAncestorContext';
22
- }
23
16
  export default TextAncestorContext;
@@ -0,0 +1,23 @@
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
+ * @flow strict
8
+ * @format
9
+ */
10
+
11
+ 'use strict';
12
+
13
+ import * as React from 'react';
14
+ import {createContext} from 'react';
15
+
16
+ /**
17
+ * Whether the current element is the descendant of a <Text> element.
18
+ */
19
+ const TextAncestorContext: React.Context<boolean> = createContext(false);
20
+ if (__DEV__) {
21
+ TextAncestorContext.displayName = 'TextAncestorContext';
22
+ }
23
+ export default TextAncestorContext;
@@ -32,7 +32,7 @@ export type PressRetentionOffset = $ReadOnly<{
32
32
  right: number,
33
33
  }>;
34
34
 
35
- type PointerEventProps = $ReadOnly<{
35
+ type TextPointerEventProps = $ReadOnly<{
36
36
  onPointerEnter?: (event: PointerEvent) => void,
37
37
  onPointerLeave?: (event: PointerEvent) => void,
38
38
  onPointerMove?: (event: PointerEvent) => void,
@@ -269,7 +269,7 @@ type TextBaseProps = $ReadOnly<{
269
269
  * @see https://reactnative.dev/docs/text#reference
270
270
  */
271
271
  export type TextProps = $ReadOnly<{
272
- ...PointerEventProps,
272
+ ...TextPointerEventProps,
273
273
  ...TextPropsIOS,
274
274
  ...TextPropsAndroid,
275
275
  ...TextBaseProps,
@@ -32,7 +32,7 @@ export type PressRetentionOffset = $ReadOnly<{
32
32
  right: number,
33
33
  }>;
34
34
 
35
- type PointerEventProps = $ReadOnly<{
35
+ type TextPointerEventProps = $ReadOnly<{
36
36
  onPointerEnter?: (event: PointerEvent) => void,
37
37
  onPointerLeave?: (event: PointerEvent) => void,
38
38
  onPointerMove?: (event: PointerEvent) => void,
@@ -283,7 +283,7 @@ type TextBaseProps = $ReadOnly<{
283
283
  * @see https://reactnative.dev/docs/text#reference
284
284
  */
285
285
  export type TextProps = $ReadOnly<{
286
- ...PointerEventProps,
286
+ ...TextPointerEventProps,
287
287
  ...TextPropsIOS,
288
288
  ...TextPropsAndroid,
289
289
  ...TextBaseProps,
@@ -10,4 +10,5 @@
10
10
 
11
11
  export * from '../../../src/private/specs_DEPRECATED/modules/NativeSampleTurboModule';
12
12
  import NativeSampleTurboModule from '../../../src/private/specs_DEPRECATED/modules/NativeSampleTurboModule';
13
+
13
14
  export default NativeSampleTurboModule;
@@ -11,4 +11,5 @@
11
11
  // This module exists to fit CodegenTypes into a namespace under Flow
12
12
 
13
13
  import * as CodegenTypes from './CodegenTypes';
14
+
14
15
  export type {CodegenTypes};
@@ -23,6 +23,7 @@ const prettyFormat = require('pretty-format');
23
23
  const pendingEntryPoints = [];
24
24
  let hmrClient = null;
25
25
  let hmrUnavailableReason: string | null = null;
26
+ let hmrOrigin: string | null = null;
26
27
  let currentCompileErrorMessage: string | null = null;
27
28
  let didConnect: boolean = false;
28
29
  let pendingLogs: Array<[LogLevel, $ReadOnlyArray<mixed>]> = [];
@@ -100,7 +101,14 @@ const HMRClient: HMRClientNativeInterface = {
100
101
  },
101
102
 
102
103
  registerBundle(requestUrl: string) {
103
- invariant(hmrClient, 'Expected HMRClient.setup() call at startup.');
104
+ invariant(
105
+ hmrOrigin != null && hmrClient != null,
106
+ 'Expected HMRClient.setup() call at startup.',
107
+ );
108
+ // only process registerBundle calls from the same origin
109
+ if (!requestUrl.startsWith(hmrOrigin)) {
110
+ return;
111
+ }
104
112
  pendingEntryPoints.push(requestUrl);
105
113
  registerBundleEntryPoints(hmrClient);
106
114
  },
@@ -162,8 +170,10 @@ const HMRClient: HMRClientNativeInterface = {
162
170
 
163
171
  const serverScheme = scheme;
164
172
 
165
- const client = new MetroHMRClient(`${serverScheme}://${serverHost}/hot`);
173
+ const origin = `${serverScheme}://${serverHost}`;
174
+ const client = new MetroHMRClient(`${origin}/hot`);
166
175
 
176
+ hmrOrigin = origin;
167
177
  hmrClient = client;
168
178
 
169
179
  const {fullBundleUrl} = getDevServer();
@@ -10,4 +10,5 @@
10
10
 
11
11
  export type * from '../../src/private/specs_DEPRECATED/modules/NativeAppearance';
12
12
  import NativeAppearance from '../../src/private/specs_DEPRECATED/modules/NativeAppearance';
13
+
13
14
  export default NativeAppearance;
@@ -10,4 +10,5 @@
10
10
 
11
11
  export * from '../../src/private/specs_DEPRECATED/modules/NativeDevLoadingView';
12
12
  import NativeDevLoadingView from '../../src/private/specs_DEPRECATED/modules/NativeDevLoadingView';
13
+
13
14
  export default NativeDevLoadingView;
@@ -9,5 +9,4 @@
9
9
  */
10
10
 
11
11
  export * from '../../src/private/specs_DEPRECATED/modules/NativeDeviceInfo';
12
- import NativeDeviceInfo from '../../src/private/specs_DEPRECATED/modules/NativeDeviceInfo';
13
- export default NativeDeviceInfo;
12
+ export {default} from '../../src/private/specs_DEPRECATED/modules/NativeDeviceInfo';
@@ -10,4 +10,5 @@
10
10
 
11
11
  export * from '../../src/private/specs_DEPRECATED/modules/NativePlatformConstantsAndroid';
12
12
  import NativePlatformConstantsAndroid from '../../src/private/specs_DEPRECATED/modules/NativePlatformConstantsAndroid';
13
+
13
14
  export default NativePlatformConstantsAndroid;
@@ -10,4 +10,5 @@
10
10
 
11
11
  export * from '../../src/private/specs_DEPRECATED/modules/NativePlatformConstantsIOS';
12
12
  import NativePlatformConstantsIOS from '../../src/private/specs_DEPRECATED/modules/NativePlatformConstantsIOS';
13
+
13
14
  export default NativePlatformConstantsIOS;
@@ -8,4 +8,5 @@
8
8
 
9
9
  export * from '../../src/private/specs_DEPRECATED/modules/NativePlatformConstantsWin';
10
10
  import NativePlatformConstantsWin from '../../src/private/specs_DEPRECATED/modules/NativePlatformConstantsWin';
11
+
11
12
  export default NativePlatformConstantsWin;
@@ -8,10 +8,7 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {
12
- Platform as PlatformType,
13
- PlatformSelectSpec,
14
- } from './PlatformTypes';
11
+ import type {PlatformSelectSpec, PlatformType} from './PlatformTypes';
15
12
 
16
13
  import NativePlatformConstantsAndroid from './NativePlatformConstantsAndroid';
17
14
 
@@ -8,10 +8,7 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {
12
- Platform as PlatformType,
13
- PlatformSelectSpec,
14
- } from './PlatformTypes';
11
+ import type {PlatformSelectSpec, PlatformType} from './PlatformTypes';
15
12
 
16
13
  import NativePlatformConstantsIOS from './NativePlatformConstantsIOS';
17
14
 
@@ -8,6 +8,6 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {Platform} from './PlatformTypes';
11
+ import type {PlatformType} from './PlatformTypes';
12
12
 
13
- declare export default Platform;
13
+ declare export default PlatformType;
@@ -6,10 +6,7 @@
6
6
  * @format
7
7
  */
8
8
 
9
- import type {
10
- Platform as PlatformType,
11
- PlatformSelectSpec,
12
- } from './PlatformTypes';
9
+ import type {PlatformSelectSpec, PlatformType} from './PlatformTypes';
13
10
 
14
11
  import NativePlatformConstantsWin from './NativePlatformConstantsWin';
15
12