@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,19 +4,22 @@
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 {ImageStyleProp} from '../StyleSheet/StyleSheet';
11
12
  import type {RootTag} from '../Types/RootTagTypes';
12
- import type {ImageAndroid} from './Image.flow';
13
- import type {ImageProps as ImagePropsType} from './ImageProps';
13
+ import type {AbstractImageAndroid, ImageAndroid} from './ImageTypes.flow';
14
14
 
15
15
  import flattenStyle from '../StyleSheet/flattenStyle';
16
16
  import StyleSheet from '../StyleSheet/StyleSheet';
17
17
  import TextAncestor from '../Text/TextAncestor';
18
18
  import ImageAnalyticsTagContext from './ImageAnalyticsTagContext';
19
- import ImageInjection from './ImageInjection';
19
+ import {
20
+ unstable_getImageComponentDecorator,
21
+ useWrapRefWithImageAttachedCallbacks,
22
+ } from './ImageInjection';
20
23
  import {getImageSourcesFromImageProps} from './ImageSourceUtils';
21
24
  import {convertObjectFitToResizeMode} from './ImageUtils';
22
25
  import ImageViewNativeComponent from './ImageViewNativeComponent';
@@ -38,9 +41,9 @@ function generateRequestId() {
38
41
  function getSize(
39
42
  url: string,
40
43
  success: (width: number, height: number) => void,
41
- failure?: (error: any) => void,
42
- ): any {
43
- return NativeImageLoaderAndroid.getSize(url)
44
+ failure?: (error: mixed) => void,
45
+ ): void {
46
+ NativeImageLoaderAndroid.getSize(url)
44
47
  .then(function (sizes) {
45
48
  success(sizes.width, sizes.height);
46
49
  })
@@ -62,9 +65,9 @@ function getSizeWithHeaders(
62
65
  url: string,
63
66
  headers: {[string]: string, ...},
64
67
  success: (width: number, height: number) => void,
65
- failure?: (error: any) => void,
66
- ): any {
67
- return NativeImageLoaderAndroid.getSizeWithHeaders(url, headers)
68
+ failure?: (error: mixed) => void,
69
+ ): void {
70
+ NativeImageLoaderAndroid.getSizeWithHeaders(url, headers)
68
71
  .then(function (sizes) {
69
72
  success(sizes.width, sizes.height);
70
73
  })
@@ -80,19 +83,22 @@ function prefetchWithMetadata(
80
83
  url: string,
81
84
  queryRootName: string,
82
85
  rootTag?: ?RootTag,
83
- callback: ?Function,
84
- ): any {
86
+ callback: ?(requestId: number) => void,
87
+ ): Promise<boolean> {
85
88
  // TODO: T79192300 Log queryRootName and rootTag
86
- prefetch(url, callback);
89
+ return prefetch(url, callback);
87
90
  }
88
91
 
89
- function prefetch(url: string, callback: ?Function): any {
92
+ function prefetch(
93
+ url: string,
94
+ callback: ?(requestId: number) => void,
95
+ ): Promise<boolean> {
90
96
  const requestId = generateRequestId();
91
97
  callback && callback(requestId);
92
98
  return NativeImageLoaderAndroid.prefetchImage(url, requestId);
93
99
  }
94
100
 
95
- function abortPrefetch(requestId: number) {
101
+ function abortPrefetch(requestId: number): void {
96
102
  NativeImageLoaderAndroid.abortRequest(requestId);
97
103
  }
98
104
 
@@ -104,19 +110,9 @@ function abortPrefetch(requestId: number) {
104
110
  async function queryCache(
105
111
  urls: Array<string>,
106
112
  ): Promise<{[string]: 'memory' | 'disk' | 'disk/memory', ...}> {
107
- return await NativeImageLoaderAndroid.queryCache(urls);
113
+ return NativeImageLoaderAndroid.queryCache(urls);
108
114
  }
109
115
 
110
- export type ImageComponentStatics = $ReadOnly<{|
111
- getSize: typeof getSize,
112
- getSizeWithHeaders: typeof getSizeWithHeaders,
113
- prefetch: typeof prefetch,
114
- prefetchWithMetadata: typeof prefetchWithMetadata,
115
- abortPrefetch?: typeof abortPrefetch,
116
- queryCache: typeof queryCache,
117
- resolveAssetSource: typeof resolveAssetSource,
118
- |}>;
119
-
120
116
  /**
121
117
  * A React component for displaying different types of images,
122
118
  * including network images, static resources, temporary local images, and
@@ -124,141 +120,137 @@ export type ImageComponentStatics = $ReadOnly<{|
124
120
  *
125
121
  * See https://reactnative.dev/docs/image
126
122
  */
127
- /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's
128
- * LTI update could not be added via codemod */
129
- const BaseImage = (props: ImagePropsType, forwardedRef) => {
130
- let source = getImageSourcesFromImageProps(props) || {
131
- uri: undefined,
132
- width: undefined,
133
- height: undefined,
134
- };
135
- const defaultSource = resolveAssetSource(props.defaultSource);
136
- const loadingIndicatorSource = resolveAssetSource(
137
- props.loadingIndicatorSource,
138
- );
139
-
140
- if (props.children) {
141
- throw new Error(
142
- 'The <Image> component cannot contain children. If you want to render content on top of the image, consider using the <ImageBackground> component or absolute positioning.',
143
- );
144
- }
145
-
146
- if (props.defaultSource && props.loadingIndicatorSource) {
147
- throw new Error(
148
- 'The <Image> component cannot have defaultSource and loadingIndicatorSource at the same time. Please use either defaultSource or loadingIndicatorSource.',
123
+ let BaseImage: AbstractImageAndroid = React.forwardRef(
124
+ (props, forwardedRef) => {
125
+ let source = getImageSourcesFromImageProps(props) || {
126
+ uri: undefined,
127
+ width: undefined,
128
+ height: undefined,
129
+ };
130
+ const defaultSource = resolveAssetSource(props.defaultSource);
131
+ const loadingIndicatorSource = resolveAssetSource(
132
+ props.loadingIndicatorSource,
149
133
  );
150
- }
151
134
 
152
- let style;
153
- let sources;
154
- if (Array.isArray(source)) {
155
- // $FlowFixMe[underconstrained-implicit-instantiation]
156
- style = flattenStyle([styles.base, props.style]);
157
- sources = source;
158
- } else {
159
- // $FlowFixMe[incompatible-type]
160
- const {width = props.width, height = props.height, uri} = source;
161
- // $FlowFixMe[underconstrained-implicit-instantiation]
162
- style = flattenStyle([{width, height}, styles.base, props.style]);
163
- sources = [source];
164
- if (uri === '') {
165
- console.warn('source.uri should not be an empty string');
135
+ if (props.children) {
136
+ throw new Error(
137
+ 'The <Image> component cannot contain children. If you want to render content on top of the image, consider using the <ImageBackground> component or absolute positioning.',
138
+ );
166
139
  }
167
- }
168
140
 
169
- const {height, width, ...restProps} = props;
141
+ if (props.defaultSource != null && props.loadingIndicatorSource != null) {
142
+ throw new Error(
143
+ 'The <Image> component cannot have defaultSource and loadingIndicatorSource at the same time. Please use either defaultSource or loadingIndicatorSource.',
144
+ );
145
+ }
170
146
 
171
- const {onLoadStart, onLoad, onLoadEnd, onError} = props;
172
- const nativeProps = {
173
- ...restProps,
174
- style,
175
- shouldNotifyLoadEvents: !!(onLoadStart || onLoad || onLoadEnd || onError),
176
- src: sources,
177
- /* $FlowFixMe(>=0.78.0 site=react_native_android_fb) This issue was found
178
- * when making Flow check .android.js files. */
179
- headers: (source?.[0]?.headers || source?.headers: ?{[string]: string}),
180
- defaultSrc: defaultSource ? defaultSource.uri : null,
181
- loadingIndicatorSrc: loadingIndicatorSource
182
- ? loadingIndicatorSource.uri
183
- : null,
184
- ref: forwardedRef,
185
- accessibilityLabel:
186
- props['aria-label'] ?? props.accessibilityLabel ?? props.alt,
187
- accessibilityLabelledBy:
188
- props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy,
189
- accessible: props.alt !== undefined ? true : props.accessible,
190
- accessibilityState: {
191
- busy: props['aria-busy'] ?? props.accessibilityState?.busy,
192
- checked: props['aria-checked'] ?? props.accessibilityState?.checked,
193
- disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled,
194
- expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded,
195
- selected: props['aria-selected'] ?? props.accessibilityState?.selected,
196
- },
197
- };
147
+ let style;
148
+ let sources;
149
+ if (Array.isArray(source)) {
150
+ style = flattenStyle<ImageStyleProp>([styles.base, props.style]);
151
+ sources = source;
152
+ } else {
153
+ const {uri} = source;
154
+ const width = source.width ?? props.width;
155
+ const height = source.height ?? props.height;
156
+ style = flattenStyle<ImageStyleProp>([
157
+ {width, height},
158
+ styles.base,
159
+ props.style,
160
+ ]);
161
+ sources = [source];
162
+ if (uri === '') {
163
+ console.warn('source.uri should not be an empty string');
164
+ }
165
+ }
198
166
 
199
- const objectFit =
200
- // $FlowFixMe[prop-missing]
201
- style && style.objectFit
202
- ? // $FlowFixMe[incompatible-call]
203
- convertObjectFitToResizeMode(style.objectFit)
167
+ const {height, width, ...restProps} = props;
168
+
169
+ const {onLoadStart, onLoad, onLoadEnd, onError} = props;
170
+ const nativeProps = {
171
+ ...restProps,
172
+ style,
173
+ shouldNotifyLoadEvents: !!(onLoadStart || onLoad || onLoadEnd || onError),
174
+ src: sources,
175
+ /* $FlowFixMe(>=0.78.0 site=react_native_android_fb) This issue was found
176
+ * when making Flow check .android.js files. */
177
+ headers: (source?.[0]?.headers || source?.headers: ?{[string]: string}),
178
+ defaultSrc: defaultSource ? defaultSource.uri : null,
179
+ loadingIndicatorSrc: loadingIndicatorSource
180
+ ? loadingIndicatorSource.uri
181
+ : null,
182
+ accessibilityLabel:
183
+ props['aria-label'] ?? props.accessibilityLabel ?? props.alt,
184
+ accessibilityLabelledBy:
185
+ props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy,
186
+ accessible: props.alt !== undefined ? true : props.accessible,
187
+ accessibilityState: {
188
+ busy: props['aria-busy'] ?? props.accessibilityState?.busy,
189
+ checked: props['aria-checked'] ?? props.accessibilityState?.checked,
190
+ disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled,
191
+ expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded,
192
+ selected: props['aria-selected'] ?? props.accessibilityState?.selected,
193
+ },
194
+ };
195
+
196
+ const objectFit = style?.objectFit
197
+ ? convertObjectFitToResizeMode(style.objectFit)
204
198
  : null;
205
- // $FlowFixMe[prop-missing]
206
- const resizeMode =
207
- // $FlowFixMe[prop-missing]
208
- objectFit || props.resizeMode || (style && style.resizeMode) || 'cover';
199
+ const resizeMode =
200
+ objectFit || props.resizeMode || style?.resizeMode || 'cover';
201
+
202
+ const actualRef = useWrapRefWithImageAttachedCallbacks(forwardedRef);
203
+
204
+ return (
205
+ <ImageAnalyticsTagContext.Consumer>
206
+ {analyticTag => {
207
+ const nativePropsWithAnalytics =
208
+ analyticTag !== null
209
+ ? {
210
+ ...nativeProps,
211
+ internal_analyticTag: analyticTag,
212
+ }
213
+ : nativeProps;
214
+ return (
215
+ <TextAncestor.Consumer>
216
+ {hasTextAncestor => {
217
+ if (hasTextAncestor) {
218
+ return (
219
+ <TextInlineImageNativeComponent
220
+ // $FlowFixMe[incompatible-type]
221
+ style={style}
222
+ resizeMode={resizeMode}
223
+ headers={nativeProps.headers}
224
+ src={sources}
225
+ ref={actualRef}
226
+ />
227
+ );
228
+ }
209
229
 
210
- return (
211
- <ImageAnalyticsTagContext.Consumer>
212
- {analyticTag => {
213
- const nativePropsWithAnalytics =
214
- analyticTag !== null
215
- ? {
216
- ...nativeProps,
217
- internal_analyticTag: analyticTag,
218
- }
219
- : nativeProps;
220
- return (
221
- <TextAncestor.Consumer>
222
- {hasTextAncestor => {
223
- if (hasTextAncestor) {
224
230
  return (
225
- <TextInlineImageNativeComponent
226
- // $FlowFixMe[incompatible-type]
227
- style={style}
228
- // $FlowFixMe[incompatible-type]
231
+ <ImageViewNativeComponent
232
+ {...nativePropsWithAnalytics}
229
233
  resizeMode={resizeMode}
230
- headers={nativeProps.headers}
231
- src={sources}
232
- ref={forwardedRef}
234
+ ref={actualRef}
233
235
  />
234
236
  );
235
- }
236
-
237
- return (
238
- <ImageViewNativeComponent
239
- {...nativePropsWithAnalytics}
240
- // $FlowFixMe[incompatible-type]
241
- resizeMode={resizeMode}
242
- />
243
- );
244
- }}
245
- </TextAncestor.Consumer>
246
- );
247
- }}
248
- </ImageAnalyticsTagContext.Consumer>
249
- );
250
- };
251
-
252
- let Image = React.forwardRef<
253
- ImagePropsType,
254
- | React.ElementRef<typeof TextInlineImageNativeComponent>
255
- | React.ElementRef<typeof ImageViewNativeComponent>,
256
- >(BaseImage);
237
+ }}
238
+ </TextAncestor.Consumer>
239
+ );
240
+ }}
241
+ </ImageAnalyticsTagContext.Consumer>
242
+ );
243
+ },
244
+ );
257
245
 
258
- if (ImageInjection.unstable_createImageComponent != null) {
259
- Image = ImageInjection.unstable_createImageComponent(Image);
246
+ const imageComponentDecorator = unstable_getImageComponentDecorator();
247
+ if (imageComponentDecorator != null) {
248
+ BaseImage = imageComponentDecorator(BaseImage);
260
249
  }
261
250
 
251
+ // $FlowExpectedError[incompatible-type] Eventually we need to move these functions from statics of the component to exports in the module.
252
+ const Image: ImageAndroid = BaseImage;
253
+
262
254
  Image.displayName = 'Image';
263
255
 
264
256
  /**
@@ -266,9 +258,7 @@ Image.displayName = 'Image';
266
258
  *
267
259
  * See https://reactnative.dev/docs/image#getsize
268
260
  */
269
- /* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an
270
- * error found when Flow v0.89 was deployed. To see the error, delete this
271
- * comment and run Flow. */
261
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
272
262
  Image.getSize = getSize;
273
263
 
274
264
  /**
@@ -277,9 +267,7 @@ Image.getSize = getSize;
277
267
  *
278
268
  * See https://reactnative.dev/docs/image#getsizewithheaders
279
269
  */
280
- /* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an
281
- * error found when Flow v0.89 was deployed. To see the error, delete this
282
- * comment and run Flow. */
270
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
283
271
  Image.getSizeWithHeaders = getSizeWithHeaders;
284
272
 
285
273
  /**
@@ -288,9 +276,7 @@ Image.getSizeWithHeaders = getSizeWithHeaders;
288
276
  *
289
277
  * See https://reactnative.dev/docs/image#prefetch
290
278
  */
291
- /* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an
292
- * error found when Flow v0.89 was deployed. To see the error, delete this
293
- * comment and run Flow. */
279
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
294
280
  Image.prefetch = prefetch;
295
281
 
296
282
  /**
@@ -299,9 +285,7 @@ Image.prefetch = prefetch;
299
285
  *
300
286
  * See https://reactnative.dev/docs/image#prefetch
301
287
  */
302
- /* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an
303
- * error found when Flow v0.89 was deployed. To see the error, delete this
304
- * comment and run Flow. */
288
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
305
289
  Image.prefetchWithMetadata = prefetchWithMetadata;
306
290
 
307
291
  /**
@@ -309,9 +293,7 @@ Image.prefetchWithMetadata = prefetchWithMetadata;
309
293
  *
310
294
  * See https://reactnative.dev/docs/image#abortprefetch
311
295
  */
312
- /* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an
313
- * error found when Flow v0.89 was deployed. To see the error, delete this
314
- * comment and run Flow. */
296
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
315
297
  Image.abortPrefetch = abortPrefetch;
316
298
 
317
299
  /**
@@ -319,9 +301,7 @@ Image.abortPrefetch = abortPrefetch;
319
301
  *
320
302
  * See https://reactnative.dev/docs/image#querycache
321
303
  */
322
- /* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an
323
- * error found when Flow v0.89 was deployed. To see the error, delete this
324
- * comment and run Flow. */
304
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
325
305
  Image.queryCache = queryCache;
326
306
 
327
307
  /**
@@ -329,21 +309,13 @@ Image.queryCache = queryCache;
329
309
  *
330
310
  * See https://reactnative.dev/docs/image#resolveassetsource
331
311
  */
332
- /* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an
333
- * error found when Flow v0.89 was deployed. To see the error, delete this
334
- * comment and run Flow. */
312
+ // $FlowFixMe[incompatible-use] This property isn't writable but we're actually defining it here for the first time.
335
313
  Image.resolveAssetSource = resolveAssetSource;
336
314
 
337
- /**
338
- * Switch to `deprecated-react-native-prop-types` for compatibility with future
339
- * releases. This is deprecated and will be removed in the future.
340
- */
341
- Image.propTypes = require('deprecated-react-native-prop-types').ImagePropTypes;
342
-
343
315
  const styles = StyleSheet.create({
344
316
  base: {
345
317
  overflow: 'hidden',
346
318
  },
347
319
  });
348
320
 
349
- module.exports = ((Image: any): ImageAndroid);
321
+ module.exports = Image;
@@ -260,7 +260,7 @@ export interface ImagePropsBase
260
260
  /**
261
261
  * A static image to display while downloading the final image off the network.
262
262
  */
263
- defaultSource?: ImageURISource | number | undefined;
263
+ defaultSource?: ImageURISource | ImageRequireSource | undefined;
264
264
 
265
265
  /**
266
266
  * The text that's read by the screen reader when the user interacts with