@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
@@ -10,12 +10,14 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- import type {TouchedViewDataAtPoint} from '../Renderer/shims/ReactNativeTypes';
14
- import type {HostRef} from './getInspectorDataForViewAtPoint';
13
+ import type {InspectedViewRef} from '../ReactNative/AppContainer-dev';
14
+ import type {
15
+ InspectorData,
16
+ TouchedViewDataAtPoint,
17
+ } from '../Renderer/shims/ReactNativeTypes';
18
+ import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
19
+ import type {ReactDevToolsAgent} from '../Types/ReactDevToolsTypes';
15
20
 
16
- // import Dimensions from '../Utilities/Dimensions'; [win32]
17
-
18
- const ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes');
19
21
  const PressabilityDebug = require('../Pressability/PressabilityDebug');
20
22
  const ReactNative = require('../Renderer/shims/ReactNative');
21
23
  const {findNodeHandle} = require('../ReactNative/RendererProxy');
@@ -27,116 +29,70 @@ const InspectorOverlay = require('./InspectorOverlay');
27
29
  const InspectorPanel = require('./InspectorPanel');
28
30
  const React = require('react');
29
31
 
30
- const hook = window.__REACT_DEVTOOLS_GLOBAL_HOOK__;
31
-
32
- // Required for React DevTools to view/edit React Native styles in Flipper.
33
- // Flipper doesn't inject these values when initializing DevTools.
34
- hook.resolveRNStyle = require('../StyleSheet/flattenStyle');
35
- hook.nativeStyleEditorValidAttributes = Object.keys(ReactNativeStyleAttributes);
36
-
37
- const UIManager = require('../ReactNative/UIManager'); // [Win32]
38
-
39
- class Inspector extends React.Component<
40
- {
41
- inspectedView: ?HostRef,
42
- onRequestRerenderApp: (callback: (instance: ?HostRef) => void) => void,
43
- ...
44
- },
45
- {
46
- devtoolsAgent: ?Object,
47
- hierarchy: any,
48
- panelPos: string,
49
- inspecting: boolean,
50
- selection: ?number,
51
- perfing: boolean,
52
- inspected: any,
53
- inspectedView: ?HostRef,
54
- networking: boolean,
55
- ...
56
- },
57
- > {
58
- _hideTimeoutID: TimeoutID | null = null;
59
- _subs: ?Array<() => void>;
60
- _setTouchedViewData: ?(TouchedViewDataAtPoint) => void;
61
-
62
- constructor(props: Object) {
63
- super(props);
64
-
65
- this.state = {
66
- devtoolsAgent: null,
67
- hierarchy: null,
68
- panelPos: 'bottom',
69
- inspecting: true,
70
- perfing: false,
71
- inspected: null,
72
- selection: null,
73
- inspectedView: this.props.inspectedView,
74
- networking: false,
75
- };
76
- }
32
+ const {useState} = React;
77
33
 
78
- componentDidMount() {
79
- hook.on('react-devtools', this._attachToDevtools);
80
- // if devtools is already started
81
- if (hook.reactDevtoolsAgent) {
82
- this._attachToDevtools(hook.reactDevtoolsAgent);
83
- }
84
- }
34
+ type PanelPosition = 'top' | 'bottom';
35
+ type SelectedTab =
36
+ | 'elements-inspector'
37
+ | 'network-profiling'
38
+ | 'performance-profiling';
85
39
 
86
- componentWillUnmount() {
87
- if (this._subs) {
88
- this._subs.map(fn => fn());
89
- }
90
- hook.off('react-devtools', this._attachToDevtools);
91
- this._setTouchedViewData = null;
92
- }
40
+ export type InspectedElementFrame = TouchedViewDataAtPoint['frame'];
41
+ export type InspectedElement = $ReadOnly<{
42
+ frame: InspectedElementFrame,
43
+ style?: ViewStyleProp,
44
+ }>;
45
+ export type ElementsHierarchy = InspectorData['hierarchy'];
93
46
 
94
- UNSAFE_componentWillReceiveProps(newProps: Object) {
95
- this.setState({inspectedView: newProps.inspectedView});
96
- }
47
+ type Props = {
48
+ inspectedViewRef: InspectedViewRef,
49
+ onRequestRerenderApp: () => void,
50
+ reactDevToolsAgent?: ReactDevToolsAgent,
51
+ };
97
52
 
98
- _attachToDevtools = (agent: Object) => {
99
- agent.addListener('shutdown', this._onAgentShutdown);
100
-
101
- this.setState({
102
- devtoolsAgent: agent,
103
- });
104
- };
105
-
106
- _onAgentShutdown = () => {
107
- const agent = this.state.devtoolsAgent;
108
- if (agent != null) {
109
- agent.removeListener('shutdown', this._onAgentShutdown);
53
+ const UIManager = require('../ReactNative/UIManager'); // [Win32]
110
54
 
111
- this.setState({devtoolsAgent: null});
55
+ function Inspector({
56
+ inspectedViewRef,
57
+ onRequestRerenderApp,
58
+ reactDevToolsAgent,
59
+ }: Props): React.Node {
60
+ const [selectedTab, setSelectedTab] =
61
+ useState<?SelectedTab>('elements-inspector');
62
+
63
+ const [panelPosition, setPanelPosition] = useState<PanelPosition>('bottom');
64
+ const [inspectedElement, setInspectedElement] =
65
+ useState<?InspectedElement>(null);
66
+ const [selectionIndex, setSelectionIndex] = useState<?number>(null);
67
+ const [elementsHierarchy, setElementsHierarchy] =
68
+ useState<?ElementsHierarchy>(null);
69
+
70
+ const setSelection = (i: number) => {
71
+ const hierarchyItem = elementsHierarchy?.[i];
72
+ if (hierarchyItem == null) {
73
+ return;
112
74
  }
113
- };
114
75
 
115
- setSelection(i: number) {
116
- const hierarchyItem = this.state.hierarchy[i];
117
- // we pass in findNodeHandle as the method is injected
118
- const {measure, props, source} =
119
- hierarchyItem.getInspectorData(findNodeHandle);
76
+ // We pass in findNodeHandle as the method is injected
77
+ const {measure, props} = hierarchyItem.getInspectorData(findNodeHandle);
120
78
 
121
79
  measure((x, y, width, height, left, top) => {
122
- this.setState({
123
- inspected: {
124
- frame: {left, top, width, height},
125
- style: props.style,
126
- source,
127
- },
128
- selection: i,
80
+ // $FlowFixMe[incompatible-call] `props` from InspectorData are defined as <string, string> dictionary, which is incompatible with ViewStyleProp
81
+ setInspectedElement({
82
+ frame: {left, top, width, height},
83
+ style: props.style,
129
84
  });
85
+
86
+ setSelectionIndex(i);
130
87
  });
131
- }
88
+ };
132
89
 
133
- onTouchPoint(locationX: number, locationY: number) {
134
- this._setTouchedViewData = viewData => {
90
+ const onTouchPoint = (locationX: number, locationY: number) => {
91
+ const setTouchedViewData = (viewData: TouchedViewDataAtPoint) => {
135
92
  const {
136
93
  hierarchy,
137
94
  props,
138
95
  selectedIndex,
139
- source,
140
96
  frame,
141
97
  pointerY,
142
98
  touchedViewTag,
@@ -146,116 +102,93 @@ class Inspector extends React.Component<
146
102
  // Sync the touched view with React DevTools.
147
103
  // Note: This is Paper only. To support Fabric,
148
104
  // DevTools needs to be updated to not rely on view tags.
149
- const agent = this.state.devtoolsAgent;
150
- if (agent) {
151
- agent.selectNode(findNodeHandle(touchedViewTag));
105
+ if (reactDevToolsAgent) {
106
+ reactDevToolsAgent.selectNode(findNodeHandle(touchedViewTag));
152
107
  if (closestInstance != null) {
153
- agent.selectNode(closestInstance);
108
+ reactDevToolsAgent.selectNode(closestInstance);
154
109
  }
155
110
  }
156
111
 
157
112
  // [Win32 Avoid Dimensions call
158
- const node = ReactNative.findNodeHandle(this);
113
+ const node = ReactNative.findNodeHandle(inspectedViewRef);
114
+ // $FlowFixMe[incompatible-call]
159
115
  UIManager.measure(node, (x, y, width, height, left, top) => {
160
- this.setState({
161
- panelPos: pointerY > height / 2 ? 'top' : 'bottom',
162
- selection: selectedIndex,
163
- hierarchy,
164
- inspected: {
165
- style: props.style,
166
- frame,
167
- source,
168
- },
116
+ setPanelPosition(pointerY > height / 2 ? 'top' : 'bottom');
117
+ setSelectionIndex(selectedIndex);
118
+ setElementsHierarchy(hierarchy);
119
+ // $FlowFixMe[incompatible-call] `props` from InspectorData are defined as <string, string> dictionary, which is incompatible with ViewStyleProp
120
+ setInspectedElement({
121
+ frame,
122
+ style: props.style,
169
123
  });
170
124
  });
171
125
  };
172
126
 
173
127
  // ]Win32
174
128
  getInspectorDataForViewAtPoint(
175
- this.state.inspectedView,
129
+ inspectedViewRef.current,
176
130
  locationX,
177
131
  locationY,
178
132
  viewData => {
179
- if (this._setTouchedViewData != null) {
180
- this._setTouchedViewData(viewData);
181
- this._setTouchedViewData = null;
182
- }
133
+ setTouchedViewData(viewData);
183
134
  return false;
184
135
  },
185
136
  );
186
- }
137
+ };
187
138
 
188
- setPerfing(val: boolean) {
189
- this.setState({
190
- perfing: val,
191
- inspecting: false,
192
- inspected: null,
193
- networking: false,
194
- });
195
- }
139
+ const setInspecting = (enabled: boolean) => {
140
+ setSelectedTab(enabled ? 'elements-inspector' : null);
141
+ setInspectedElement(null);
142
+ };
196
143
 
197
- setInspecting(val: boolean) {
198
- this.setState({
199
- inspecting: val,
200
- inspected: null,
201
- });
202
- }
144
+ const setPerfing = (enabled: boolean) => {
145
+ setSelectedTab(enabled ? 'performance-profiling' : null);
146
+ setInspectedElement(null);
147
+ };
203
148
 
204
- setTouchTargeting(val: boolean) {
205
- PressabilityDebug.setEnabled(val);
206
- this.props.onRequestRerenderApp(inspectedView => {
207
- this.setState({inspectedView});
208
- });
209
- }
149
+ const setNetworking = (enabled: boolean) => {
150
+ setSelectedTab(enabled ? 'network-profiling' : null);
151
+ setInspectedElement(null);
152
+ };
210
153
 
211
- setNetworking(val: boolean) {
212
- this.setState({
213
- networking: val,
214
- perfing: false,
215
- inspecting: false,
216
- inspected: null,
217
- });
218
- }
154
+ const setTouchTargeting = (val: boolean) => {
155
+ PressabilityDebug.setEnabled(val);
156
+ onRequestRerenderApp();
157
+ };
219
158
 
220
- render(): React.Node {
221
- const panelContainerStyle =
222
- this.state.panelPos === 'bottom'
223
- ? {bottom: 0}
224
- : {top: Platform.OS === 'ios' ? 20 : 0};
225
- return (
226
- <View style={styles.container} pointerEvents="box-none">
227
- {this.state.inspecting && (
228
- <InspectorOverlay
229
- inspected={this.state.inspected}
230
- // $FlowFixMe[method-unbinding] added when improving typing for this parameters
231
- onTouchPoint={this.onTouchPoint.bind(this)}
232
- />
233
- )}
234
- <View style={[styles.panelContainer, panelContainerStyle]}>
235
- <InspectorPanel
236
- devtoolsIsOpen={!!this.state.devtoolsAgent}
237
- inspecting={this.state.inspecting}
238
- perfing={this.state.perfing}
239
- // $FlowFixMe[method-unbinding] added when improving typing for this parameters
240
- setPerfing={this.setPerfing.bind(this)}
241
- // $FlowFixMe[method-unbinding] added when improving typing for this parameters
242
- setInspecting={this.setInspecting.bind(this)}
243
- inspected={this.state.inspected}
244
- hierarchy={this.state.hierarchy}
245
- selection={this.state.selection}
246
- // $FlowFixMe[method-unbinding] added when improving typing for this parameters
247
- setSelection={this.setSelection.bind(this)}
248
- touchTargeting={PressabilityDebug.isEnabled()}
249
- // $FlowFixMe[method-unbinding] added when improving typing for this parameters
250
- setTouchTargeting={this.setTouchTargeting.bind(this)}
251
- networking={this.state.networking}
252
- // $FlowFixMe[method-unbinding] added when improving typing for this parameters
253
- setNetworking={this.setNetworking.bind(this)}
254
- />
255
- </View>
159
+ const panelContainerStyle =
160
+ panelPosition === 'bottom'
161
+ ? {bottom: 0}
162
+ : Platform.select({ios: {top: 0}, default: {top: 0}});
163
+
164
+ return (
165
+ <View style={styles.container} pointerEvents="box-none">
166
+ {selectedTab === 'elements-inspector' && (
167
+ <InspectorOverlay
168
+ inspected={inspectedElement}
169
+ onTouchPoint={onTouchPoint}
170
+ />
171
+ )}
172
+
173
+ <View style={[styles.panelContainer, panelContainerStyle]}>
174
+ <InspectorPanel
175
+ devtoolsIsOpen={!!reactDevToolsAgent}
176
+ inspecting={selectedTab === 'elements-inspector'}
177
+ perfing={selectedTab === 'performance-profiling'}
178
+ setPerfing={setPerfing}
179
+ setInspecting={setInspecting}
180
+ inspected={inspectedElement}
181
+ hierarchy={elementsHierarchy}
182
+ selection={selectionIndex}
183
+ setSelection={setSelection}
184
+ touchTargeting={PressabilityDebug.isEnabled()}
185
+ setTouchTargeting={setTouchTargeting}
186
+ networking={selectedTab === 'network-profiling'}
187
+ setNetworking={setNetworking}
188
+ />
256
189
  </View>
257
- );
258
- }
190
+ </View>
191
+ );
259
192
  }
260
193
 
261
194
  const styles = StyleSheet.create({
@@ -10,58 +10,45 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
14
13
  import type {PressEvent} from '../Types/CoreEventTypes';
14
+ import type {InspectedElement} from './Inspector';
15
15
 
16
16
  const View = require('../Components/View/View');
17
17
  const StyleSheet = require('../StyleSheet/StyleSheet');
18
- const Dimensions = require('../Utilities/Dimensions').default;
19
18
  const ElementBox = require('./ElementBox');
20
19
  const React = require('react');
21
20
 
22
- type Inspected = $ReadOnly<{|
23
- frame?: Object,
24
- style?: ViewStyleProp,
25
- |}>;
26
-
27
21
  type Props = $ReadOnly<{|
28
- inspected?: Inspected,
22
+ inspected?: ?InspectedElement,
29
23
  onTouchPoint: (locationX: number, locationY: number) => void,
30
24
  |}>;
31
25
 
32
- class InspectorOverlay extends React.Component<Props> {
33
- findViewForTouchEvent: (e: PressEvent) => void = (e: PressEvent) => {
26
+ function InspectorOverlay({inspected, onTouchPoint}: Props): React.Node {
27
+ const findViewForTouchEvent = (e: PressEvent) => {
34
28
  const {locationX, locationY} = e.nativeEvent.touches[0];
35
29
 
36
- this.props.onTouchPoint(locationX, locationY);
30
+ onTouchPoint(locationX, locationY);
37
31
  };
38
32
 
39
- shouldSetResponder: (e: PressEvent) => boolean = (e: PressEvent): boolean => {
40
- this.findViewForTouchEvent(e);
33
+ const handleStartShouldSetResponder = (e: PressEvent): boolean => {
34
+ findViewForTouchEvent(e);
41
35
  return true;
42
36
  };
43
37
 
44
- render(): React.Node {
45
- let content = null;
46
- if (this.props.inspected) {
47
- content = (
48
- <ElementBox
49
- frame={this.props.inspected.frame}
50
- style={this.props.inspected.style}
51
- />
52
- );
53
- }
54
-
55
- return (
56
- <View
57
- onStartShouldSetResponder={this.shouldSetResponder}
58
- onResponderMove={this.findViewForTouchEvent}
59
- nativeID="inspectorOverlay" /* TODO: T68258846. */
60
- style={[styles.inspector, {height: Dimensions.get('window').height}]}>
61
- {content}
62
- </View>
63
- );
38
+ let content = null;
39
+ if (inspected) {
40
+ content = <ElementBox frame={inspected.frame} style={inspected.style} />;
64
41
  }
42
+
43
+ return (
44
+ <View
45
+ onStartShouldSetResponder={handleStartShouldSetResponder}
46
+ onResponderMove={findViewForTouchEvent}
47
+ nativeID="inspectorOverlay" /* TODO: T68258846. */
48
+ style={styles.inspector}>
49
+ {content}
50
+ </View>
51
+ );
65
52
  }
66
53
 
67
54
  const styles = StyleSheet.create({
@@ -71,6 +58,7 @@ const styles = StyleSheet.create({
71
58
  left: 0,
72
59
  top: 0,
73
60
  right: 0,
61
+ bottom: 0,
74
62
  },
75
63
  });
76
64
 
@@ -10,8 +10,8 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
14
13
  import type {PressEvent} from '../Types/CoreEventTypes';
14
+ import type {InspectedElement} from './Inspector';
15
15
 
16
16
  // import Dimensions from '../Utilities/Dimensions'; [Win32]
17
17
 
@@ -20,50 +20,38 @@ const StyleSheet = require('../StyleSheet/StyleSheet');
20
20
  const ElementBox = require('./ElementBox');
21
21
  const React = require('react');
22
22
 
23
- type Inspected = $ReadOnly<{|
24
- frame?: Object,
25
- style?: ViewStyleProp,
26
- |}>;
27
-
28
23
  type Props = $ReadOnly<{|
29
- inspected?: Inspected,
24
+ inspected?: ?InspectedElement,
30
25
  onTouchPoint: (locationX: number, locationY: number) => void,
31
26
  |}>;
32
27
 
33
- class InspectorOverlay extends React.Component<Props> {
34
- findViewForTouchEvent: (e: PressEvent) => void = (e: PressEvent) => {
28
+ function InspectorOverlay({inspected, onTouchPoint}: Props): React.Node {
29
+ const findViewForTouchEvent = (e: PressEvent) => {
35
30
  const {locationX, locationY} = e.nativeEvent.touches[0];
36
31
 
37
- this.props.onTouchPoint(locationX, locationY);
32
+ onTouchPoint(locationX, locationY);
38
33
  };
39
34
 
40
- shouldSetResponser: (e: PressEvent) => boolean = (e: PressEvent): boolean => {
41
- this.findViewForTouchEvent(e);
35
+ const handleStartShouldSetResponder = (e: PressEvent): boolean => {
36
+ findViewForTouchEvent(e);
42
37
  return true;
43
38
  };
44
39
 
45
- render(): React.Node {
46
- let content = null;
47
- if (this.props.inspected) {
48
- content = (
49
- <ElementBox
50
- frame={this.props.inspected.frame}
51
- style={this.props.inspected.style}
52
- />
53
- );
54
- }
55
-
56
- // [Win32, height replaced with 100% to avoid Dimensions call]
57
- return (
58
- <View
59
- onStartShouldSetResponder={this.shouldSetResponser}
60
- onResponderMove={this.findViewForTouchEvent}
61
- nativeID="inspectorOverlay" /* TODO: T68258846. */
62
- style={[styles.inspector, {height: '100%'}]}>
63
- {content}
64
- </View>
65
- );
40
+ let content = null;
41
+ if (inspected) {
42
+ content = <ElementBox frame={inspected.frame} style={inspected.style} />;
66
43
  }
44
+
45
+ // [Win32, height replaced with 100% to avoid Dimensions call]
46
+ return (
47
+ <View
48
+ onStartShouldSetResponder={handleStartShouldSetResponder}
49
+ onResponderMove={findViewForTouchEvent}
50
+ nativeID="inspectorOverlay" /* TODO: T68258846. */
51
+ style={[styles.inspector, {height: '100%'}]}>
52
+ {content}
53
+ </View>
54
+ );
67
55
  }
68
56
 
69
57
  const styles = StyleSheet.create({
@@ -73,6 +61,7 @@ const styles = StyleSheet.create({
73
61
  left: 0,
74
62
  top: 0,
75
63
  right: 0,
64
+ bottom: 0,
76
65
  },
77
66
  });
78
67
 
@@ -10,7 +10,7 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
13
+ import type {ElementsHierarchy, InspectedElement} from './Inspector';
14
14
 
15
15
  import SafeAreaView from '../Components/SafeAreaView/SafeAreaView';
16
16
 
@@ -34,22 +34,10 @@ type Props = $ReadOnly<{|
34
34
  setTouchTargeting: (val: boolean) => void,
35
35
  networking: boolean,
36
36
  setNetworking: (val: boolean) => void,
37
- hierarchy?: ?Array<{|name: string|}>,
37
+ hierarchy?: ?ElementsHierarchy,
38
38
  selection?: ?number,
39
39
  setSelection: number => mixed,
40
- inspected?: ?$ReadOnly<{|
41
- style?: ?ViewStyleProp,
42
- frame?: ?$ReadOnly<{|
43
- top?: ?number,
44
- left?: ?number,
45
- width?: ?number,
46
- height: ?number,
47
- |}>,
48
- source?: ?{|
49
- fileName?: string,
50
- lineNumber?: number,
51
- |},
52
- |}>,
40
+ inspected?: ?InspectedElement,
53
41
  |}>;
54
42
 
55
43
  class InspectorPanel extends React.Component<Props> {
@@ -70,8 +58,6 @@ class InspectorPanel extends React.Component<Props> {
70
58
  <ElementProperties
71
59
  style={this.props.inspected.style}
72
60
  frame={this.props.inspected.frame}
73
- source={this.props.inspected.source}
74
- // $FlowFixMe[incompatible-type] : Hierarchy should be non-nullable
75
61
  hierarchy={this.props.hierarchy}
76
62
  selection={this.props.selection}
77
63
  setSelection={this.props.setSelection}