@office-iss/react-native-win32 0.73.1 → 0.74.0-preview.1

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 (478) hide show
  1. package/.eslintignore +1 -1
  2. package/.flowconfig +11 -3
  3. package/CHANGELOG.json +422 -44
  4. package/CHANGELOG.md +162 -26
  5. package/IntegrationTests/AccessibilityManagerTest.js +2 -2
  6. package/IntegrationTests/AppEventsTest.js +2 -2
  7. package/IntegrationTests/LayoutEventsTest.js +8 -10
  8. package/IntegrationTests/LoggingTestModule.js +1 -2
  9. package/IntegrationTests/websocket_integration_test_server.js +1 -1
  10. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +6 -0
  11. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +6 -0
  12. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +4 -45
  13. package/Libraries/Alert/NativeAlertManager.js +4 -26
  14. package/Libraries/Animated/Animated.js +2 -2
  15. package/Libraries/Animated/AnimatedPlatformConfig.js +1 -1
  16. package/Libraries/Animated/NativeAnimatedHelper.js +14 -11
  17. package/Libraries/Animated/NativeAnimatedHelper.win32.js +14 -11
  18. package/Libraries/Animated/NativeAnimatedModule.js +4 -68
  19. package/Libraries/Animated/NativeAnimatedTurboModule.js +4 -69
  20. package/Libraries/Animated/animations/Animation.js +6 -22
  21. package/Libraries/Animated/components/AnimatedFlatList.js +1 -16
  22. package/Libraries/Animated/components/AnimatedScrollView.js +36 -31
  23. package/Libraries/Animated/components/AnimatedSectionList.js +1 -20
  24. package/Libraries/Animated/createAnimatedComponent.js +45 -40
  25. package/Libraries/Animated/nodes/AnimatedStyle.js +1 -1
  26. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +1 -1
  27. package/Libraries/Animated/useAnimatedProps.js +21 -1
  28. package/Libraries/AppState/NativeAppState.js +4 -24
  29. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  30. package/Libraries/Blob/Blob.js +1 -4
  31. package/Libraries/Blob/BlobManager.js +6 -8
  32. package/Libraries/Blob/File.js +1 -1
  33. package/Libraries/Blob/NativeBlobModule.js +4 -50
  34. package/Libraries/Blob/NativeFileReaderModule.js +4 -13
  35. package/Libraries/BugReporting/NativeBugReporting.js +4 -12
  36. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +5 -1
  37. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +48 -7
  38. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +3 -23
  39. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +11 -0
  40. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +4 -57
  41. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +3 -2
  42. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +3 -2
  43. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +9 -40
  44. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +3 -43
  45. package/Libraries/Components/Button/ButtonWin32.Props.d.ts +36 -36
  46. package/Libraries/Components/Button/ButtonWin32.Props.js +2 -2
  47. package/Libraries/Components/Button/ButtonWin32.Props.js.map +1 -1
  48. package/Libraries/Components/Button/ButtonWin32.d.ts +19 -19
  49. package/Libraries/Components/Button/ButtonWin32.js +82 -82
  50. package/Libraries/Components/Button/ButtonWin32.js.map +1 -1
  51. package/Libraries/Components/Button.js +103 -107
  52. package/Libraries/Components/Button.win32.js +297 -301
  53. package/Libraries/Components/Clipboard/NativeClipboard.js +3 -11
  54. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +3 -114
  55. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -5
  56. package/Libraries/Components/EnterString.win32.d.ts +12 -12
  57. package/Libraries/Components/EnterString.win32.js +81 -81
  58. package/Libraries/Components/EnterString.win32.js.map +1 -1
  59. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +3 -10
  60. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.android.js +69 -0
  61. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.d.ts +24 -0
  62. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.js +33 -0
  63. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroidNativeComponent.js +13 -0
  64. package/Libraries/Components/Pressable/Pressable.js +1 -1
  65. package/Libraries/Components/Pressable/Pressable.win32.js +1 -1
  66. package/Libraries/Components/Pressable/useAndroidRippleForView.js +5 -4
  67. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +4 -24
  68. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +3 -64
  69. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +3 -61
  70. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  71. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +3 -15
  72. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +3 -16
  73. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
  74. package/Libraries/Components/ScrollView/ScrollView.d.ts +5 -6
  75. package/Libraries/Components/ScrollView/ScrollView.js +12 -38
  76. package/Libraries/Components/ScrollView/ScrollView.win32.js +12 -38
  77. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -2
  78. package/Libraries/Components/Sound/NativeSoundManager.js +3 -12
  79. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +3 -58
  80. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +3 -79
  81. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +4 -53
  82. package/Libraries/Components/Switch/Switch.js +0 -2
  83. package/Libraries/Components/Switch/SwitchNativeComponent.js +4 -52
  84. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -0
  85. package/Libraries/Components/TextInput/InputAccessoryView.js +18 -20
  86. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +4 -17
  87. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -6
  88. package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +8 -8
  89. package/Libraries/Components/TextInput/Tests/TextInputTest.js +127 -127
  90. package/Libraries/Components/TextInput/Tests/TextInputTest.js.map +1 -1
  91. package/Libraries/Components/TextInput/TextInput.d.ts +16 -0
  92. package/Libraries/Components/TextInput/TextInput.flow.js +16 -0
  93. package/Libraries/Components/TextInput/TextInput.js +65 -32
  94. package/Libraries/Components/TextInput/TextInput.win32.js +70 -37
  95. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +3 -28
  96. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  97. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.d.ts +8 -8
  98. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +343 -344
  99. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
  100. package/Libraries/Components/Touchable/Touchable.js +2 -3
  101. package/Libraries/Components/Touchable/Touchable.win32.js +2 -3
  102. package/Libraries/Components/Touchable/TouchableHighlight.js +4 -4
  103. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
  104. package/Libraries/Components/Touchable/TouchableOpacity.js +5 -2
  105. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +37 -37
  106. package/Libraries/Components/Touchable/TouchableWin32.Props.js +2 -2
  107. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
  108. package/Libraries/Components/Touchable/TouchableWin32.Types.d.ts +114 -114
  109. package/Libraries/Components/Touchable/TouchableWin32.Types.js +2 -2
  110. package/Libraries/Components/Touchable/TouchableWin32.Types.js.map +1 -1
  111. package/Libraries/Components/Touchable/TouchableWin32.d.ts +91 -91
  112. package/Libraries/Components/Touchable/TouchableWin32.js +506 -506
  113. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
  114. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +3 -16
  115. package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -1
  116. package/Libraries/Components/View/View.js +0 -11
  117. package/Libraries/Components/View/View.win32.js +18 -17
  118. package/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
  119. package/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
  120. package/Libraries/Components/View/ViewPropTypes.js +36 -36
  121. package/Libraries/Components/View/ViewPropTypes.win32.js +36 -36
  122. package/Libraries/Core/InitializeCore.js +1 -1
  123. package/Libraries/Core/NativeExceptionsManager.js +3 -93
  124. package/Libraries/Core/ReactNativeVersion.js +12 -6
  125. package/Libraries/Core/ReactNativeVersionCheck.js +6 -6
  126. package/Libraries/Core/ReactNativeVersionCheck.win32.js +6 -6
  127. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +3 -18
  128. package/Libraries/Core/Timers/NativeTiming.js +3 -16
  129. package/Libraries/Core/registerCallableModule.js +42 -0
  130. package/Libraries/Core/setUpPerformance.js +2 -2
  131. package/Libraries/Core/setUpPerformanceObserver.js +3 -1
  132. package/Libraries/Debugging/DebuggingOverlay.js +111 -0
  133. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
  134. package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
  135. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
  136. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +3 -14
  137. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +3 -9
  138. package/Libraries/Image/AssetSourceResolver.js +5 -5
  139. package/Libraries/Image/AssetUtils.js +4 -5
  140. package/Libraries/Image/Image.android.js +146 -174
  141. package/Libraries/Image/Image.d.ts +1 -1
  142. package/Libraries/Image/Image.ios.js +53 -79
  143. package/Libraries/Image/Image.win32.js +52 -74
  144. package/Libraries/Image/ImageBackground.js +2 -2
  145. package/Libraries/Image/ImageInjection.js +76 -18
  146. package/Libraries/Image/ImageTypes.d.ts +25 -25
  147. package/Libraries/Image/ImageTypes.flow.js +71 -0
  148. package/Libraries/Image/ImageTypes.js +7 -7
  149. package/Libraries/Image/ImageTypes.js.map +1 -1
  150. package/Libraries/Image/ImageUtils.js +1 -1
  151. package/Libraries/Image/ImageViewNativeComponent.js +18 -0
  152. package/Libraries/Image/NativeImageEditor.js +3 -42
  153. package/Libraries/Image/NativeImageLoaderAndroid.js +4 -28
  154. package/Libraries/Image/NativeImageLoaderIOS.js +4 -28
  155. package/Libraries/Image/NativeImageLoaderWin32.js +4 -36
  156. package/Libraries/Image/NativeImageStoreAndroid.js +3 -16
  157. package/Libraries/Image/NativeImageStoreIOS.js +3 -23
  158. package/Libraries/Image/Tests/ImageWin32Test.d.ts +8 -8
  159. package/Libraries/Image/Tests/ImageWin32Test.js +21 -21
  160. package/Libraries/Image/Tests/ImageWin32Test.js.map +1 -1
  161. package/Libraries/Image/resolveAssetSource.js +59 -26
  162. package/Libraries/Inspector/ElementProperties.js +26 -52
  163. package/Libraries/Inspector/Inspector.js +122 -186
  164. package/Libraries/Inspector/Inspector.win32.js +118 -185
  165. package/Libraries/Inspector/InspectorOverlay.js +21 -33
  166. package/Libraries/Inspector/InspectorOverlay.win32.js +22 -33
  167. package/Libraries/Inspector/InspectorPanel.js +3 -17
  168. package/Libraries/Inspector/ReactDevToolsOverlay.js +171 -0
  169. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +20 -8
  170. package/Libraries/Interaction/FrameRateLogger.js +8 -18
  171. package/Libraries/Interaction/NativeFrameRateLogger.js +4 -16
  172. package/Libraries/IntersectionObserver/IntersectionObserver.js +1 -1
  173. package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +20 -19
  174. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +84 -6
  175. package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +3 -31
  176. package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +12 -2
  177. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -2
  178. package/Libraries/Linking/NativeIntentAndroid.js +3 -20
  179. package/Libraries/Linking/NativeLinkingManager.js +3 -17
  180. package/Libraries/Lists/FillRateHelper.js +1 -1
  181. package/Libraries/Lists/FlatList.d.ts +2 -2
  182. package/Libraries/Lists/FlatList.js +6 -1
  183. package/Libraries/Lists/SectionList.d.ts +6 -1
  184. package/Libraries/Lists/ViewabilityHelper.js +1 -1
  185. package/Libraries/Lists/VirtualizeUtils.js +1 -1
  186. package/Libraries/Lists/VirtualizedList.js +1 -1
  187. package/Libraries/Lists/VirtualizedListContext.js +1 -1
  188. package/Libraries/Lists/VirtualizedSectionList.js +1 -1
  189. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  190. package/Libraries/Modal/Modal.js +43 -11
  191. package/Libraries/Modal/NativeModalManager.js +3 -11
  192. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -129
  193. package/Libraries/MutationObserver/MutationObserver.js +1 -1
  194. package/Libraries/MutationObserver/MutationObserverManager.js +2 -2
  195. package/Libraries/MutationObserver/MutationRecord.js +12 -10
  196. package/Libraries/MutationObserver/NativeMutationObserver.js +3 -48
  197. package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +1 -1
  198. package/Libraries/NativeComponent/BaseViewConfig.android.js +1 -0
  199. package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
  200. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +3 -10
  201. package/Libraries/NativeModules/specs/NativeDevMenu.js +3 -13
  202. package/Libraries/NativeModules/specs/NativeDevSettings.js +3 -23
  203. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +3 -9
  204. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +3 -38
  205. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -10
  206. package/Libraries/NativeModules/specs/NativeRedBox.js +4 -11
  207. package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -25
  208. package/Libraries/Network/FormData.js +3 -1
  209. package/Libraries/Network/NativeNetworkingAndroid.js +4 -28
  210. package/Libraries/Network/NativeNetworkingIOS.js +4 -28
  211. package/Libraries/Performance/NativeJSCSamplingProfiler.js +3 -9
  212. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -68
  213. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  214. package/Libraries/PersonaCoin/PersonaCoin.d.ts +3 -3
  215. package/Libraries/PersonaCoin/PersonaCoin.js +14 -14
  216. package/Libraries/PersonaCoin/PersonaCoin.js.map +1 -1
  217. package/Libraries/PersonaCoin/PersonaCoinPropTypes.d.ts +2 -2
  218. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js +19 -19
  219. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js.map +1 -1
  220. package/Libraries/PersonaCoin/PersonaCoinTypes.d.ts +33 -33
  221. package/Libraries/PersonaCoin/PersonaCoinTypes.js +23 -23
  222. package/Libraries/PersonaCoin/PersonaCoinTypes.js.map +1 -1
  223. package/Libraries/Pressability/Pressability.js +12 -2
  224. package/Libraries/Pressability/Pressability.win32.js +12 -2
  225. package/Libraries/Pressability/usePressability.js +7 -0
  226. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +4 -70
  227. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +45 -39
  228. package/Libraries/ReactNative/AppContainer-dev.js +192 -0
  229. package/Libraries/ReactNative/AppContainer-prod.js +53 -0
  230. package/Libraries/ReactNative/AppContainer.js +6 -149
  231. package/Libraries/ReactNative/AppRegistry.js +3 -1
  232. package/Libraries/ReactNative/BridgelessUIManager.js +375 -128
  233. package/Libraries/ReactNative/FabricUIManager.js +6 -0
  234. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +3 -10
  235. package/Libraries/ReactNative/NativeI18nManager.js +3 -18
  236. package/Libraries/ReactNative/NativeUIManager.js +4 -112
  237. package/Libraries/ReactNative/PaperUIManager.js +8 -7
  238. package/Libraries/ReactNative/PaperUIManager.win32.js +26 -7
  239. package/Libraries/ReactNative/ReactFabricInternals.js +1 -1
  240. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +24 -5
  241. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -45
  242. package/Libraries/ReactNative/RendererImplementation.js +11 -0
  243. package/Libraries/ReactNative/UIManager.d.ts +11 -34
  244. package/Libraries/ReactNative/UIManager.js +2 -23
  245. package/Libraries/ReactNative/UIManagerProperties.js +0 -2
  246. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +23 -1
  247. package/Libraries/ReactNative/getNativeComponentAttributes.js +5 -1
  248. package/Libraries/ReactNative/renderApplication.js +9 -6
  249. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +6 -1
  250. package/Libraries/Renderer/implementations/ReactFabric-dev.js +24771 -21123
  251. package/Libraries/Renderer/implementations/ReactFabric-prod.js +4160 -3109
  252. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4384 -3322
  253. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +25194 -21398
  254. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3763 -2636
  255. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4027 -2867
  256. package/Libraries/Renderer/shims/ReactNativeTypes.js +8 -9
  257. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -12
  258. package/Libraries/Settings/NativeSettingsManager.js +4 -16
  259. package/Libraries/Share/NativeShareModule.js +3 -13
  260. package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +1 -1
  261. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
  262. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.js +1 -1
  263. package/Libraries/StyleSheet/StyleSheet.d.ts +1 -20
  264. package/Libraries/StyleSheet/StyleSheet.js +5 -28
  265. package/Libraries/StyleSheet/StyleSheet.win32.js +5 -28
  266. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +47 -7
  267. package/Libraries/StyleSheet/StyleSheetTypes.js +16 -11
  268. package/Libraries/StyleSheet/flattenStyle.js +2 -2
  269. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  270. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  271. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  272. package/Libraries/Text/Text.d.ts +85 -0
  273. package/Libraries/Text/Text.js +0 -6
  274. package/Libraries/Text/Text.win32.js +0 -6
  275. package/Libraries/Text/TextAncestor.js +2 -3
  276. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +4 -41
  277. package/Libraries/Types/ReactDevToolsTypes.js +58 -0
  278. package/Libraries/Types/UIManagerJSInterface.js +16 -0
  279. package/Libraries/Utilities/DebugEnvironment.js +1 -4
  280. package/Libraries/Utilities/Dimensions.js +8 -16
  281. package/Libraries/Utilities/Dimensions.win32.js +8 -16
  282. package/Libraries/Utilities/FocusManager.win32.js +2 -0
  283. package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -2
  284. package/Libraries/Utilities/NativeAppearance.js +3 -26
  285. package/Libraries/Utilities/NativeDevLoadingView.js +3 -14
  286. package/Libraries/Utilities/NativeDeviceInfo.js +2 -47
  287. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +3 -34
  288. package/Libraries/Utilities/NativePlatformConstantsIOS.js +3 -26
  289. package/Libraries/Utilities/NativePlatformConstantsWin.js +3 -23
  290. package/Libraries/Utilities/PixelRatio.d.ts +4 -4
  291. package/Libraries/Utilities/Platform.android.js +4 -0
  292. package/Libraries/Utilities/Platform.d.ts +3 -0
  293. package/Libraries/Utilities/Platform.flow.js +7 -0
  294. package/Libraries/Utilities/Platform.flow.win32.js +18 -5
  295. package/Libraries/Utilities/Platform.ios.js +11 -0
  296. package/Libraries/Utilities/Platform.win32.js +9 -1
  297. package/Libraries/Utilities/binaryToBase64.js +1 -1
  298. package/Libraries/Utilities/codegenNativeComponent.js +4 -6
  299. package/Libraries/Utilities/createPerformanceLogger.js +2 -74
  300. package/Libraries/Utilities/useMergeRefs.js +5 -9
  301. package/Libraries/Vibration/NativeVibration.js +3 -14
  302. package/Libraries/WebSocket/NativeWebSocketModule.js +4 -25
  303. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  304. package/Libraries/platform-types.d.ts +2 -3
  305. package/Libraries/vendor/emitter/EventEmitter.js +1 -0
  306. package/babel.config.js +1 -1
  307. package/flow/jest.js +1 -1
  308. package/flow/react.js +15 -0
  309. package/index.js +66 -99
  310. package/index.win32.js +60 -101
  311. package/jest/assetFileTransformer.js +1 -1
  312. package/jest/local-setup.js +0 -5
  313. package/jest/mockModal.js +2 -1
  314. package/jest/mockScrollView.js +1 -2
  315. package/jest/renderer.js +1 -1
  316. package/jest/setup.js +6 -3
  317. package/jest.config.js +2 -1
  318. package/overrides.json +157 -130
  319. package/package.json +26 -26
  320. package/{Libraries/Core → src/private/core}/setUpDOM.js +2 -2
  321. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +42 -0
  322. package/src/private/featureflags/ReactNativeFeatureFlags.js +140 -0
  323. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +84 -0
  324. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +92 -0
  325. package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
  326. package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
  327. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +26 -0
  328. package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
  329. package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
  330. package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
  331. package/src/private/specs/components/PopupMenuAndroidNativeComponent.js +47 -0
  332. package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
  333. package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
  334. package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
  335. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +139 -0
  336. package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
  337. package/src/private/specs/components/SwitchNativeComponent.js +61 -0
  338. package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
  339. package/src/private/specs/modules/NativeAccessibilityInfo.js +33 -0
  340. package/src/private/specs/modules/NativeAccessibilityInfoWin32.js +39 -0
  341. package/src/private/specs/modules/NativeAccessibilityManager.js +66 -0
  342. package/src/private/specs/modules/NativeActionSheetManager.js +54 -0
  343. package/src/private/specs/modules/NativeAlertManager.js +35 -0
  344. package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
  345. package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
  346. package/src/private/specs/modules/NativeAnimationsDebugModule.js +20 -0
  347. package/src/private/specs/modules/NativeAppState.js +33 -0
  348. package/src/private/specs/modules/NativeAppearance.js +36 -0
  349. package/src/private/specs/modules/NativeBlobModule.js +59 -0
  350. package/src/private/specs/modules/NativeBugReporting.js +20 -0
  351. package/src/private/specs/modules/NativeClipboard.js +21 -0
  352. package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
  353. package/src/private/specs/modules/NativeDevMenu.js +23 -0
  354. package/src/private/specs/modules/NativeDevSettings.js +33 -0
  355. package/src/private/specs/modules/NativeDevToolsSettingsManager.js +24 -0
  356. package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
  357. package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
  358. package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
  359. package/src/private/specs/modules/NativeExceptionsManager.js +103 -0
  360. package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
  361. package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
  362. package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
  363. package/src/private/specs/modules/NativeI18nManager.js +28 -0
  364. package/src/private/specs/modules/NativeImageEditor.js +52 -0
  365. package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
  366. package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
  367. package/src/private/specs/modules/NativeImageLoaderWin32.js +45 -0
  368. package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
  369. package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
  370. package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
  371. package/src/private/specs/modules/NativeIntersectionObserver.js +41 -0
  372. package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
  373. package/src/private/specs/modules/NativeJSCSamplingProfiler.js +19 -0
  374. package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
  375. package/src/private/specs/modules/NativeLinkingManager.js +27 -0
  376. package/src/private/specs/modules/NativeLogBox.js +20 -0
  377. package/src/private/specs/modules/NativeModalManager.js +21 -0
  378. package/src/private/specs/modules/NativeMutationObserver.js +58 -0
  379. package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
  380. package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
  381. package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
  382. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
  383. package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
  384. package/src/private/specs/modules/NativePlatformConstantsWin.js +37 -0
  385. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +107 -0
  386. package/src/private/specs/modules/NativeRedBox.js +20 -0
  387. package/src/private/specs/modules/NativeSampleTurboModule.js +53 -0
  388. package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
  389. package/src/private/specs/modules/NativeSettingsManager.js +25 -0
  390. package/src/private/specs/modules/NativeShareModule.js +23 -0
  391. package/src/private/specs/modules/NativeSoundManager.js +22 -0
  392. package/src/private/specs/modules/NativeSourceCode.js +36 -0
  393. package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
  394. package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
  395. package/src/private/specs/modules/NativeTiming.js +26 -0
  396. package/src/private/specs/modules/NativeToastAndroid.js +38 -0
  397. package/src/private/specs/modules/NativeUIManager.js +118 -0
  398. package/src/private/specs/modules/NativeVibration.js +24 -0
  399. package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
  400. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReactNativeElement.js +6 -6
  401. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyCharacterData.js +2 -2
  402. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyElement.js +5 -5
  403. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyNode.js +19 -10
  404. package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/DOMRectList.js +1 -1
  405. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +85 -0
  406. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +80 -0
  407. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +161 -0
  408. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.js +2 -2
  409. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.js +3 -2
  410. package/{Libraries/WebPerformance → src/private/webapis/performance}/Performance.js +2 -2
  411. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEventTiming.js +1 -1
  412. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceObserver.js +21 -2
  413. package/{Libraries/WebPerformance → src/private/webapis/performance}/RawPerformanceEntry.js +1 -1
  414. package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformanceObserver.js +9 -0
  415. package/src/private/webapis/performance/__tests__/EventCounts-test.js +116 -0
  416. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +82 -0
  417. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +108 -0
  418. package/src/private/webapis/performance/__tests__/Performance-test.js +117 -0
  419. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +208 -0
  420. package/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +161 -0
  421. package/{src → src-win}/Libraries/Components/Button/ButtonWin32.tsx +3 -3
  422. package/{src → src-win}/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +9 -10
  423. package/{src → src-win}/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
  424. package/{src → src-win}/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
  425. package/{src → src-win}/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
  426. package/src-win/Libraries/Text/Text.d.ts +304 -0
  427. package/{src → src-win}/Libraries/platform-types.d.ts +2 -3
  428. package/types/modules/globals.d.ts +1 -0
  429. package/Libraries/Components/Button.flow.js +0 -265
  430. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -85
  431. package/Libraries/Components/Text/TextWin32.Props.d.ts +0 -63
  432. package/Libraries/Components/Text/TextWin32.Props.js +0 -3
  433. package/Libraries/Components/Text/TextWin32.Props.js.map +0 -1
  434. package/Libraries/Components/Text/TextWin32.d.ts +0 -6
  435. package/Libraries/Components/Text/TextWin32.js +0 -18
  436. package/Libraries/Components/Text/TextWin32.js.map +0 -1
  437. package/Libraries/Components/Touchable/Touchable.flow.js +0 -284
  438. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +0 -189
  439. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +0 -43
  440. package/Libraries/Image/Image.flow.js +0 -64
  441. package/Libraries/Inspector/DevtoolsOverlay.js +0 -223
  442. package/Libraries/Performance/QuickPerformanceLogger.js +0 -142
  443. package/src/Libraries/Components/Text/TextWin32.Props.ts +0 -82
  444. package/src/Libraries/Components/Text/TextWin32.tsx +0 -25
  445. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRect.js +0 -0
  446. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRectReadOnly.js +0 -0
  447. /package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyText.js +0 -0
  448. /package/{Libraries/DOM/Nodes/Utilities → src/private/webapis/dom/nodes/utilities}/Traversal.js +0 -0
  449. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/ArrayLikeUtils.js +0 -0
  450. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/HTMLCollection.js +0 -0
  451. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/NodeList.js +0 -0
  452. /package/{Libraries/WebPerformance → src/private/webapis/performance}/EventCounts.js +0 -0
  453. /package/{Libraries/WebPerformance → src/private/webapis/performance}/MemoryInfo.js +0 -0
  454. /package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntry.js +0 -0
  455. /package/{Libraries/WebPerformance → src/private/webapis/performance}/ReactNativeStartupTiming.js +0 -0
  456. /package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformance.js +0 -0
  457. /package/{src → src-win}/Libraries/Components/Button/ButtonWin32.Props.ts +0 -0
  458. /package/{src → src-win}/Libraries/Components/EnterString.win32.tsx +0 -0
  459. /package/{src → src-win}/Libraries/Components/TextInput/Tests/TextInputTest.tsx +0 -0
  460. /package/{src → src-win}/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +0 -0
  461. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Props.tsx +0 -0
  462. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Types.tsx +0 -0
  463. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.tsx +0 -0
  464. /package/{src → src-win}/Libraries/Components/View/ViewWin32.d.ts +0 -0
  465. /package/{src → src-win}/Libraries/Image/ImageTypes.ts +0 -0
  466. /package/{src → src-win}/Libraries/Image/Tests/ImageWin32Test.tsx +0 -0
  467. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest.png +0 -0
  468. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@1.5x.png +0 -0
  469. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@2x.png +0 -0
  470. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@3x.png +0 -0
  471. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest.png +0 -0
  472. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@1.5x.png +0 -0
  473. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@3x.png +0 -0
  474. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoin.tsx +0 -0
  475. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinPropTypes.ts +0 -0
  476. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinTypes.ts +0 -0
  477. /package/{src → src-win}/Libraries/Utilities/FocusManager.win32.d.ts +0 -0
  478. /package/{src → src-win}/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +0 -0
@@ -4,118 +4,10 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @flow
7
+ * @flow strict-local
8
8
  * @format
9
9
  */
10
10
 
11
- import type {RootTag} from '../TurboModule/RCTExport';
12
- import type {TurboModule} from '../TurboModule/RCTExport';
13
-
14
- import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
15
-
16
- export interface Spec extends TurboModule {
17
- +getConstants: () => Object;
18
- +getConstantsForViewManager: (viewManagerName: string) => Object;
19
- +getDefaultEventTypes: () => Array<string>;
20
- +lazilyLoadView: (name: string) => Object; // revisit return
21
- +createView: (
22
- reactTag: ?number,
23
- viewName: string,
24
- rootTag: RootTag,
25
- props: Object,
26
- ) => void;
27
- +updateView: (reactTag: number, viewName: string, props: Object) => void;
28
- +focus: (reactTag: ?number) => void;
29
- +blur: (reactTag: ?number) => void;
30
- +findSubviewIn: (
31
- reactTag: ?number,
32
- point: Array<number>,
33
- callback: (
34
- nativeViewTag: number,
35
- left: number,
36
- top: number,
37
- width: number,
38
- height: number,
39
- ) => void,
40
- ) => void;
41
- +dispatchViewManagerCommand: (
42
- reactTag: ?number,
43
- commandID: number,
44
- commandArgs: ?Array<any>,
45
- ) => void;
46
- +measure: (
47
- reactTag: number,
48
- callback: (
49
- left: number,
50
- top: number,
51
- width: number,
52
- height: number,
53
- pageX: number,
54
- pageY: number,
55
- ) => void,
56
- ) => void;
57
- +measureInWindow: (
58
- reactTag: number,
59
- callback: (x: number, y: number, width: number, height: number) => void,
60
- ) => void;
61
- +viewIsDescendantOf: (
62
- reactTag: ?number,
63
- ancestorReactTag: ?number,
64
- callback: (result: Array<boolean>) => void,
65
- ) => void;
66
- +measureLayout: (
67
- reactTag: number,
68
- ancestorReactTag: number,
69
- errorCallback: (error: Object) => void,
70
- callback: (
71
- left: number,
72
- top: number,
73
- width: number,
74
- height: number,
75
- ) => void,
76
- ) => void;
77
- +measureLayoutRelativeToParent: (
78
- reactTag: number,
79
- errorCallback: (error: Object) => void,
80
- callback: (
81
- left: number,
82
- top: number,
83
- width: number,
84
- height: number,
85
- ) => void,
86
- ) => void;
87
- +setJSResponder: (reactTag: ?number, blockNativeResponder: boolean) => void;
88
- +clearJSResponder: () => void;
89
- +configureNextLayoutAnimation: (
90
- config: Object,
91
- callback: () => void, // check what is returned here
92
- errorCallback: (error: Object) => void,
93
- ) => void;
94
- +removeSubviewsFromContainerWithID: (containerID: number) => void;
95
- +replaceExistingNonRootView: (
96
- reactTag: ?number,
97
- newReactTag: ?number,
98
- ) => void;
99
- +setChildren: (containerTag: ?number, reactTags: Array<number>) => void;
100
- +manageChildren: (
101
- containerTag: ?number,
102
- moveFromIndices: Array<number>,
103
- moveToIndices: Array<number>,
104
- addChildReactTags: Array<number>,
105
- addAtIndices: Array<number>,
106
- removeAtIndices: Array<number>,
107
- ) => void;
108
-
109
- // Android only
110
- +setLayoutAnimationEnabledExperimental: (enabled: boolean) => void;
111
- +sendAccessibilityEvent: (reactTag: ?number, eventType: number) => void;
112
- +showPopupMenu: (
113
- reactTag: ?number,
114
- items: Array<string>,
115
- error: (error: Object) => void,
116
- success: (event: string, selected?: number) => void,
117
- ) => void;
118
- +dismissPopupMenu: () => void;
119
- }
120
-
121
- export default (TurboModuleRegistry.getEnforcing<Spec>('UIManager'): Spec);
11
+ export * from '../../src/private/specs/modules/NativeUIManager';
12
+ import NativeUIManager from '../../src/private/specs/modules/NativeUIManager';
13
+ export default NativeUIManager;
@@ -9,8 +9,10 @@
9
9
  */
10
10
 
11
11
  import type {RootTag} from '../Types/RootTagTypes';
12
+ import type {UIManagerJSInterface} from '../Types/UIManagerJSInterface';
12
13
 
13
14
  import NativeUIManager from './NativeUIManager';
15
+ import nullthrows from 'nullthrows';
14
16
 
15
17
  const NativeModules = require('../BatchedBridge/NativeModules');
16
18
  const defineLazyObjectProperty = require('../Utilities/defineLazyObjectProperty');
@@ -66,7 +68,7 @@ function getViewManagerConfig(viewManagerName: string): any {
66
68
  NativeUIManager.lazilyLoadView &&
67
69
  !triedLoadingConfig.has(viewManagerName)
68
70
  ) {
69
- const result = NativeUIManager.lazilyLoadView(viewManagerName);
71
+ const result = nullthrows(NativeUIManager.lazilyLoadView)(viewManagerName);
70
72
  triedLoadingConfig.add(viewManagerName);
71
73
  if (result != null && result.viewConfig != null) {
72
74
  getConstants()[viewManagerName] = result.viewConfig;
@@ -77,13 +79,11 @@ function getViewManagerConfig(viewManagerName: string): any {
77
79
  return viewManagerConfigs[viewManagerName];
78
80
  }
79
81
 
80
- /* $FlowFixMe[cannot-spread-interface] (>=0.123.0 site=react_native_fb) This
81
- * comment suppresses an error found when Flow v0.123.0 was deployed. To see
82
- * the error, delete this comment and run Flow. */
83
- const UIManagerJS = {
82
+ // $FlowFixMe[cannot-spread-interface]
83
+ const UIManagerJS: UIManagerJSInterface = {
84
84
  ...NativeUIManager,
85
85
  createView(
86
- reactTag: ?number,
86
+ reactTag: number,
87
87
  viewName: string,
88
88
  rootTag: RootTag,
89
89
  props: Object,
@@ -162,7 +162,8 @@ if (Platform.OS === 'ios') {
162
162
  } else if (getConstants().ViewManagerNames) {
163
163
  NativeUIManager.getConstants().ViewManagerNames.forEach(viewManagerName => {
164
164
  defineLazyObjectProperty(NativeUIManager, viewManagerName, {
165
- get: () => NativeUIManager.getConstantsForViewManager(viewManagerName),
165
+ get: () =>
166
+ nullthrows(NativeUIManager.getConstantsForViewManager)(viewManagerName),
166
167
  });
167
168
  });
168
169
  }
@@ -8,14 +8,17 @@
8
8
  * @format
9
9
  */
10
10
 
11
+ import type {RootTag} from '../Types/RootTagTypes';
12
+ import type {UIManagerJSInterface} from '../Types/UIManagerJSInterface';
13
+
14
+ import NativeUIManager from './NativeUIManager';
15
+ import nullthrows from 'nullthrows';
16
+
11
17
  const NativeModules = require('../BatchedBridge/NativeModules');
12
18
  const defineLazyObjectProperty = require('../Utilities/defineLazyObjectProperty');
13
19
  const Platform = require('../Utilities/Platform');
14
20
  const UIManagerProperties = require('./UIManagerProperties');
15
21
 
16
- import NativeUIManager from './NativeUIManager';
17
- // import type {RootTag} from 'react-native/Libraries/Types/RootTagTypes'; [Windows]
18
-
19
22
  const viewManagerConfigs: {[string]: any | null} = {};
20
23
 
21
24
  const triedLoadingConfig = new Set<string>();
@@ -65,7 +68,7 @@ function getViewManagerConfig(viewManagerName: string): any {
65
68
  NativeUIManager.lazilyLoadView &&
66
69
  !triedLoadingConfig.has(viewManagerName)
67
70
  ) {
68
- const result = NativeUIManager.lazilyLoadView(viewManagerName);
71
+ const result = nullthrows(NativeUIManager.lazilyLoadView)(viewManagerName);
69
72
  triedLoadingConfig.add(viewManagerName);
70
73
  if (result != null && result.viewConfig != null) {
71
74
  getConstants()[viewManagerName] = result.viewConfig;
@@ -76,8 +79,23 @@ function getViewManagerConfig(viewManagerName: string): any {
76
79
  return viewManagerConfigs[viewManagerName];
77
80
  }
78
81
 
79
- // $FlowFixMe
80
- const UIManagerJS = {};
82
+ // $FlowFixMe[cannot-spread-interface]
83
+ const UIManagerJS: UIManagerJSInterface = {
84
+ ...NativeUIManager,
85
+ createView(
86
+ reactTag: number,
87
+ viewName: string,
88
+ rootTag: RootTag,
89
+ props: Object,
90
+ ): void {
91
+ if (Platform.OS === 'ios' && viewManagerConfigs[viewName] === undefined) {
92
+ // This is necessary to force the initialization of native viewManager
93
+ // classes in iOS when using static ViewConfigs
94
+ getViewManagerConfig(viewName);
95
+ }
96
+ NativeUIManager.createView(reactTag, viewName, rootTag, props);
97
+ },
98
+ };
81
99
 
82
100
  // [Windows The spread operator doesn't work on JSI turbomodules, so use this instead
83
101
  for (const propName of Object.getOwnPropertyNames(NativeUIManager)) {
@@ -161,7 +179,8 @@ if (Platform.OS === 'ios') {
161
179
  } else if (getConstants().ViewManagerNames) {
162
180
  NativeUIManager.getConstants().ViewManagerNames.forEach(viewManagerName => {
163
181
  defineLazyObjectProperty(NativeUIManager, viewManagerName, {
164
- get: () => NativeUIManager.getConstantsForViewManager(viewManagerName),
182
+ get: () =>
183
+ nullthrows(NativeUIManager.getConstantsForViewManager)(viewManagerName),
165
184
  });
166
185
  });
167
186
  }
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @flow
7
+ * @flow strict-local
8
8
  * @format
9
9
  */
10
10
 
@@ -8,8 +8,13 @@
8
8
  * @flow strict-local
9
9
  */
10
10
 
11
- import type ReactNativeElement from '../../DOM/Nodes/ReactNativeElement';
12
- import type ReadOnlyText from '../../DOM/Nodes/ReadOnlyText';
11
+ /**
12
+ * This module is meant to be used by the React renderers to create public
13
+ * instances and get some data from them (like their instance handle / fiber).
14
+ */
15
+
16
+ import type ReactNativeElement from '../../../src/private/webapis/dom/nodes/ReactNativeElement';
17
+ import type ReadOnlyText from '../../../src/private/webapis/dom/nodes/ReadOnlyText';
13
18
  import typeof ReactFabricType from '../../Renderer/shims/ReactFabric';
14
19
  import type {
15
20
  InternalInstanceHandle,
@@ -18,7 +23,7 @@ import type {
18
23
  } from '../../Renderer/shims/ReactNativeTypes';
19
24
  import type ReactFabricHostComponent from './ReactFabricHostComponent';
20
25
 
21
- import ReactNativeFeatureFlags from '../ReactNativeFeatureFlags';
26
+ import * as ReactNativeFeatureFlags from '../../../src/private/featureflags/ReactNativeFeatureFlags';
22
27
 
23
28
  // Lazy loaded to avoid evaluating the module when using the legacy renderer.
24
29
  let PublicInstanceClass:
@@ -39,7 +44,7 @@ export function createPublicInstance(
39
44
  // the right module to avoid eagerly loading both.
40
45
  if (ReactNativeFeatureFlags.enableAccessToHostTreeInFabric()) {
41
46
  PublicInstanceClass =
42
- require('../../DOM/Nodes/ReactNativeElement').default;
47
+ require('../../../src/private/webapis/dom/nodes/ReactNativeElement').default;
43
48
  } else {
44
49
  PublicInstanceClass = require('./ReactFabricHostComponent').default;
45
50
  }
@@ -52,7 +57,8 @@ export function createPublicTextInstance(
52
57
  internalInstanceHandle: InternalInstanceHandle,
53
58
  ): ReadOnlyText {
54
59
  if (ReadOnlyTextClass == null) {
55
- ReadOnlyTextClass = require('../../DOM/Nodes/ReadOnlyText').default;
60
+ ReadOnlyTextClass =
61
+ require('../../../src/private/webapis/dom/nodes/ReadOnlyText').default;
56
62
  }
57
63
 
58
64
  return new ReadOnlyTextClass(internalInstanceHandle);
@@ -79,3 +85,16 @@ export function getNodeFromPublicInstance(
79
85
  publicInstance.__internalInstanceHandle,
80
86
  );
81
87
  }
88
+
89
+ export function getInternalInstanceHandleFromPublicInstance(
90
+ publicInstance: ReactFabricHostComponent | ReactNativeElement,
91
+ ): InternalInstanceHandle {
92
+ // TODO(T174762768): Remove this once OSS versions of renderers will be synced.
93
+ // $FlowExpectedError[prop-missing] Keeping this for backwards-compatibility with the renderers versions in open source.
94
+ if (publicInstance._internalInstanceHandle != null) {
95
+ // $FlowExpectedError[incompatible-return] Keeping this for backwards-compatibility with the renderers versions in open source.
96
+ return publicInstance._internalInstanceHandle;
97
+ }
98
+
99
+ return publicInstance.__internalInstanceHandle;
100
+ }
@@ -9,11 +9,6 @@
9
9
  */
10
10
 
11
11
  export type FeatureFlags = {|
12
- /**
13
- * Function used to enable / disabled Layout Animations in React Native.
14
- * Default value = true.
15
- */
16
- isLayoutAnimationEnabled: () => boolean,
17
12
  /**
18
13
  * Function used to enable / disable W3C pointer event emitting in React Native.
19
14
  * If enabled you must also flip the equivalent native flags on each platform:
@@ -26,51 +21,11 @@ export type FeatureFlags = {|
26
21
  * for its hover callbacks
27
22
  */
28
23
  shouldPressibilityUseW3CPointerEventsForHover: () => boolean,
29
- /**
30
- * Enables an experimental flush-queue debouncing in Animated.js.
31
- */
32
- animatedShouldDebounceQueueFlush: () => boolean,
33
- /**
34
- * Enables an experimental mega-operation for Animated.js that replaces
35
- * many calls to native with a single call into native, to reduce JSI/JNI
36
- * traffic.
37
- */
38
- animatedShouldUseSingleOp: () => boolean,
39
- /**
40
- * Enables GlobalPerformanceLogger replacement with a WebPerformance API based
41
- * implementation. Tri-state due to being sensitive to initialization order
42
- * vs the platform-specific ReactNativeFeatureFlags implementation.
43
- */
44
- isGlobalWebPerformanceLoggerEnabled: () => ?boolean,
45
- /**
46
- * Enables access to the host tree in Fabric using DOM-compatible APIs.
47
- */
48
- enableAccessToHostTreeInFabric: () => boolean,
49
- /**
50
- * Enables use of AnimatedObject for animating transform values.
51
- */
52
- shouldUseAnimatedObjectForTransform: () => boolean,
53
- /**
54
- * Enables use of setNativeProps in JS driven animations.
55
- */
56
- shouldUseSetNativePropsInFabric: () => boolean,
57
- /**
58
- * Enables a hotfix for forcing materialization of views with elevation set.
59
- */
60
- shouldForceUnflattenForElevation: () => boolean,
61
24
  |};
62
25
 
63
26
  const ReactNativeFeatureFlags: FeatureFlags = {
64
- isLayoutAnimationEnabled: () => true,
65
27
  shouldEmitW3CPointerEvents: () => false,
66
28
  shouldPressibilityUseW3CPointerEventsForHover: () => false,
67
- animatedShouldDebounceQueueFlush: () => false,
68
- animatedShouldUseSingleOp: () => false,
69
- isGlobalWebPerformanceLoggerEnabled: () => undefined,
70
- enableAccessToHostTreeInFabric: () => false,
71
- shouldUseAnimatedObjectForTransform: () => false,
72
- shouldUseSetNativePropsInFabric: () => false,
73
- shouldForceUnflattenForElevation: () => false,
74
29
  };
75
30
 
76
31
  module.exports = ReactNativeFeatureFlags;
@@ -9,6 +9,7 @@
9
9
  */
10
10
 
11
11
  import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
12
+ import type ReactFabricHostComponent from './ReactFabricPublicInstance/ReactFabricHostComponent';
12
13
  import type {Element, ElementRef, ElementType} from 'react';
13
14
 
14
15
  import {type RootTag} from './RootTag';
@@ -110,3 +111,13 @@ export function unstable_batchedUpdates<T>(
110
111
  export function isProfilingRenderer(): boolean {
111
112
  return Boolean(__DEV__);
112
113
  }
114
+
115
+ export function isChildPublicInstance(
116
+ parentInstance: ReactFabricHostComponent | HostComponent<mixed>,
117
+ childInstance: ReactFabricHostComponent | HostComponent<mixed>,
118
+ ): boolean {
119
+ return require('../Renderer/shims/ReactNative').isChildPublicInstance(
120
+ parentInstance,
121
+ childInstance,
122
+ );
123
+ }
@@ -15,33 +15,6 @@ import {
15
15
  } from '../../types/public/ReactNativeTypes';
16
16
 
17
17
  export interface UIManagerStatic {
18
- /**
19
- * Capture an image of the screen, window or an individual view. The image
20
- * will be stored in a temporary file that will only exist for as long as the
21
- * app is running.
22
- *
23
- * The `view` argument can be the literal string `window` if you want to
24
- * capture the entire window, or it can be a reference to a specific
25
- * React Native component.
26
- *
27
- * The `options` argument may include:
28
- * - width/height (number) - the width and height of the image to capture.
29
- * - format (string) - either 'png' or 'jpeg'. Defaults to 'png'.
30
- * - quality (number) - the quality when using jpeg. 0.0 - 1.0 (default).
31
- *
32
- * Returns a Promise<string> (tempFilePath)
33
- * @platform ios
34
- */
35
- takeSnapshot: (
36
- view?: 'window' | React.ReactElement | number,
37
- options?: {
38
- width?: number | undefined;
39
- height?: number | undefined;
40
- format?: 'png' | 'jpeg' | undefined;
41
- quality?: number | undefined;
42
- },
43
- ) => Promise<string>;
44
-
45
18
  /**
46
19
  * Determines the location on screen, width, and height of the given view and
47
20
  * returns the values via an async callback. If successful, the callback will
@@ -112,7 +85,9 @@ export interface UIManagerStatic {
112
85
  *
113
86
  * UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);
114
87
  */
115
- setLayoutAnimationEnabledExperimental(value: boolean): void;
88
+ setLayoutAnimationEnabledExperimental?:
89
+ | ((value: boolean) => void)
90
+ | undefined;
116
91
 
117
92
  /**
118
93
  * Used to display an Android PopupMenu. If a menu item is pressed, the success callback will
@@ -126,12 +101,14 @@ export interface UIManagerStatic {
126
101
  *
127
102
  * Note that this works only on Android
128
103
  */
129
- showPopupMenu(
130
- node: number,
131
- items: string[],
132
- error: () => void /* currently unused */,
133
- success: (item: string, index: number | undefined) => void,
134
- ): void;
104
+ showPopupMenu?:
105
+ | ((
106
+ node: number,
107
+ items: string[],
108
+ error: () => void /* currently unused */,
109
+ success: (item: string, index: number | undefined) => void,
110
+ ) => void)
111
+ | undefined;
135
112
 
136
113
  getViewManagerConfig: (name: string) => {
137
114
  Commands: {[key: string]: number};
@@ -8,32 +8,11 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {RootTag} from '../Types/RootTagTypes';
12
- import type {Spec} from './NativeUIManager';
11
+ import type {UIManagerJSInterface} from '../Types/UIManagerJSInterface';
13
12
 
14
13
  import {getFabricUIManager} from './FabricUIManager';
15
14
  import nullthrows from 'nullthrows';
16
15
 
17
- export interface UIManagerJSInterface extends Spec {
18
- +getViewManagerConfig: (viewManagerName: string) => Object;
19
- +hasViewManagerConfig: (viewManagerName: string) => boolean;
20
- +createView: (
21
- reactTag: ?number,
22
- viewName: string,
23
- rootTag: RootTag,
24
- props: Object,
25
- ) => void;
26
- +updateView: (reactTag: number, viewName: string, props: Object) => void;
27
- +manageChildren: (
28
- containerTag: ?number,
29
- moveFromIndices: Array<number>,
30
- moveToIndices: Array<number>,
31
- addChildReactTags: Array<number>,
32
- addAtIndices: Array<number>,
33
- removeAtIndices: Array<number>,
34
- ) => void;
35
- }
36
-
37
16
  function isFabricReactTag(reactTag: number): boolean {
38
17
  // React reserves even numbers for Fabric.
39
18
  return reactTag % 2 === 0;
@@ -45,7 +24,7 @@ const UIManagerImpl: UIManagerJSInterface =
45
24
  : require('./PaperUIManager');
46
25
 
47
26
  // $FlowFixMe[cannot-spread-interface]
48
- const UIManager = {
27
+ const UIManager: UIManagerJSInterface = {
49
28
  ...UIManagerImpl,
50
29
  measure(
51
30
  reactTag: number,
@@ -41,8 +41,6 @@ module.exports = [
41
41
  'measureLayout',
42
42
  'measureLayoutRelativeToParent',
43
43
  'removeRootView',
44
- 'removeSubviewsFromContainerWithID',
45
- 'replaceExistingNonRootView',
46
44
  'sendAccessibilityEvent',
47
45
  'setChildren',
48
46
  'setJSResponder',
@@ -24,6 +24,8 @@ import type {
24
24
  Spec as FabricUIManager,
25
25
  } from '../FabricUIManager';
26
26
 
27
+ import {createRootTag} from '../RootTag.js';
28
+
27
29
  export type NodeMock = {
28
30
  children: NodeSet,
29
31
  instanceHandle: InternalInstanceHandle,
@@ -160,6 +162,7 @@ function hasDisplayNone(node: Node): boolean {
160
162
  }
161
163
 
162
164
  interface IFabricUIManagerMock extends FabricUIManager {
165
+ getRoot(rootTag: RootTag | number): NodeSet;
163
166
  __getInstanceHandleFromNode(node: Node): InternalInstanceHandle;
164
167
  __addCommitHook(commitHook: UIManagerCommitHook): void;
165
168
  __removeCommitHook(commitHook: UIManagerCommitHook): void;
@@ -292,6 +295,15 @@ const FabricUIManagerMock: IFabricUIManagerMock = {
292
295
 
293
296
  findShadowNodeByTag_DEPRECATED: jest.fn((reactTag: number): ?Node => {}),
294
297
 
298
+ findNodeAtPoint: jest.fn(
299
+ (
300
+ node: Node,
301
+ locationX: number,
302
+ locationY: number,
303
+ callback: (instanceHandle: ?InternalInstanceHandle) => void,
304
+ ): void => {},
305
+ ),
306
+
295
307
  getBoundingClientRect: jest.fn(
296
308
  (
297
309
  node: Node,
@@ -394,7 +406,8 @@ const FabricUIManagerMock: IFabricUIManagerMock = {
394
406
 
395
407
  compareDocumentPosition: jest.fn((node: Node, otherNode: Node): number => {
396
408
  /* eslint-disable no-bitwise */
397
- const ReadOnlyNode = require('../../DOM/Nodes/ReadOnlyNode').default;
409
+ const ReadOnlyNode =
410
+ require('../../../src/private/webapis/dom/nodes/ReadOnlyNode').default;
398
411
 
399
412
  // Quick check for node vs. itself
400
413
  if (fromNode(node).reactTag === fromNode(otherNode).reactTag) {
@@ -628,6 +641,15 @@ const FabricUIManagerMock: IFabricUIManagerMock = {
628
641
  return 'RN:' + fromNode(node).viewName;
629
642
  }),
630
643
 
644
+ getRoot(containerTag: RootTag | number): NodeSet {
645
+ const tag = createRootTag(containerTag);
646
+ const root = roots.get(tag);
647
+ if (!root) {
648
+ throw new Error('No root found for containerTag ' + Number(tag));
649
+ }
650
+ return root;
651
+ },
652
+
631
653
  __getInstanceHandleFromNode(node: Node): InternalInstanceHandle {
632
654
  return fromNode(node).instanceHandle;
633
655
  },
@@ -20,6 +20,7 @@ const pointsDiffer = require('../Utilities/differ/pointsDiffer');
20
20
  const sizesDiffer = require('../Utilities/differ/sizesDiffer');
21
21
  const UIManager = require('./UIManager');
22
22
  const invariant = require('invariant');
23
+ const nullthrows = require('nullthrows');
23
24
 
24
25
  function getNativeComponentAttributes(uiViewClassName: string): any {
25
26
  const viewConfig = UIManager.getViewManagerConfig(uiViewClassName);
@@ -105,7 +106,10 @@ function attachDefaultEventTypes(viewConfig: any) {
105
106
  const constants = UIManager.getConstants();
106
107
  if (constants.ViewManagerNames || constants.LazyViewManagersEnabled) {
107
108
  // Lazy view managers enabled.
108
- viewConfig = merge(viewConfig, UIManager.getDefaultEventTypes());
109
+ viewConfig = merge(
110
+ viewConfig,
111
+ nullthrows(UIManager.getDefaultEventTypes)(),
112
+ );
109
113
  } else {
110
114
  viewConfig.bubblingEventTypes = merge(
111
115
  viewConfig.bubblingEventTypes,
@@ -22,7 +22,7 @@ import * as React from 'react';
22
22
  // require BackHandler so it sets the default handler that exits the app if no listeners respond
23
23
  import '../Utilities/BackHandler';
24
24
 
25
- type OffscreenType = React.AbstractComponent<{
25
+ type ActivityType = React.AbstractComponent<{
26
26
  mode: 'visible' | 'hidden',
27
27
  children: React.Node,
28
28
  }>;
@@ -73,20 +73,23 @@ export default function renderApplication<Props: Object>(
73
73
  if (useOffscreen && displayMode != null) {
74
74
  // $FlowFixMe[incompatible-type]
75
75
  // $FlowFixMe[prop-missing]
76
- const Offscreen: OffscreenType = React.unstable_Offscreen;
76
+ const Activity: ActivityType = React.unstable_Activity;
77
77
 
78
78
  renderable = (
79
- <Offscreen
79
+ <Activity
80
80
  mode={displayMode === DisplayMode.VISIBLE ? 'visible' : 'hidden'}>
81
81
  {renderable}
82
- </Offscreen>
82
+ </Activity>
83
83
  );
84
84
  }
85
85
 
86
+ // We want to have concurrentRoot always enabled when you're on Fabric.
87
+ const useConcurrentRootOverride = fabric;
88
+
86
89
  performanceLogger.startTimespan('renderApplication_React_render');
87
90
  performanceLogger.setExtra(
88
91
  'usedReactConcurrentRoot',
89
- useConcurrentRoot ? '1' : '0',
92
+ useConcurrentRootOverride ? '1' : '0',
90
93
  );
91
94
  performanceLogger.setExtra('usedReactFabric', fabric ? '1' : '0');
92
95
  performanceLogger.setExtra(
@@ -97,7 +100,7 @@ export default function renderApplication<Props: Object>(
97
100
  element: renderable,
98
101
  rootTag,
99
102
  useFabric: Boolean(fabric),
100
- useConcurrentRoot: Boolean(useConcurrentRoot),
103
+ useConcurrentRoot: Boolean(useConcurrentRootOverride),
101
104
  });
102
105
  performanceLogger.stopTimespan('renderApplication_React_render');
103
106
  }
@@ -19,6 +19,7 @@ import typeof CustomEvent from '../Events/CustomEvent';
19
19
  import typeof {
20
20
  createPublicInstance,
21
21
  createPublicTextInstance,
22
+ getInternalInstanceHandleFromPublicInstance,
22
23
  getNativeTagFromPublicInstance,
23
24
  getNodeFromPublicInstance,
24
25
  } from '../ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance';
@@ -27,7 +28,7 @@ import typeof {
27
28
  diff as diffAttributePayloads,
28
29
  } from '../ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload';
29
30
  import typeof UIManager from '../ReactNative/UIManager';
30
- import typeof ReactNativeViewConfigRegistry from '../Renderer/shims/ReactNativeViewConfigRegistry';
31
+ import typeof * as ReactNativeViewConfigRegistry from '../Renderer/shims/ReactNativeViewConfigRegistry';
31
32
  import typeof flattenStyle from '../StyleSheet/flattenStyle';
32
33
  import type {DangerouslyImpreciseStyleProp} from '../StyleSheet/StyleSheet';
33
34
  import typeof deepFreezeAndThrowOnMutationInDev from '../Utilities/deepFreezeAndThrowOnMutationInDev';
@@ -108,4 +109,8 @@ module.exports = {
108
109
  return require('../ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance')
109
110
  .getNodeFromPublicInstance;
110
111
  },
112
+ get getInternalInstanceHandleFromPublicInstance(): getInternalInstanceHandleFromPublicInstance {
113
+ return require('../ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance')
114
+ .getInternalInstanceHandleFromPublicInstance;
115
+ },
111
116
  };