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

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 (421) hide show
  1. package/.flowconfig +6 -2
  2. package/CHANGELOG.json +49 -1
  3. package/CHANGELOG.md +23 -4
  4. package/IntegrationTests/AccessibilityManagerTest.js +1 -1
  5. package/IntegrationTests/AppEventsTest.js +1 -1
  6. package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +1 -1
  7. package/IntegrationTests/ImageCachePolicyTest.js +2 -2
  8. package/IntegrationTests/ImageSnapshotTest.js +1 -1
  9. package/IntegrationTests/IntegrationTestHarnessTest.js +1 -1
  10. package/IntegrationTests/IntegrationTestsApp.js +1 -1
  11. package/IntegrationTests/LayoutEventsTest.js +1 -1
  12. package/IntegrationTests/PromiseTest.js +1 -1
  13. package/IntegrationTests/SimpleSnapshotTest.js +1 -1
  14. package/IntegrationTests/SyncMethodTest.js +1 -1
  15. package/IntegrationTests/TimersTest.js +1 -1
  16. package/IntegrationTests/WebSocketTest.js +1 -1
  17. package/Libraries/Alert/Alert.js +1 -1
  18. package/Libraries/Alert/Alert.win32.js +1 -1
  19. package/Libraries/Alert/RCTAlertManager.ios.js +1 -1
  20. package/Libraries/Alert/RCTAlertManager.js.flow +1 -1
  21. package/Libraries/Animated/Animated.js +0 -1
  22. package/Libraries/Animated/Animated.js.flow +0 -1
  23. package/Libraries/Animated/AnimatedExports.js +2 -3
  24. package/Libraries/Animated/AnimatedExports.js.flow +1 -2
  25. package/Libraries/Animated/Easing.js +1 -1
  26. package/Libraries/Animated/SpringConfig.js +1 -1
  27. package/Libraries/Animated/animations/Animation.js +5 -2
  28. package/Libraries/Animated/components/AnimatedFlatList.js +7 -6
  29. package/Libraries/Animated/components/AnimatedScrollView.js +53 -52
  30. package/Libraries/Animated/components/AnimatedSectionList.js +11 -7
  31. package/Libraries/Animated/createAnimatedComponent.js +37 -33
  32. package/Libraries/Animated/nodes/AnimatedObject.js +2 -3
  33. package/Libraries/Animated/nodes/AnimatedProps.js +37 -5
  34. package/Libraries/Animated/nodes/AnimatedStyle.js +35 -34
  35. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +6 -1
  36. package/Libraries/AppState/AppState.js +6 -1
  37. package/Libraries/BatchedBridge/BatchedBridge.js +1 -1
  38. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  39. package/Libraries/Blob/BlobManager.js +4 -0
  40. package/Libraries/Blob/URL.js +1 -1
  41. package/Libraries/Blob/URLSearchParams.js +5 -1
  42. package/Libraries/Blob/URLSearchParams.js.flow +2 -1
  43. package/Libraries/BugReporting/BugReporting.js +1 -1
  44. package/Libraries/BugReporting/dumpReactTree.js +1 -1
  45. package/Libraries/BugReporting/getReactData.js +1 -1
  46. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
  47. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
  48. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js.flow +1 -1
  49. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +1 -1
  50. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +20 -19
  51. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +1 -1
  52. package/Libraries/Components/Button.js +3 -3
  53. package/Libraries/Components/Button.win32.js +3 -3
  54. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  55. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +1 -1
  56. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -4
  57. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +1 -1
  58. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -1
  59. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +1 -1
  60. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +1 -1
  61. package/Libraries/Components/Keyboard/Keyboard.js +1 -1
  62. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +3 -2
  63. package/Libraries/Components/LayoutConformance/LayoutConformance.js +0 -1
  64. package/Libraries/Components/Pressable/Pressable.js +9 -6
  65. package/Libraries/Components/Pressable/Pressable.win32.js +9 -6
  66. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +14 -13
  67. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +14 -2
  68. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +1 -1
  69. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +29 -20
  70. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +1 -1
  71. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +1 -1
  72. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  73. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -1
  74. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
  75. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
  76. package/Libraries/Components/ScrollView/ScrollView.d.ts +23 -5
  77. package/Libraries/Components/ScrollView/ScrollView.js +22 -14
  78. package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
  79. package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -1
  80. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -1
  81. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +19 -6
  82. package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
  83. package/Libraries/Components/Sound/SoundManager.js +1 -1
  84. package/Libraries/Components/StaticRenderer.js +1 -1
  85. package/Libraries/Components/StatusBar/StatusBar.js +1 -1
  86. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +1 -1
  87. package/Libraries/Components/Switch/Switch.js +8 -2
  88. package/Libraries/Components/Switch/SwitchNativeComponent.js +1 -1
  89. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +1 -17
  90. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -1
  91. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -1
  92. package/Libraries/Components/TextInput/TextInput.d.ts +9 -3
  93. package/Libraries/Components/TextInput/TextInput.flow.js +12 -14
  94. package/Libraries/Components/TextInput/TextInput.flow.win32.js +12 -14
  95. package/Libraries/Components/TextInput/TextInput.js +40 -35
  96. package/Libraries/Components/TextInput/TextInput.win32.js +41 -35
  97. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  98. package/Libraries/Components/TextInput/TextInputState.win32.js +1 -1
  99. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
  100. package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +1 -1
  101. package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
  102. package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +1 -1
  103. package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +1 -1
  104. package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +1 -1
  105. package/Libraries/Components/Touchable/BoundingDimensions.js +1 -1
  106. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  107. package/Libraries/Components/Touchable/Position.js +1 -1
  108. package/Libraries/Components/Touchable/Touchable.js +10 -0
  109. package/Libraries/Components/Touchable/Touchable.win32.js +10 -0
  110. package/Libraries/Components/Touchable/TouchableBounce.js +9 -3
  111. package/Libraries/Components/Touchable/TouchableHighlight.js +9 -4
  112. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
  113. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +2 -0
  114. package/Libraries/Components/Touchable/TouchableOpacity.js +7 -3
  115. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
  116. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -1
  117. package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -1
  118. package/Libraries/Components/View/View.js +112 -26
  119. package/Libraries/Components/View/View.win32.js +1 -1
  120. package/Libraries/Components/View/ViewAccessibility.js +1 -1
  121. package/Libraries/Components/View/ViewAccessibility.win32.js +1 -1
  122. package/Libraries/Components/View/ViewPropTypes.d.ts +18 -2
  123. package/Libraries/Components/View/ViewPropTypes.js +1 -1
  124. package/Libraries/Components/View/ViewPropTypes.win32.js +1 -1
  125. package/Libraries/Core/Devtools/getDevServer.js +1 -1
  126. package/Libraries/Core/Devtools/loadBundleFromServer.js +49 -7
  127. package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +49 -7
  128. package/Libraries/Core/Devtools/openFileInEditor.js +1 -1
  129. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -1
  130. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  131. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  132. package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
  133. package/Libraries/Core/ExceptionsManager.js +1 -1
  134. package/Libraries/Core/InitializeCore.js +2 -23
  135. package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
  136. package/Libraries/Core/ReactNativeVersion.js +3 -2
  137. package/Libraries/Core/Timers/JSTimers.js +1 -1
  138. package/Libraries/Core/Timers/immediateShim.js +1 -1
  139. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  140. package/Libraries/Core/setUpDeveloperTools.js +13 -11
  141. package/Libraries/Debugging/DebuggingOverlay.js +12 -14
  142. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +1 -1
  143. package/Libraries/Debugging/DebuggingOverlayRegistry.js +0 -1
  144. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +0 -1
  145. package/Libraries/EventEmitter/NativeEventEmitter.js +1 -1
  146. package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
  147. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
  148. package/Libraries/Image/AssetRegistry.js +4 -10
  149. package/Libraries/Image/AssetSourceResolver.js +17 -4
  150. package/Libraries/Image/Image.android.js +112 -106
  151. package/Libraries/Image/Image.ios.js +10 -2
  152. package/Libraries/Image/Image.win32.js +11 -3
  153. package/Libraries/Image/ImageAnalyticsTagContext.js +2 -2
  154. package/Libraries/Image/ImageInjection.js +1 -1
  155. package/Libraries/Image/RelativeImageStub.js +2 -1
  156. package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
  157. package/Libraries/Image/resolveAssetSource.js +1 -1
  158. package/Libraries/Interaction/FrameRateLogger.js +1 -1
  159. package/Libraries/Interaction/InteractionManager.js +62 -53
  160. package/Libraries/Interaction/TaskQueue.js +8 -9
  161. package/Libraries/Interaction/TouchHistoryMath.js +1 -1
  162. package/Libraries/Linking/Linking.js +1 -1
  163. package/Libraries/Lists/FlatList.d.ts +9 -5
  164. package/Libraries/Lists/FlatList.js +1 -1
  165. package/Libraries/Lists/SectionListModern.js +9 -3
  166. package/Libraries/LogBox/Data/parseLogBoxLog.js +2 -0
  167. package/Libraries/LogBox/LogBox.js +2 -0
  168. package/Libraries/LogBox/UI/LogBoxButton.js +2 -1
  169. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -1
  170. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +2 -1
  171. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -2
  172. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +3 -2
  173. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -1
  174. package/Libraries/Modal/Modal.js +5 -1
  175. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +1 -1
  176. package/Libraries/NativeComponent/BaseViewConfig.android.js +17 -5
  177. package/Libraries/NativeComponent/BaseViewConfig.ios.js +4 -4
  178. package/Libraries/NativeComponent/BaseViewConfig.js.flow +1 -1
  179. package/Libraries/NativeComponent/BaseViewConfig.win32.js +4 -4
  180. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -1
  181. package/Libraries/NativeComponent/ViewConfigIgnore.js +3 -3
  182. package/Libraries/Network/FormData.js +1 -1
  183. package/Libraries/Network/RCTNetworking.android.js +2 -2
  184. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  185. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  186. package/Libraries/Network/RCTNetworking.win32.js +1 -1
  187. package/Libraries/Network/XMLHttpRequest.js +3 -3
  188. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +1 -1
  189. package/Libraries/Pressability/Pressability.js +1 -1
  190. package/Libraries/Pressability/Pressability.win32.js +1 -1
  191. package/Libraries/Promise.js +1 -1
  192. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +3 -2
  193. package/Libraries/ReactNative/AppContainer-dev.js +4 -4
  194. package/Libraries/ReactNative/AppContainer-prod.js +0 -1
  195. package/Libraries/ReactNative/AppContainer.js +1 -1
  196. package/Libraries/ReactNative/AppRegistryImpl.js +2 -3
  197. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +1 -1
  198. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
  199. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +1 -1
  200. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +1 -1
  201. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -1
  202. package/Libraries/ReactNative/RendererImplementation.js +1 -1
  203. package/Libraries/ReactNative/RendererProxy.js +1 -1
  204. package/Libraries/ReactNative/RootTag.js +2 -2
  205. package/Libraries/ReactNative/renderApplication.js +1 -1
  206. package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
  207. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -1
  208. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +1 -1
  209. package/Libraries/Renderer/shims/ReactNativeTypes.js +21 -25
  210. package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +270 -0
  211. package/Libraries/Settings/Settings.ios.js +1 -1
  212. package/Libraries/Settings/Settings.js +1 -1
  213. package/Libraries/Settings/SettingsFallback.js +1 -1
  214. package/Libraries/Share/Share.js +1 -1
  215. package/Libraries/StyleSheet/EdgeInsetsPropType.js +1 -1
  216. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  217. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  218. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +1 -1
  219. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
  220. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +1 -1
  221. package/Libraries/StyleSheet/PointPropType.js +1 -1
  222. package/Libraries/StyleSheet/Rect.js +1 -1
  223. package/Libraries/StyleSheet/StyleSheetExports.js.flow +3 -1
  224. package/Libraries/StyleSheet/StyleSheetTypes.js +4 -3
  225. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  226. package/Libraries/StyleSheet/private/_TransformStyle.js +49 -21
  227. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  228. package/Libraries/StyleSheet/processBackgroundImage.js +1 -1
  229. package/Libraries/StyleSheet/processBoxShadow.js +0 -1
  230. package/Libraries/StyleSheet/processColor.js +1 -1
  231. package/Libraries/StyleSheet/processColorArray.js +1 -1
  232. package/Libraries/StyleSheet/processFilter.js +1 -2
  233. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  234. package/Libraries/StyleSheet/processTransform.js +1 -1
  235. package/Libraries/StyleSheet/processTransformOrigin.js +1 -1
  236. package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
  237. package/Libraries/Text/Text.d.ts +7 -0
  238. package/Libraries/Text/Text.js +256 -245
  239. package/Libraries/Text/Text.win32.js +294 -285
  240. package/Libraries/Text/TextAncestor.js +3 -2
  241. package/Libraries/Text/TextNativeComponent.js +4 -0
  242. package/Libraries/Text/TextNativeComponent.win32.js +4 -0
  243. package/Libraries/Text/TextProps.js +2 -34
  244. package/Libraries/Text/TextProps.win32.js +2 -33
  245. package/Libraries/Types/CodegenTypes.js +1 -1
  246. package/Libraries/Types/CodegenTypesNamespace.js +1 -1
  247. package/Libraries/Types/CoreEventTypes.d.ts +4 -0
  248. package/Libraries/Types/ReactDevToolsTypes.js +0 -1
  249. package/Libraries/Utilities/Appearance.js +1 -1
  250. package/Libraries/Utilities/BackHandler.js.flow +1 -1
  251. package/Libraries/Utilities/DevLoadingView.js +1 -1
  252. package/Libraries/Utilities/DeviceInfo.js +1 -1
  253. package/Libraries/Utilities/Dimensions.js +1 -1
  254. package/Libraries/Utilities/Dimensions.win32.js +1 -1
  255. package/Libraries/Utilities/HMRClient.js +1 -1
  256. package/Libraries/Utilities/HMRClientProdShim.js +1 -1
  257. package/Libraries/Utilities/PerformanceLoggerContext.js +2 -2
  258. package/Libraries/Utilities/PixelRatio.js +1 -1
  259. package/Libraries/Utilities/Platform.android.js +1 -1
  260. package/Libraries/Utilities/Platform.ios.js +1 -1
  261. package/Libraries/Utilities/Platform.js +1 -1
  262. package/Libraries/Utilities/Platform.win32.js +1 -1
  263. package/Libraries/Utilities/PlatformTypes.js +1 -1
  264. package/Libraries/Utilities/RCTLog.js +1 -1
  265. package/Libraries/Utilities/SceneTracker.js +1 -1
  266. package/Libraries/Utilities/binaryToBase64.js +1 -1
  267. package/Libraries/Utilities/codegenNativeCommands.js +1 -1
  268. package/Libraries/Utilities/codegenNativeComponent.js +1 -1
  269. package/Libraries/Utilities/createPerformanceLogger.js +27 -20
  270. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -1
  271. package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
  272. package/Libraries/Utilities/differ/deepDiffer.js +1 -1
  273. package/Libraries/Utilities/differ/insetsDiffer.js +1 -1
  274. package/Libraries/Utilities/differ/matricesDiffer.js +1 -1
  275. package/Libraries/Utilities/differ/pointsDiffer.js +1 -1
  276. package/Libraries/Utilities/logError.js +1 -1
  277. package/Libraries/Utilities/mapWithSeparator.js +1 -1
  278. package/Libraries/Utilities/stringifySafe.js +1 -1
  279. package/Libraries/Utilities/stringifyViewConfig.js +1 -1
  280. package/Libraries/Utilities/useColorScheme.js +1 -1
  281. package/Libraries/Utilities/useWindowDimensions.js +1 -1
  282. package/Libraries/Utilities/warnOnce.js +1 -1
  283. package/Libraries/Vibration/Vibration.js +1 -2
  284. package/Libraries/WebSocket/WebSocket.js +1 -1
  285. package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
  286. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  287. package/Libraries/vendor/core/ErrorUtils.js +29 -5
  288. package/index.js +1 -2
  289. package/index.win32.js +3 -1
  290. package/interface.js +1 -1
  291. package/jest/MockNativeMethods.js +9 -3
  292. package/jest/RefreshControlMock.js +32 -0
  293. package/jest/assetFileTransformer.js +1 -0
  294. package/jest/local-setup.js +4 -3
  295. package/jest/mock.js +39 -0
  296. package/jest/mockComponent.js +47 -17
  297. package/jest/mockNativeComponent.js +26 -15
  298. package/jest/mocks/AccessibilityInfo.js +62 -0
  299. package/jest/mocks/ActivityIndicator.js +23 -0
  300. package/jest/mocks/AppState.js +19 -0
  301. package/{flow/Stringish.js → jest/mocks/Clipboard.js} +6 -4
  302. package/jest/mocks/Image.js +23 -0
  303. package/jest/mocks/InitializeCore.js +9 -0
  304. package/jest/mocks/Linking.js +28 -0
  305. package/jest/mocks/Modal.js +33 -0
  306. package/jest/mocks/NativeComponentRegistry.js +30 -0
  307. package/jest/mocks/NativeModules.js +239 -0
  308. package/jest/mocks/RefreshControl.js +31 -0
  309. package/jest/mocks/RendererProxy.js +45 -0
  310. package/jest/mocks/ScrollView.js +58 -0
  311. package/jest/mocks/Text.js +27 -0
  312. package/jest/mocks/TextInput.js +32 -0
  313. package/jest/mocks/UIManager.js +60 -0
  314. package/jest/mocks/Vibration.js +16 -0
  315. package/jest/mocks/View.js +27 -0
  316. package/jest/mocks/ViewNativeComponent.js +23 -0
  317. package/jest/mocks/requireNativeComponent.js +22 -0
  318. package/{Libraries/Utilities/infoLog.js → jest/mocks/useColorScheme.js} +7 -9
  319. package/jest/react-native-env.js +1 -0
  320. package/jest/renderer.js +1 -2
  321. package/jest/resolver.js +32 -0
  322. package/jest/setup.js +63 -445
  323. package/overrides.json +45 -38
  324. package/package.json +14 -14
  325. package/src/private/animated/NativeAnimatedHelper.js +8 -1
  326. package/src/private/animated/NativeAnimatedHelper.win32.js +8 -1
  327. package/src/private/animated/createAnimatedPropsHook.js +11 -4
  328. package/src/private/animated/createAnimatedPropsMemoHook.js +0 -1
  329. package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
  330. package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
  331. package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
  332. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +1 -1
  333. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +1 -1
  334. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +1 -1
  335. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  336. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +1 -1
  337. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +1 -1
  338. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -1
  339. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +1 -1
  340. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +1 -1
  341. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  342. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +1 -1
  343. package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +1 -1
  344. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  345. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +1 -1
  346. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
  347. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
  348. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
  349. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.win32.js +8 -9
  350. package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
  351. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
  352. package/src/private/featureflags/ReactNativeFeatureFlags.js +65 -5
  353. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -0
  354. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +10 -2
  355. package/src/private/renderer/errorhandling/ErrorHandlers.js +1 -1
  356. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
  357. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
  358. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +1 -1
  359. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
  360. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +1 -1
  361. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
  362. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +1 -1
  363. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
  364. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
  365. package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +1 -1
  366. package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
  367. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
  368. package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +1 -1
  369. package/src/private/styles/composeStyles.js +12 -5
  370. package/src/private/types/HostInstance.js +1 -1
  371. package/src/private/webapis/dom/events/Event.js +3 -0
  372. package/src/private/webapis/dom/events/EventTarget.js +3 -0
  373. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +1 -1
  374. package/src/private/webapis/dom/nodes/ReactNativeElement.js +7 -24
  375. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +1 -1
  376. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  377. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +4 -2
  378. package/src/private/webapis/dom/nodes/ReadOnlyText.js +1 -1
  379. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +1 -1
  380. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  381. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  382. package/src/private/webapis/dom/nodes/internals/Traversal.js +1 -1
  383. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
  384. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -1
  385. package/src/private/webapis/dom/oldstylecollections/NodeList.js +4 -1
  386. package/src/private/webapis/errors/DOMException.js +166 -0
  387. package/src/private/webapis/geometry/DOMRect.js +5 -0
  388. package/src/private/webapis/geometry/DOMRectList.js +4 -1
  389. package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
  390. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +3 -0
  391. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
  392. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +70 -18
  393. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +11 -0
  394. package/src/private/webapis/mutationobserver/MutationObserver.js +13 -38
  395. package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
  396. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +7 -29
  397. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +1 -4
  398. package/src/private/webapis/performance/EventTiming.js +1 -1
  399. package/src/private/webapis/performance/LongTasks.js +1 -1
  400. package/src/private/webapis/performance/MemoryInfo.js +4 -1
  401. package/src/private/webapis/performance/Performance.js +20 -9
  402. package/src/private/webapis/performance/PerformanceEntry.js +5 -1
  403. package/src/private/webapis/performance/PerformanceObserver.js +1 -1
  404. package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
  405. package/src/private/webapis/performance/UserTiming.js +1 -1
  406. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +3 -1
  407. package/src/private/webapis/performance/internals/Utilities.js +1 -1
  408. package/src/private/webapis/structuredClone/structuredClone.js +233 -0
  409. package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
  410. package/src/private/webapis/webidl/PlatformObjects.js +59 -0
  411. package/src/types/globals.d.ts +42 -0
  412. package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +18 -2
  413. package/src-win/Libraries/Text/Text.d.ts +7 -0
  414. package/types/index.d.ts +1 -1
  415. package/types/modules/Devtools.d.ts +23 -9
  416. package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -88
  417. package/flow/HermesInternalType.js +0 -114
  418. package/flow/console.js +0 -49
  419. package/flow/global.js +0 -88
  420. package/jest/mockModal.js +0 -32
  421. package/jest/mockScrollView.js +0 -35
@@ -16,7 +16,14 @@ import StyleSheet from '../../StyleSheet/StyleSheet';
16
16
  import Platform from '../../Utilities/Platform';
17
17
  import useMergeRefs from '../../Utilities/useMergeRefs';
18
18
  import * as React from 'react';
19
- import {useCallback, useEffect, useMemo, useRef, useState} from 'react';
19
+ import {
20
+ cloneElement,
21
+ useCallback,
22
+ useEffect,
23
+ useMemo,
24
+ useRef,
25
+ useState,
26
+ } from 'react';
20
27
 
21
28
  export type ScrollViewStickyHeaderProps = $ReadOnly<{
22
29
  children?: React.Node,
@@ -36,10 +43,16 @@ interface Instance extends React.ElementRef<typeof Animated.View> {
36
43
  +setNextHeaderY: number => void;
37
44
  }
38
45
 
39
- const ScrollViewStickyHeaderWithForwardedRef: component(
46
+ const ScrollViewStickyHeader: component(
40
47
  ref: React.RefSetter<Instance>,
41
48
  ...props: ScrollViewStickyHeaderProps
42
- ) = React.forwardRef(function ScrollViewStickyHeader(props, forwardedRef) {
49
+ ) = function ScrollViewStickyHeader({
50
+ ref: forwardedRef,
51
+ ...props
52
+ }: {
53
+ ref?: React.RefSetter<Instance>,
54
+ ...ScrollViewStickyHeaderProps,
55
+ }) {
43
56
  const {
44
57
  inverted,
45
58
  scrollViewHeight,
@@ -289,13 +302,13 @@ const ScrollViewStickyHeaderWithForwardedRef: component(
289
302
  passthroughAnimatedPropExplicitValues={
290
303
  passthroughAnimatedPropExplicitValues
291
304
  }>
292
- {React.cloneElement(child, {
305
+ {cloneElement(child, {
293
306
  style: styles.fill, // We transfer the child style to the wrapper.
294
307
  onLayout: undefined, // we call this manually through our this._onLayout
295
308
  })}
296
309
  </Animated.View>
297
310
  );
298
- });
311
+ };
299
312
 
300
313
  const styles = StyleSheet.create({
301
314
  header: {
@@ -306,4 +319,4 @@ const styles = StyleSheet.create({
306
319
  },
307
320
  });
308
321
 
309
- export default ScrollViewStickyHeaderWithForwardedRef;
322
+ export default ScrollViewStickyHeader;
@@ -4,8 +4,8 @@
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
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  import Platform from '../../Utilities/Platform';
@@ -4,8 +4,8 @@
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
- * @format
8
7
  * @flow strict
8
+ * @format
9
9
  */
10
10
 
11
11
  import NativeSoundManager from './NativeSoundManager';
@@ -4,8 +4,8 @@
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
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  'use strict';
@@ -4,8 +4,8 @@
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
- * @format
8
7
  * @flow
8
+ * @format
9
9
  */
10
10
 
11
11
  import type {ColorValue} from '../../StyleSheet/StyleSheet';
@@ -4,8 +4,8 @@
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
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  export * from '../../../src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent';
@@ -165,7 +165,13 @@ type SwitchRef = React.ElementRef<
165
165
  const Switch: component(
166
166
  ref?: React.RefSetter<SwitchRef>,
167
167
  ...props: SwitchProps
168
- ) = React.forwardRef(function Switch(props, forwardedRef): React.Node {
168
+ ) = function Switch({
169
+ ref: forwardedRef,
170
+ ...props
171
+ }: {
172
+ ref?: React.RefSetter<SwitchRef>,
173
+ ...SwitchProps,
174
+ }): React.Node {
169
175
  const {
170
176
  disabled,
171
177
  ios_backgroundColor,
@@ -285,6 +291,6 @@ const Switch: component(
285
291
  />
286
292
  );
287
293
  }
288
- });
294
+ };
289
295
 
290
296
  export default Switch;
@@ -4,8 +4,8 @@
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
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  export * from '../../../src/private/specs_DEPRECATED/components/SwitchNativeComponent';
@@ -10,11 +10,7 @@
10
10
 
11
11
  import type {HostComponent} from '../../../src/private/types/HostComponent';
12
12
  import type {PartialViewConfig} from '../../Renderer/shims/ReactNativeTypes';
13
- import type {
14
- ColorValue,
15
- TextStyleProp,
16
- ViewStyleProp,
17
- } from '../../StyleSheet/StyleSheet';
13
+ import type {ColorValue, TextStyleProp} from '../../StyleSheet/StyleSheet';
18
14
  import type {
19
15
  BubblingEventHandler,
20
16
  DirectEventHandler,
@@ -621,24 +617,12 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
621
617
  export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
622
618
  uiViewClassName: 'AndroidTextInput',
623
619
  bubblingEventTypes: {
624
- topBlur: {
625
- phasedRegistrationNames: {
626
- bubbled: 'onBlur',
627
- captured: 'onBlurCapture',
628
- },
629
- },
630
620
  topEndEditing: {
631
621
  phasedRegistrationNames: {
632
622
  bubbled: 'onEndEditing',
633
623
  captured: 'onEndEditingCapture',
634
624
  },
635
625
  },
636
- topFocus: {
637
- phasedRegistrationNames: {
638
- bubbled: 'onFocus',
639
- captured: 'onFocusCapture',
640
- },
641
- },
642
626
  topKeyPress: {
643
627
  phasedRegistrationNames: {
644
628
  bubbled: 'onKeyPress',
@@ -4,8 +4,8 @@
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
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  export * from '../../../src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent';
@@ -14,7 +14,7 @@ import {ConditionallyIgnoredEventHandlers} from '../../NativeComponent/ViewConfi
14
14
 
15
15
  type PartialViewConfigWithoutName = Omit<PartialViewConfig, 'uiViewClassName'>;
16
16
 
17
- const RCTTextInputViewConfig = {
17
+ const RCTTextInputViewConfig: PartialViewConfigWithoutName = {
18
18
  bubblingEventTypes: {
19
19
  topBlur: {
20
20
  phasedRegistrationNames: {
@@ -17,6 +17,8 @@ import {
17
17
  import {ColorValue, StyleProp} from '../../StyleSheet/StyleSheet';
18
18
  import {TextStyle} from '../../StyleSheet/StyleSheetTypes';
19
19
  import {
20
+ BlurEvent,
21
+ FocusEvent,
20
22
  NativeSyntheticEvent,
21
23
  NativeTouchEvent,
22
24
  TargetedEvent,
@@ -455,7 +457,7 @@ export interface TextInputAndroidProps {
455
457
  }
456
458
 
457
459
  /**
458
- * @deprecated Use `TextInputFocusEvent` instead
460
+ * @deprecated Use `FocusEvent` instead
459
461
  */
460
462
  export interface TextInputFocusEventData extends TargetedEvent {
461
463
  text: string;
@@ -464,6 +466,7 @@ export interface TextInputFocusEventData extends TargetedEvent {
464
466
 
465
467
  /**
466
468
  * @see TextInputProps.onFocus
469
+ * @deprecated Use `FocusEvent` instead
467
470
  */
468
471
  export type TextInputFocusEvent = NativeSyntheticEvent<TextInputFocusEventData>;
469
472
 
@@ -809,8 +812,11 @@ export interface TextInputProps
809
812
 
810
813
  /**
811
814
  * Callback that is called when the text input is blurred
815
+ *
816
+ * Note: If you are trying to find the last value of TextInput, you can use the `onEndEditing`
817
+ * event, which is fired upon completion of editing.
812
818
  */
813
- onBlur?: ((e: TextInputFocusEvent) => void) | undefined;
819
+ onBlur?: ((e: BlurEvent) => void) | undefined;
814
820
 
815
821
  /**
816
822
  * Callback that is called when the text input's text changes.
@@ -859,7 +865,7 @@ export interface TextInputProps
859
865
  /**
860
866
  * Callback that is called when the text input is focused
861
867
  */
862
- onFocus?: ((e: TextInputFocusEvent) => void) | undefined;
868
+ onFocus?: ((e: FocusEvent) => void) | undefined;
863
869
 
864
870
  /**
865
871
  * Callback that is called when the text input selection is changed.
@@ -10,17 +10,15 @@
10
10
 
11
11
  import type {HostInstance} from '../../../src/private/types/HostInstance';
12
12
  import type {
13
+ BlurEvent,
14
+ FocusEvent,
13
15
  GestureResponderEvent,
14
16
  NativeSyntheticEvent,
15
17
  ScrollEvent,
16
18
  } from '../../Types/CoreEventTypes';
17
19
  import type {ViewProps} from '../View/ViewPropTypes';
18
20
 
19
- import {
20
- type ColorValue,
21
- type TextStyleProp,
22
- type ViewStyleProp,
23
- } from '../../StyleSheet/StyleSheet';
21
+ import {type ColorValue, type TextStyleProp} from '../../StyleSheet/StyleSheet';
24
22
  import * as React from 'react';
25
23
 
26
24
  /**
@@ -62,22 +60,22 @@ type TextInputContentSizeChangeEventData = $ReadOnly<{
62
60
  export type TextInputContentSizeChangeEvent =
63
61
  NativeSyntheticEvent<TextInputContentSizeChangeEventData>;
64
62
 
65
- type TargetEvent = $ReadOnly<{
66
- target: number,
67
- ...
68
- }>;
69
-
70
- type TextInputFocusEventData = TargetEvent;
71
-
72
63
  /**
73
64
  * @see TextInputProps.onBlur
65
+ * @deprecated Use `BlurEvent` instead.
74
66
  */
75
- export type TextInputBlurEvent = NativeSyntheticEvent<TextInputFocusEventData>;
67
+ export type TextInputBlurEvent = BlurEvent;
76
68
 
77
69
  /**
78
70
  * @see TextInputProps.onFocus
71
+ * @deprecated Use `FocusEvent` instead.
79
72
  */
80
- export type TextInputFocusEvent = NativeSyntheticEvent<TextInputFocusEventData>;
73
+ export type TextInputFocusEvent = FocusEvent;
74
+
75
+ type TargetEvent = $ReadOnly<{
76
+ target: number,
77
+ ...
78
+ }>;
81
79
 
82
80
  export type Selection = $ReadOnly<{
83
81
  start: number,
@@ -10,17 +10,15 @@
10
10
 
11
11
  import type {HostInstance} from '../../../src/private/types/HostInstance';
12
12
  import type {
13
+ BlurEvent,
14
+ FocusEvent,
13
15
  GestureResponderEvent,
14
16
  NativeSyntheticEvent,
15
17
  ScrollEvent,
16
18
  } from '../../Types/CoreEventTypes';
17
19
  import type {ViewProps} from '../View/ViewPropTypes';
18
20
 
19
- import {
20
- type ColorValue,
21
- type TextStyleProp,
22
- type ViewStyleProp,
23
- } from '../../StyleSheet/StyleSheet';
21
+ import {type ColorValue, type TextStyleProp} from '../../StyleSheet/StyleSheet';
24
22
  import * as React from 'react';
25
23
 
26
24
  /**
@@ -62,22 +60,22 @@ type TextInputContentSizeChangeEventData = $ReadOnly<{
62
60
  export type TextInputContentSizeChangeEvent =
63
61
  NativeSyntheticEvent<TextInputContentSizeChangeEventData>;
64
62
 
65
- type TargetEvent = $ReadOnly<{
66
- target: number,
67
- ...
68
- }>;
69
-
70
- type TextInputFocusEventData = TargetEvent;
71
-
72
63
  /**
73
64
  * @see TextInputProps.onBlur
65
+ * @deprecated Use `BlurEvent` instead.
74
66
  */
75
- export type TextInputBlurEvent = NativeSyntheticEvent<TextInputFocusEventData>;
67
+ export type TextInputBlurEvent = BlurEvent;
76
68
 
77
69
  /**
78
70
  * @see TextInputProps.onFocus
71
+ * @deprecated Use `FocusEvent` instead.
79
72
  */
80
- export type TextInputFocusEvent = NativeSyntheticEvent<TextInputFocusEventData>;
73
+ export type TextInputFocusEvent = FocusEvent;
74
+
75
+ type TargetEvent = $ReadOnly<{
76
+ target: number,
77
+ ...
78
+ }>;
81
79
 
82
80
  export type Selection = $ReadOnly<{
83
81
  start: number,
@@ -11,6 +11,8 @@
11
11
  import type {HostInstance} from '../../../src/private/types/HostInstance';
12
12
  import type {____TextStyle_Internal as TextStyleInternal} from '../../StyleSheet/StyleSheetTypes';
13
13
  import type {
14
+ BlurEvent,
15
+ FocusEvent,
14
16
  GestureResponderEvent,
15
17
  ScrollEvent,
16
18
  } from '../../Types/CoreEventTypes';
@@ -60,7 +62,7 @@ import TextInputState from './TextInputState';
60
62
  import invariant from 'invariant';
61
63
  import nullthrows from 'nullthrows';
62
64
  import * as React from 'react';
63
- import {useCallback, useLayoutEffect, useRef, useState} from 'react';
65
+ import {useCallback, useLayoutEffect, useMemo, useRef, useState} from 'react';
64
66
 
65
67
  let AndroidTextInput;
66
68
  let AndroidTextInputCommands;
@@ -86,10 +88,12 @@ if (Platform.OS === 'android') {
86
88
 
87
89
  export type {
88
90
  AutoCapitalize,
91
+ BlurEvent,
89
92
  EnterKeyHintType,
90
93
  EnterKeyHintTypeAndroid,
91
94
  EnterKeyHintTypeIOS,
92
95
  EnterKeyHintTypeOptions,
96
+ FocusEvent,
93
97
  InputModeOptions,
94
98
  KeyboardType,
95
99
  KeyboardTypeAndroid,
@@ -520,14 +524,14 @@ function InternalTextInput(props: TextInputProps): React.Node {
520
524
  });
521
525
  };
522
526
 
523
- const _onFocus = (event: TextInputFocusEvent) => {
527
+ const _onFocus = (event: FocusEvent) => {
524
528
  TextInputState.focusInput(inputRef.current);
525
529
  if (props.onFocus) {
526
530
  props.onFocus(event);
527
531
  }
528
532
  };
529
533
 
530
- const _onBlur = (event: TextInputBlurEvent) => {
534
+ const _onBlur = (event: BlurEvent) => {
531
535
  TextInputState.blurInput(inputRef.current);
532
536
  if (props.onBlur) {
533
537
  props.onBlur(event);
@@ -578,7 +582,7 @@ function InternalTextInput(props: TextInputProps): React.Node {
578
582
  rejectResponderTermination,
579
583
  } = props;
580
584
 
581
- const config = React.useMemo(
585
+ const config = useMemo(
582
586
  () => ({
583
587
  hitSlop,
584
588
  onPress: (event: GestureResponderEvent) => {
@@ -784,7 +788,7 @@ const enterKeyHintToReturnTypeMap = {
784
788
  previous: 'previous',
785
789
  search: 'search',
786
790
  send: 'send',
787
- };
791
+ } as const;
788
792
 
789
793
  const inputModeToKeyboardTypeMap = {
790
794
  none: 'default',
@@ -792,10 +796,11 @@ const inputModeToKeyboardTypeMap = {
792
796
  decimal: 'decimal-pad',
793
797
  numeric: 'number-pad',
794
798
  tel: 'phone-pad',
795
- search: Platform.OS === 'ios' ? 'web-search' : 'default',
799
+ search:
800
+ Platform.OS === 'ios' ? ('web-search' as const) : ('default' as const),
796
801
  email: 'email-address',
797
802
  url: 'url',
798
- };
803
+ } as const;
799
804
 
800
805
  // Map HTML autocomplete values to Android autoComplete values
801
806
  const autoCompleteWebToAutoCompleteAndroidMap = {
@@ -829,7 +834,7 @@ const autoCompleteWebToAutoCompleteAndroidMap = {
829
834
  'tel-country-code': 'tel-country-code',
830
835
  'tel-national': 'tel-national',
831
836
  username: 'username',
832
- };
837
+ } as const;
833
838
 
834
839
  // Map HTML autocomplete values to iOS textContentType values
835
840
  const autoCompleteWebToTextContentTypeMap = {
@@ -869,29 +874,30 @@ const autoCompleteWebToTextContentTypeMap = {
869
874
  tel: 'telephoneNumber',
870
875
  url: 'URL',
871
876
  username: 'username',
872
- };
877
+ } as const;
873
878
 
874
- const ExportedForwardRef: component(
879
+ const TextInput: component(
875
880
  ref?: React.RefSetter<TextInputInstance>,
876
881
  ...props: React.ElementConfig<typeof InternalTextInput>
877
- ) = React.forwardRef(function TextInput(
878
- {
879
- allowFontScaling = true,
880
- rejectResponderTermination = true,
881
- underlineColorAndroid = 'transparent',
882
- autoComplete,
883
- textContentType,
884
- readOnly,
885
- editable,
886
- enterKeyHint,
887
- returnKeyType,
888
- inputMode,
889
- showSoftInputOnFocus,
890
- keyboardType,
891
- ...restProps
892
- },
893
- forwardedRef: React.RefSetter<TextInputInstance>,
894
- ) {
882
+ ) = function TextInput({
883
+ ref: forwardedRef,
884
+ allowFontScaling = true,
885
+ rejectResponderTermination = true,
886
+ underlineColorAndroid = 'transparent',
887
+ autoComplete,
888
+ textContentType,
889
+ readOnly,
890
+ editable,
891
+ enterKeyHint,
892
+ returnKeyType,
893
+ inputMode,
894
+ showSoftInputOnFocus,
895
+ keyboardType,
896
+ ...restProps
897
+ }: {
898
+ ref?: React.RefSetter<TextInputInstance>,
899
+ ...React.ElementConfig<typeof InternalTextInput>,
900
+ }) {
895
901
  return (
896
902
  <InternalTextInput
897
903
  allowFontScaling={allowFontScaling}
@@ -921,8 +927,7 @@ const ExportedForwardRef: component(
921
927
  : Platform.OS === 'ios' &&
922
928
  autoComplete &&
923
929
  autoComplete in autoCompleteWebToTextContentTypeMap
924
- ? // $FlowFixMe[invalid-computed-prop]
925
- // $FlowFixMe[prop-missing]
930
+ ? // $FlowFixMe[prop-missing]
926
931
  autoCompleteWebToTextContentTypeMap[autoComplete]
927
932
  : textContentType
928
933
  }
@@ -930,12 +935,12 @@ const ExportedForwardRef: component(
930
935
  forwardedRef={forwardedRef}
931
936
  />
932
937
  );
933
- });
938
+ };
934
939
 
935
- ExportedForwardRef.displayName = 'TextInput';
940
+ TextInput.displayName = 'TextInput';
936
941
 
937
942
  // $FlowFixMe[prop-missing]
938
- ExportedForwardRef.State = {
943
+ TextInput.State = {
939
944
  currentlyFocusedInput: TextInputState.currentlyFocusedInput,
940
945
 
941
946
  currentlyFocusedField: TextInputState.currentlyFocusedField,
@@ -961,7 +966,7 @@ const verticalAlignToTextAlignVerticalMap = {
961
966
  top: 'top',
962
967
  bottom: 'bottom',
963
968
  middle: 'center',
964
- };
969
+ } as const;
965
970
 
966
971
  // $FlowFixMe[unclear-type] Unclear type. Using `any` type is not safe.
967
- export default ExportedForwardRef as any as TextInputType;
972
+ export default TextInput as any as TextInputType;