@office-iss/react-native-win32 0.0.0-canary.284 → 0.0.0-canary.286

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 (473) hide show
  1. package/.flowconfig +1 -1
  2. package/CHANGELOG.json +55 -1
  3. package/CHANGELOG.md +28 -8
  4. package/IntegrationTests/LayoutEventsTest.js +16 -11
  5. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +38 -17
  6. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -2
  7. package/Libraries/Alert/Alert.js +32 -9
  8. package/Libraries/Alert/Alert.win32.js +31 -8
  9. package/Libraries/Alert/NativeAlertManager.js +2 -2
  10. package/Libraries/Animated/NativeAnimatedModule.js +2 -2
  11. package/Libraries/Animated/NativeAnimatedTurboModule.js +2 -2
  12. package/Libraries/Animated/animations/Animation.js +1 -4
  13. package/Libraries/Animated/createAnimatedComponent.js +3 -3
  14. package/Libraries/Animated/nodes/AnimatedObject.js +1 -0
  15. package/Libraries/Animated/useAnimatedProps.js +4 -294
  16. package/Libraries/AppState/AppState.js +24 -7
  17. package/Libraries/AppState/NativeAppState.js +2 -2
  18. package/Libraries/BatchedBridge/MessageQueue.js +3 -2
  19. package/Libraries/BatchedBridge/NativeModules.js +2 -1
  20. package/Libraries/Blob/Blob.js +1 -1
  21. package/Libraries/Blob/FileReader.js +8 -174
  22. package/Libraries/Blob/FileReader_new.js +231 -0
  23. package/Libraries/Blob/FileReader_old.js +186 -0
  24. package/Libraries/Blob/NativeBlobModule.js +2 -2
  25. package/Libraries/Blob/NativeFileReaderModule.js +2 -2
  26. package/Libraries/Blob/URL.js +1 -1
  27. package/Libraries/Blob/URLSearchParams.js +9 -10
  28. package/Libraries/BugReporting/NativeBugReporting.js +2 -2
  29. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +2 -2
  30. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +2 -2
  31. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +2 -2
  32. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -2
  33. package/Libraries/Components/Button.js +3 -3
  34. package/Libraries/Components/Button.win32.js +3 -6
  35. package/Libraries/Components/Clipboard/NativeClipboard.js +2 -2
  36. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -2
  37. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +2 -1
  38. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +14 -18
  39. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +2 -2
  40. package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
  41. package/Libraries/Components/Pressable/Pressable.js +9 -9
  42. package/Libraries/Components/Pressable/Pressable.win32.js +9 -9
  43. package/Libraries/Components/Pressable/useAndroidRippleForView.js +7 -7
  44. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +7 -1
  45. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
  46. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  47. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -2
  48. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  49. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -2
  50. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
  51. package/Libraries/Components/ScrollView/ScrollView.js +74 -59
  52. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +5 -5
  53. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +5 -2
  54. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -3
  55. package/Libraries/Components/Sound/NativeSoundManager.js +2 -2
  56. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +2 -2
  57. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +2 -2
  58. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -2
  59. package/Libraries/Components/Switch/Switch.js +2 -2
  60. package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -2
  61. package/Libraries/Components/TextInput/InputAccessoryView.js +4 -2
  62. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -2
  63. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +4 -2
  64. package/Libraries/Components/TextInput/TextInput.flow.js +106 -94
  65. package/Libraries/Components/TextInput/TextInput.js +112 -103
  66. package/Libraries/Components/TextInput/TextInput.win32.js +114 -105
  67. package/Libraries/Components/TextInput/TextInputState.js +4 -2
  68. package/Libraries/Components/TextInput/TextInputState.win32.js +4 -2
  69. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +2 -2
  70. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
  71. package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
  72. package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +1 -1
  73. package/Libraries/Components/Touchable/BoundingDimensions.js +1 -1
  74. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  75. package/Libraries/Components/Touchable/Position.js +1 -1
  76. package/Libraries/Components/Touchable/Touchable.js +16 -16
  77. package/Libraries/Components/Touchable/Touchable.win32.js +16 -16
  78. package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
  79. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  80. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +3 -3
  81. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +1 -1
  82. package/Libraries/Components/Touchable/TouchableOpacity.js +1 -1
  83. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +9 -9
  84. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -2
  85. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +2 -2
  86. package/Libraries/Components/View/ReactNativeStyleAttributes.js +17 -3
  87. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -1
  88. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -1
  89. package/Libraries/Components/View/View.js +1 -1
  90. package/Libraries/Components/View/View.win32.js +1 -1
  91. package/Libraries/Components/View/ViewAccessibility.js +243 -3
  92. package/Libraries/Components/View/ViewAccessibility.win32.js +243 -3
  93. package/Libraries/Components/View/ViewPropTypes.d.ts +14 -14
  94. package/Libraries/Components/View/ViewPropTypes.js +35 -226
  95. package/Libraries/Components/View/ViewPropTypes.win32.js +37 -229
  96. package/Libraries/Core/Devtools/getDevServer.js +1 -3
  97. package/Libraries/Core/Devtools/loadBundleFromServer.js +4 -2
  98. package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +4 -2
  99. package/Libraries/Core/Devtools/openFileInEditor.js +2 -4
  100. package/Libraries/Core/Devtools/openURLInBrowser.js +5 -4
  101. package/Libraries/Core/Devtools/parseErrorStack.js +4 -4
  102. package/Libraries/Core/Devtools/parseHermesStack.js +2 -2
  103. package/Libraries/Core/Devtools/symbolicateStackTrace.js +6 -5
  104. package/Libraries/Core/ExceptionsManager.js +6 -4
  105. package/Libraries/Core/InitializeCore.js +7 -3
  106. package/Libraries/Core/NativeExceptionsManager.js +2 -2
  107. package/Libraries/Core/ReactFiberErrorDialog.js +2 -2
  108. package/Libraries/Core/ReactNativeVersion.js +1 -1
  109. package/Libraries/Core/ReactNativeVersionCheck.js +2 -4
  110. package/Libraries/Core/ReactNativeVersionCheck.win32.js +2 -4
  111. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +2 -2
  112. package/Libraries/Core/Timers/JSTimers.js +7 -5
  113. package/Libraries/Core/Timers/NativeTiming.js +2 -2
  114. package/Libraries/Core/Timers/immediateShim.js +2 -9
  115. package/Libraries/Core/setUpBatchedBridge.js +13 -8
  116. package/Libraries/Core/setUpDeveloperTools.js +5 -36
  117. package/Libraries/Core/setUpErrorHandling.js +1 -6
  118. package/Libraries/Core/setUpReactDevTools.js +23 -5
  119. package/Libraries/Core/setUpReactRefresh.js +1 -1
  120. package/Libraries/Core/setUpTimers.js +17 -17
  121. package/Libraries/Core/setUpXHR.js +6 -3
  122. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -2
  123. package/Libraries/EventEmitter/NativeEventEmitter.js +8 -2
  124. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +5 -4
  125. package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
  126. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
  127. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -2
  128. package/Libraries/Events/CustomEvent.js +1 -1
  129. package/Libraries/Events/EventPolyfill.js +2 -2
  130. package/Libraries/Image/AssetRegistry.js +3 -1
  131. package/Libraries/Image/AssetSourceResolver.js +2 -2
  132. package/Libraries/Image/Image.android.js +3 -1
  133. package/Libraries/Image/Image.ios.js +1 -1
  134. package/Libraries/Image/Image.win32.js +1 -1
  135. package/Libraries/Image/ImageBackground.js +1 -1
  136. package/Libraries/Image/ImageProps.js +8 -5
  137. package/Libraries/Image/ImageViewNativeComponent.js +5 -6
  138. package/Libraries/Image/NativeImageEditor.js +2 -2
  139. package/Libraries/Image/NativeImageLoaderAndroid.js +2 -2
  140. package/Libraries/Image/NativeImageLoaderIOS.js +2 -2
  141. package/Libraries/Image/NativeImageLoaderWin32.js +2 -2
  142. package/Libraries/Image/NativeImageStoreAndroid.js +2 -2
  143. package/Libraries/Image/NativeImageStoreIOS.js +2 -2
  144. package/Libraries/Image/RelativeImageStub.js +3 -1
  145. package/Libraries/Image/nativeImageSource.js +1 -1
  146. package/Libraries/Image/resolveAssetSource.js +4 -2
  147. package/Libraries/Image/resolveAssetSource.win32.js +1 -1
  148. package/Libraries/Interaction/FrameRateLogger.js +1 -1
  149. package/Libraries/Interaction/InteractionManager.js +9 -7
  150. package/Libraries/Interaction/InteractionManagerStub.js +10 -2
  151. package/Libraries/Interaction/JSEventLoopWatchdog.js +2 -2
  152. package/Libraries/Interaction/NativeFrameRateLogger.js +2 -2
  153. package/Libraries/Interaction/PanResponder.js +34 -31
  154. package/Libraries/Interaction/TaskQueue.js +2 -2
  155. package/Libraries/Interaction/TouchHistoryMath.js +1 -1
  156. package/Libraries/LayoutAnimation/LayoutAnimation.js +20 -6
  157. package/Libraries/Linking/Linking.d.ts +3 -3
  158. package/Libraries/Linking/Linking.js +10 -8
  159. package/Libraries/Linking/NativeIntentAndroid.js +2 -2
  160. package/Libraries/Linking/NativeLinkingManager.js +2 -2
  161. package/Libraries/Lists/FillRateHelper.js +4 -4
  162. package/Libraries/Lists/FlatList.js +14 -14
  163. package/Libraries/Lists/SectionList.js +3 -1
  164. package/Libraries/Lists/SectionListModern.js +3 -1
  165. package/Libraries/Lists/ViewabilityHelper.js +4 -3
  166. package/Libraries/Lists/VirtualizeUtils.js +3 -5
  167. package/Libraries/Lists/VirtualizedList.js +6 -6
  168. package/Libraries/Lists/VirtualizedListContext.js +5 -5
  169. package/Libraries/Lists/VirtualizedSectionList.js +5 -3
  170. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -1
  171. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  172. package/Libraries/LogBox/LogBox.js +9 -1
  173. package/Libraries/LogBox/UI/AnsiHighlight.js +7 -3
  174. package/Libraries/LogBox/UI/LogBoxButton.js +4 -2
  175. package/Libraries/LogBox/UI/LogBoxInspector.js +1 -1
  176. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +11 -3
  177. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +2 -0
  178. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +8 -2
  179. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +8 -2
  180. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +2 -0
  181. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +4 -2
  182. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +3 -1
  183. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +3 -1
  184. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +2 -2
  185. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +5 -3
  186. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +5 -3
  187. package/Libraries/LogBox/UI/LogBoxNotification.js +6 -2
  188. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +3 -1
  189. package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +2 -0
  190. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +4 -1
  191. package/Libraries/Modal/Modal.js +77 -84
  192. package/Libraries/Modal/NativeModalManager.js +2 -2
  193. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -2
  194. package/Libraries/NativeComponent/BaseViewConfig.android.js +16 -6
  195. package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -9
  196. package/Libraries/NativeComponent/BaseViewConfig.win32.js +19 -9
  197. package/Libraries/NativeComponent/StaticViewConfigValidator.js +5 -1
  198. package/Libraries/NativeModules/specs/NativeDevMenu.js +2 -2
  199. package/Libraries/NativeModules/specs/NativeDevSettings.js +2 -2
  200. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +2 -2
  201. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +2 -2
  202. package/Libraries/NativeModules/specs/NativeLogBox.js +2 -2
  203. package/Libraries/NativeModules/specs/NativeRedBox.js +2 -2
  204. package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -2
  205. package/Libraries/Network/FormData.js +1 -1
  206. package/Libraries/Network/NativeNetworkingAndroid.js +2 -2
  207. package/Libraries/Network/NativeNetworkingIOS.js +2 -2
  208. package/Libraries/Network/RCTNetworking.android.js +1 -1
  209. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  210. package/Libraries/Network/RCTNetworking.win32.js +1 -1
  211. package/Libraries/Network/XMLHttpRequest.js +10 -685
  212. package/Libraries/Network/XMLHttpRequest_new.js +791 -0
  213. package/Libraries/Network/XMLHttpRequest_old.js +698 -0
  214. package/Libraries/Network/convertRequestBody.js +4 -3
  215. package/Libraries/Network/fetch.js +4 -3
  216. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -2
  217. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +63 -61
  218. package/Libraries/Pressability/Pressability.js +23 -23
  219. package/Libraries/Pressability/Pressability.win32.js +23 -23
  220. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +2 -2
  221. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +119 -16
  222. package/Libraries/ReactNative/AppContainer-dev.js +4 -3
  223. package/Libraries/ReactNative/AppContainer.js +1 -1
  224. package/Libraries/ReactNative/AppRegistry.js +4 -4
  225. package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
  226. package/Libraries/ReactNative/FabricUIManager.js +18 -8
  227. package/Libraries/ReactNative/I18nManager.js +1 -1
  228. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +2 -2
  229. package/Libraries/ReactNative/NativeI18nManager.js +2 -2
  230. package/Libraries/ReactNative/NativeUIManager.js +2 -2
  231. package/Libraries/ReactNative/PaperUIManager.js +5 -5
  232. package/Libraries/ReactNative/PaperUIManager.win32.js +5 -5
  233. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +85 -30
  234. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +1 -1
  235. package/Libraries/ReactNative/ReactNativeRuntimeDiagnostics.js +1 -1
  236. package/Libraries/ReactNative/RendererImplementation.js +9 -0
  237. package/Libraries/ReactNative/RootTag.js +1 -1
  238. package/Libraries/ReactNative/UIManager.d.ts +1 -0
  239. package/Libraries/ReactNative/UIManager.js +3 -3
  240. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  241. package/Libraries/ReactNative/getNativeComponentAttributes.js +10 -9
  242. package/Libraries/ReactNative/requireNativeComponent.js +2 -1
  243. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +15 -8
  244. package/Libraries/Renderer/shims/ReactNativeTypes.js +4 -1
  245. package/Libraries/Settings/NativeSettingsManager.js +2 -2
  246. package/Libraries/Settings/Settings.ios.js +1 -1
  247. package/Libraries/Settings/Settings.js +3 -3
  248. package/Libraries/Settings/Settings.win32.js +3 -3
  249. package/Libraries/Share/NativeShareModule.js +2 -2
  250. package/Libraries/Share/Share.js +11 -4
  251. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  252. package/Libraries/StyleSheet/StyleSheet.js +3 -2
  253. package/Libraries/StyleSheet/StyleSheet.win32.js +4 -3
  254. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +1 -1
  255. package/Libraries/StyleSheet/flattenStyle.js +1 -1
  256. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  257. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  258. package/Libraries/StyleSheet/processBoxShadow.js +4 -0
  259. package/Libraries/StyleSheet/processColor.js +2 -2
  260. package/Libraries/StyleSheet/processColorArray.js +1 -1
  261. package/Libraries/StyleSheet/processFilter.js +4 -0
  262. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  263. package/Libraries/StyleSheet/processTransform.js +1 -1
  264. package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
  265. package/Libraries/Text/Text.js +16 -16
  266. package/Libraries/Text/Text.win32.js +16 -16
  267. package/Libraries/Text/TextAncestor.js +2 -2
  268. package/Libraries/Text/TextNativeComponent.js +2 -2
  269. package/Libraries/Text/TextNativeComponent.win32.js +2 -2
  270. package/Libraries/Text/TextProps.js +11 -11
  271. package/Libraries/Text/TextProps.win32.js +11 -11
  272. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +2 -2
  273. package/Libraries/Types/CodegenTypes.js +3 -3
  274. package/Libraries/Types/CoreEventTypes.js +103 -70
  275. package/Libraries/Types/CoreEventTypes.win32.js +115 -77
  276. package/Libraries/UTFSequence.js +2 -1
  277. package/Libraries/Utilities/Appearance.js +0 -8
  278. package/Libraries/Utilities/BackHandler.android.js +1 -1
  279. package/Libraries/Utilities/BackHandler.ios.js +5 -5
  280. package/Libraries/Utilities/BackHandler.win32.js +1 -1
  281. package/Libraries/Utilities/DevLoadingView.js +1 -1
  282. package/Libraries/Utilities/DevSettings.js +1 -1
  283. package/Libraries/Utilities/DeviceInfo.js +1 -1
  284. package/Libraries/Utilities/DeviceInfo.win32.js +1 -1
  285. package/Libraries/Utilities/FeatureDetection.js +2 -4
  286. package/Libraries/Utilities/FocusManager.win32.js +3 -3
  287. package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -1
  288. package/Libraries/Utilities/HMRClient.js +5 -33
  289. package/Libraries/Utilities/HMRClientProdShim.js +1 -2
  290. package/Libraries/Utilities/NativeAppearance.js +2 -2
  291. package/Libraries/Utilities/NativeDevLoadingView.js +2 -2
  292. package/Libraries/Utilities/NativeDeviceInfo.js +2 -2
  293. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +2 -2
  294. package/Libraries/Utilities/NativePlatformConstantsIOS.js +2 -2
  295. package/Libraries/Utilities/NativePlatformConstantsWin.js +2 -2
  296. package/Libraries/Utilities/Platform.android.js +2 -2
  297. package/Libraries/Utilities/Platform.ios.js +2 -2
  298. package/Libraries/Utilities/Platform.win32.js +2 -2
  299. package/Libraries/Utilities/{Platform.flow.win32.js → PlatformTypes.js} +1 -0
  300. package/Libraries/Utilities/PolyfillFunctions.js +3 -5
  301. package/Libraries/Utilities/RCTLog.js +1 -1
  302. package/Libraries/Utilities/ReactNativeTestTools.js +4 -5
  303. package/Libraries/Utilities/SceneTracker.js +1 -1
  304. package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +2 -2
  305. package/Libraries/Utilities/binaryToBase64.js +1 -1
  306. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -1
  307. package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
  308. package/Libraries/Utilities/differ/deepDiffer.js +3 -3
  309. package/Libraries/Utilities/differ/insetsDiffer.js +3 -3
  310. package/Libraries/Utilities/differ/matricesDiffer.js +3 -6
  311. package/Libraries/Utilities/differ/pointsDiffer.js +3 -3
  312. package/Libraries/Utilities/differ/sizesDiffer.js +3 -3
  313. package/Libraries/Utilities/dismissKeyboard.js +3 -2
  314. package/Libraries/Utilities/infoLog.js +1 -1
  315. package/Libraries/Utilities/logError.js +1 -1
  316. package/Libraries/Utilities/mapWithSeparator.js +1 -1
  317. package/Libraries/Utilities/warnOnce.js +1 -1
  318. package/Libraries/Vibration/NativeVibration.js +2 -2
  319. package/Libraries/Vibration/Vibration.js +3 -3
  320. package/Libraries/WebSocket/NativeWebSocketModule.js +2 -2
  321. package/Libraries/WebSocket/WebSocket.js +8 -285
  322. package/Libraries/WebSocket/WebSocketEvent.js +1 -1
  323. package/Libraries/WebSocket/WebSocketInterceptor.js +39 -11
  324. package/Libraries/WebSocket/WebSocket_new.js +325 -0
  325. package/Libraries/WebSocket/WebSocket_old.js +297 -0
  326. package/Libraries/WebSocket/__mocks__/event-target-shim.js +1 -1
  327. package/Libraries/vendor/emitter/EventEmitter.js +21 -9
  328. package/index.js +138 -225
  329. package/index.win32.js +46 -39
  330. package/jest/mockScrollView.js +1 -1
  331. package/jest/setup.js +100 -67
  332. package/overrides.json +54 -65
  333. package/package.json +19 -19
  334. package/src/private/animated/createAnimatedPropsHook.js +360 -0
  335. package/src/private/animated/{useAnimatedPropsMemo.js → createAnimatedPropsMemoHook.js} +84 -32
  336. package/src/private/components/HScrollViewNativeComponents.js +1 -1
  337. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +2 -2
  338. package/src/private/debugging/ReactDevToolsSettingsManager.android.js +1 -1
  339. package/src/private/debugging/ReactDevToolsSettingsManager.win32.js +1 -1
  340. package/src/private/devmenu/DevMenu.js +2 -2
  341. package/src/private/featureflags/ReactNativeFeatureFlags.js +39 -47
  342. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +5 -7
  343. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +6 -10
  344. package/{Libraries/Inspector → src/private/inspector}/BorderBox.js +3 -3
  345. package/{Libraries/Inspector → src/private/inspector}/BoxInspector.js +9 -6
  346. package/{Libraries/Inspector → src/private/inspector}/ElementBox.js +9 -8
  347. package/{Libraries/Inspector → src/private/inspector}/ElementProperties.js +16 -12
  348. package/{Libraries/Inspector → src/private/inspector}/Inspector.js +18 -15
  349. package/{Libraries/Inspector → src/private/inspector}/InspectorOverlay.js +7 -7
  350. package/{Libraries/Inspector → src/private/inspector}/InspectorPanel.js +12 -10
  351. package/{Libraries/Inspector → src/private/inspector}/NetworkOverlay.js +37 -22
  352. package/{Libraries/Inspector → src/private/inspector}/PerformanceOverlay.js +6 -5
  353. package/{Libraries/Inspector → src/private/inspector}/ReactDevToolsOverlay.js +11 -10
  354. package/{Libraries/Inspector → src/private/inspector}/StyleInspector.js +6 -6
  355. package/{Libraries/Network → src/private/inspector}/XHRInterceptor.js +5 -2
  356. package/{Libraries/Inspector → src/private/inspector}/getInspectorDataForViewAtPoint.js +5 -3
  357. package/{Libraries/Inspector → src/private/inspector}/resolveBoxStyle.js +3 -2
  358. package/src/private/renderer/errorhandling/ErrorHandlers.js +5 -5
  359. package/src/private/setup/setUpDOM.js +7 -2
  360. package/src/private/{specs → specs_DEPRECATED}/modules/NativeDevMenu.js +0 -1
  361. package/src/private/{specs → specs_DEPRECATED}/modules/NativeDevSettings.js +0 -1
  362. package/src/private/{specs → specs_DEPRECATED}/modules/NativeExceptionsManager.js +1 -1
  363. package/src/private/{specs → specs_DEPRECATED}/modules/NativePermissionsAndroid.js +5 -4
  364. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +184 -0
  365. package/src/private/webapis/dom/events/CustomEvent.js +38 -0
  366. package/src/private/webapis/dom/events/Event.js +236 -0
  367. package/src/private/webapis/dom/events/EventHandlerAttributes.js +130 -0
  368. package/src/private/webapis/dom/events/EventTarget.js +436 -0
  369. package/src/private/webapis/dom/events/internals/EventInternals.js +120 -0
  370. package/src/private/webapis/dom/events/internals/EventTargetInternals.js +52 -0
  371. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +120 -0
  372. package/src/private/webapis/dom/nodes/ReactNativeElement.js +48 -25
  373. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +6 -5
  374. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +25 -25
  375. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +55 -77
  376. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +144 -0
  377. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +55 -0
  378. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +44 -0
  379. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +305 -194
  380. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
  381. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  382. package/src/private/webapis/{dom/oldstylecollections → geometry}/DOMRectList.js +3 -3
  383. package/src/private/webapis/html/events/MessageEvent.js +56 -0
  384. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +1 -1
  385. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +12 -9
  386. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +4 -6
  387. package/src/private/webapis/websockets/events/CloseEvent.js +52 -0
  388. package/src/private/webapis/xhr/events/ProgressEvent.js +52 -0
  389. package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +14 -14
  390. package/types/index.d.ts +0 -5
  391. package/Libraries/Animated/AnimatedWeb.js +0 -44
  392. package/Libraries/Inspector/Inspector.win32.js +0 -212
  393. package/Libraries/Inspector/InspectorOverlay.win32.js +0 -68
  394. package/Libraries/JSInspector/InspectorAgent.js +0 -27
  395. package/Libraries/JSInspector/JSInspector.js +0 -33
  396. package/Libraries/JSInspector/NetworkAgent.js +0 -296
  397. package/Libraries/Utilities/DebugEnvironment.js +0 -16
  398. package/Libraries/Utilities/Platform.flow.js +0 -91
  399. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +0 -19
  400. package/Libraries/YellowBox/YellowBoxDeprecated.js +0 -76
  401. package/flow/react.js +0 -15
  402. package/src/private/specs/modules/NativeCPUTime.js +0 -24
  403. package/src/private/specs/modules/NativeFantom.js +0 -43
  404. package/src/private/specs/modules/NativeUIManager.js +0 -111
  405. /package/src/private/{specs → specs_DEPRECATED}/components/ActivityIndicatorViewNativeComponent.js +0 -0
  406. /package/src/private/{specs → specs_DEPRECATED}/components/AndroidDrawerLayoutNativeComponent.js +0 -0
  407. /package/src/private/{specs → specs_DEPRECATED}/components/AndroidHorizontalScrollContentViewNativeComponent.js +0 -0
  408. /package/src/private/{specs → specs_DEPRECATED}/components/AndroidSwipeRefreshLayoutNativeComponent.js +0 -0
  409. /package/src/private/{specs → specs_DEPRECATED}/components/AndroidSwitchNativeComponent.js +0 -0
  410. /package/src/private/{specs → specs_DEPRECATED}/components/DebuggingOverlayNativeComponent.js +0 -0
  411. /package/src/private/{specs → specs_DEPRECATED}/components/ProgressBarAndroidNativeComponent.js +0 -0
  412. /package/src/private/{specs → specs_DEPRECATED}/components/PullToRefreshViewNativeComponent.js +0 -0
  413. /package/src/private/{specs → specs_DEPRECATED}/components/RCTInputAccessoryViewNativeComponent.js +0 -0
  414. /package/src/private/{specs → specs_DEPRECATED}/components/RCTModalHostViewNativeComponent.js +0 -0
  415. /package/src/private/{specs → specs_DEPRECATED}/components/RCTSafeAreaViewNativeComponent.js +0 -0
  416. /package/src/private/{specs → specs_DEPRECATED}/components/SwitchNativeComponent.js +0 -0
  417. /package/src/private/{specs → specs_DEPRECATED}/components/UnimplementedNativeViewNativeComponent.js +0 -0
  418. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAccessibilityInfo.js +0 -0
  419. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAccessibilityInfoWin32.js +0 -0
  420. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAccessibilityManager.js +0 -0
  421. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeActionSheetManager.js +0 -0
  422. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAlertManager.js +0 -0
  423. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAnimatedModule.js +0 -0
  424. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAnimatedTurboModule.js +0 -0
  425. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAppState.js +0 -0
  426. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAppearance.js +0 -0
  427. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeBlobModule.js +0 -0
  428. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeBugReporting.js +0 -0
  429. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeClipboard.js +0 -0
  430. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeDevLoadingView.js +0 -0
  431. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeDeviceEventManager.js +0 -0
  432. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeDeviceInfo.js +0 -0
  433. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeDialogManagerAndroid.js +0 -0
  434. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeFileReaderModule.js +0 -0
  435. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeFrameRateLogger.js +0 -0
  436. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeHeadlessJsTaskSupport.js +0 -0
  437. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeI18nManager.js +0 -0
  438. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageEditor.js +0 -0
  439. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageLoaderAndroid.js +0 -0
  440. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageLoaderIOS.js +0 -0
  441. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageLoaderWin32.js +0 -0
  442. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageStoreAndroid.js +0 -0
  443. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageStoreIOS.js +0 -0
  444. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeIntentAndroid.js +0 -0
  445. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeJSCHeapCapture.js +0 -0
  446. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeKeyboardObserver.js +0 -0
  447. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeLinkingManager.js +0 -0
  448. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeLogBox.js +0 -0
  449. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeModalManager.js +0 -0
  450. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeNetworkingAndroid.js +0 -0
  451. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeNetworkingIOS.js +0 -0
  452. /package/src/private/{specs → specs_DEPRECATED}/modules/NativePlatformConstantsAndroid.js +0 -0
  453. /package/src/private/{specs → specs_DEPRECATED}/modules/NativePlatformConstantsIOS.js +0 -0
  454. /package/src/private/{specs → specs_DEPRECATED}/modules/NativePlatformConstantsWin.js +0 -0
  455. /package/src/private/{specs → specs_DEPRECATED}/modules/NativePushNotificationManagerIOS.js +0 -0
  456. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeReactDevToolsSettingsManager.js +0 -0
  457. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeRedBox.js +0 -0
  458. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeSampleTurboModule.js +0 -0
  459. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeSegmentFetcher.js +0 -0
  460. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeSettingsManager.js +0 -0
  461. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeShareModule.js +0 -0
  462. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeSoundManager.js +0 -0
  463. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeSourceCode.js +0 -0
  464. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeStatusBarManagerAndroid.js +0 -0
  465. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeStatusBarManagerIOS.js +0 -0
  466. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeTiming.js +0 -0
  467. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeToastAndroid.js +0 -0
  468. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeVibration.js +0 -0
  469. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeWebSocketModule.js +0 -0
  470. /package/src/private/webapis/dom/nodes/{utilities → internals}/Traversal.js +0 -0
  471. /package/src/private/webapis/{dom/geometry → geometry}/DOMRect.js +0 -0
  472. /package/src/private/webapis/{dom/geometry → geometry}/DOMRectReadOnly.js +0 -0
  473. /package/src/private/webapis/{dom/oldstylecollections → utils}/ArrayLikeUtils.js +0 -0
@@ -8,301 +8,11 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {EventSubscription} from '../EventEmitter/NativeEventEmitter';
12
- import type {AnimatedPropsAllowlist} from './nodes/AnimatedProps';
11
+ import type {AnimatedPropsHook} from '../../src/private/animated/createAnimatedPropsHook';
13
12
 
14
- import NativeAnimatedHelper from '../../src/private/animated/NativeAnimatedHelper';
15
- import {useAnimatedPropsMemo} from '../../src/private/animated/useAnimatedPropsMemo';
16
- import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
17
- import {isPublicInstance as isFabricPublicInstance} from '../ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils';
18
- import useRefEffect from '../Utilities/useRefEffect';
19
- import {AnimatedEvent} from './AnimatedEvent';
20
- import AnimatedNode from './nodes/AnimatedNode';
21
- import AnimatedProps from './nodes/AnimatedProps';
22
- import AnimatedValue from './nodes/AnimatedValue';
23
- import {
24
- useCallback,
25
- useEffect,
26
- useInsertionEffect,
27
- useReducer,
28
- useRef,
29
- } from 'react';
30
-
31
- type ReducedProps<TProps> = {
32
- ...TProps,
33
- collapsable: boolean,
34
- ...
35
- };
36
- type CallbackRef<T> = T => mixed;
37
-
38
- type UpdateCallback = () => void;
39
-
40
- type AnimatedValueListeners = Array<{
41
- propValue: AnimatedValue,
42
- listenerId: string,
43
- }>;
44
-
45
- export default function useAnimatedProps<TProps: {...}, TInstance>(
46
- props: TProps,
47
- allowlist?: ?AnimatedPropsAllowlist,
48
- ): [ReducedProps<TProps>, CallbackRef<TInstance | null>] {
49
- const [, scheduleUpdate] = useReducer<number, void>(count => count + 1, 0);
50
- const onUpdateRef = useRef<UpdateCallback | null>(null);
51
- const timerRef = useRef<TimeoutID | null>(null);
52
-
53
- const node = useAnimatedPropsMemo(
54
- () => new AnimatedProps(props, () => onUpdateRef.current?.(), allowlist),
55
- [allowlist, props],
56
- );
57
-
58
- const useNativePropsInFabric =
59
- ReactNativeFeatureFlags.shouldUseSetNativePropsInFabric();
60
-
61
- useAnimatedPropsLifecycle(node);
62
-
63
- // TODO: This "effect" does three things:
64
- //
65
- // 1) Call `setNativeView`.
66
- // 2) Update `onUpdateRef`.
67
- // 3) Update listeners for `AnimatedEvent` props.
68
- //
69
- // Ideally, each of these would be separate "effects" so that they are not
70
- // unnecessarily re-run when irrelevant dependencies change. For example, we
71
- // should be able to hoist all `AnimatedEvent` props and only do #3 if either
72
- // the `AnimatedEvent` props change or `instance` changes.
73
- //
74
- // But there is no way to transparently compose three separate callback refs,
75
- // so we just combine them all into one for now.
76
- const refEffect = useCallback(
77
- (instance: TInstance) => {
78
- // NOTE: This may be called more often than necessary (e.g. when `props`
79
- // changes), but `setNativeView` already optimizes for that.
80
- node.setNativeView(instance);
81
-
82
- // NOTE: When using the JS animation driver, this callback is called on
83
- // every animation frame. When using the native driver, this callback is
84
- // called when the animation completes.
85
- onUpdateRef.current = () => {
86
- if (process.env.NODE_ENV === 'test') {
87
- // Check 1: this is a test.
88
- // call `scheduleUpdate` to bypass use of setNativeProps.
89
- return scheduleUpdate();
90
- }
91
-
92
- const isFabricNode = isFabricInstance(instance);
93
- if (node.__isNative) {
94
- // Check 2: this is an animation driven by native.
95
- // In native driven animations, this callback is only called once the animation completes.
96
- if (isFabricNode) {
97
- // Call `scheduleUpdate` to synchronise Fiber and Shadow tree.
98
- // Must not be called in Paper.
99
- scheduleUpdate();
100
- }
101
- return;
102
- }
103
-
104
- if (
105
- typeof instance !== 'object' ||
106
- typeof instance?.setNativeProps !== 'function'
107
- ) {
108
- // Check 3: the instance does not support setNativeProps. Call `scheduleUpdate`.
109
- return scheduleUpdate();
110
- }
111
-
112
- if (!isFabricNode) {
113
- // Check 4: this is a paper instance, call setNativeProps.
114
- // $FlowIgnore[not-a-function] - Assume it's still a function.
115
- // $FlowFixMe[incompatible-use]
116
- return instance.setNativeProps(node.__getAnimatedValue());
117
- }
118
-
119
- if (!useNativePropsInFabric) {
120
- // Check 5: setNativeProps are disabled.
121
- return scheduleUpdate();
122
- }
123
-
124
- // This is a Fabric instance and setNativeProps is supported.
125
-
126
- // $FlowIgnore[not-a-function] - Assume it's still a function.
127
- // $FlowFixMe[incompatible-use]
128
- instance.setNativeProps(node.__getAnimatedValue());
129
-
130
- // Keeping state of Fiber tree and Shadow tree in sync.
131
- //
132
- // This is done by calling `scheduleUpdate` which will trigger a commit.
133
- // However, React commit is not fast enough to drive animations.
134
- // This is where setNativeProps comes in handy but the state between
135
- // Fiber tree and Shadow tree needs to be kept in sync.
136
- // The goal is to call `scheduleUpdate` as little as possible to maintain
137
- // performance but frequently enough to keep state in sync.
138
- // Debounce is set to 48ms, which is 3 * the duration of a frame.
139
- // 3 frames was the highest value where flickering state was not observed.
140
- if (timerRef.current != null) {
141
- clearTimeout(timerRef.current);
142
- }
143
- timerRef.current = setTimeout(() => {
144
- timerRef.current = null;
145
- scheduleUpdate();
146
- }, 48);
147
- };
148
-
149
- const target = getEventTarget(instance);
150
- const events = [];
151
- const animatedValueListeners: AnimatedValueListeners = [];
152
-
153
- for (const propName in props) {
154
- // $FlowFixMe[invalid-computed-prop]
155
- const propValue = props[propName];
156
- if (propValue instanceof AnimatedEvent && propValue.__isNative) {
157
- propValue.__attach(target, propName);
158
- events.push([propName, propValue]);
159
- // $FlowFixMe[incompatible-call] - the `addListenersToPropsValue` drills down the propValue.
160
- addListenersToPropsValue(propValue, animatedValueListeners);
161
- }
162
- }
163
-
164
- return () => {
165
- onUpdateRef.current = null;
166
-
167
- for (const [propName, propValue] of events) {
168
- propValue.__detach(target, propName);
169
- }
170
-
171
- for (const {propValue, listenerId} of animatedValueListeners) {
172
- propValue.removeListener(listenerId);
173
- }
174
- };
175
- },
176
- [node, useNativePropsInFabric, props],
177
- );
178
- const callbackRef = useRefEffect<TInstance>(refEffect);
179
-
180
- return [reduceAnimatedProps<TProps>(node, props), callbackRef];
181
- }
182
-
183
- function reduceAnimatedProps<TProps>(
184
- node: AnimatedProps,
185
- props: TProps,
186
- ): ReducedProps<TProps> {
187
- // Force `collapsable` to be false so that the native view is not flattened.
188
- // Flattened views cannot be accurately referenced by the native driver.
189
- return {
190
- ...node.__getValueWithStaticProps(props),
191
- collapsable: false,
192
- };
193
- }
194
-
195
- function addListenersToPropsValue(
196
- propValue: AnimatedValue,
197
- accumulator: AnimatedValueListeners,
198
- ) {
199
- // propValue can be a scalar value, an array or an object.
200
- if (propValue instanceof AnimatedValue) {
201
- const listenerId = propValue.addListener(() => {});
202
- accumulator.push({propValue, listenerId});
203
- } else if (Array.isArray(propValue)) {
204
- // An array can be an array of scalar values, arrays of arrays, or arrays of objects
205
- for (const prop of propValue) {
206
- addListenersToPropsValue(prop, accumulator);
207
- }
208
- } else if (propValue instanceof Object) {
209
- addAnimatedValuesListenersToProps(propValue, accumulator);
210
- }
211
- }
212
-
213
- function addAnimatedValuesListenersToProps(
214
- props: AnimatedNode,
215
- accumulator: AnimatedValueListeners,
216
- ) {
217
- for (const propName in props) {
218
- // $FlowFixMe[prop-missing] - This is an object contained in a prop, but we don't know the exact type.
219
- const propValue = props[propName];
220
- addListenersToPropsValue(propValue, accumulator);
221
- }
222
- }
13
+ import createAnimatedPropsHook from '../../src/private/animated/createAnimatedPropsHook';
223
14
 
224
15
  /**
225
- * Manages the lifecycle of the supplied `AnimatedProps` by invoking `__attach`
226
- * and `__detach`. However, this is more complicated because `AnimatedProps`
227
- * uses reference counting to determine when to recursively detach its children
228
- * nodes. So in order to optimize this, we avoid detaching until the next attach
229
- * unless we are unmounting.
16
+ * @deprecated
230
17
  */
231
- function useAnimatedPropsLifecycle(node: AnimatedProps): void {
232
- const prevNodeRef = useRef<?AnimatedProps>(null);
233
- const isUnmountingRef = useRef<boolean>(false);
234
-
235
- useEffect(() => {
236
- // It is ok for multiple components to call `flushQueue` because it noops
237
- // if the queue is empty. When multiple animated components are mounted at
238
- // the same time. Only first component flushes the queue and the others will noop.
239
- NativeAnimatedHelper.API.flushQueue();
240
- let drivenAnimationEndedListener: ?EventSubscription = null;
241
- if (node.__isNative) {
242
- drivenAnimationEndedListener =
243
- NativeAnimatedHelper.nativeEventEmitter.addListener(
244
- 'onUserDrivenAnimationEnded',
245
- data => {
246
- node.update();
247
- },
248
- );
249
- }
250
-
251
- return () => {
252
- drivenAnimationEndedListener?.remove();
253
- };
254
- });
255
-
256
- useInsertionEffect(() => {
257
- isUnmountingRef.current = false;
258
- return () => {
259
- isUnmountingRef.current = true;
260
- };
261
- }, []);
262
-
263
- useInsertionEffect(() => {
264
- node.__attach();
265
- if (prevNodeRef.current != null) {
266
- const prevNode = prevNodeRef.current;
267
- // TODO: Stop restoring default values (unless `reset` is called).
268
- prevNode.__restoreDefaultValues();
269
- prevNode.__detach();
270
- prevNodeRef.current = null;
271
- }
272
- return () => {
273
- if (isUnmountingRef.current) {
274
- // NOTE: Do not restore default values on unmount, see D18197735.
275
- node.__detach();
276
- } else {
277
- prevNodeRef.current = node;
278
- }
279
- };
280
- }, [node]);
281
- }
282
-
283
- function getEventTarget<TInstance>(instance: TInstance): TInstance {
284
- return typeof instance === 'object' &&
285
- typeof instance?.getScrollableNode === 'function'
286
- ? // $FlowFixMe[incompatible-use] - Legacy instance assumptions.
287
- instance.getScrollableNode()
288
- : instance;
289
- }
290
-
291
- // $FlowFixMe[unclear-type] - Legacy instance assumptions.
292
- function isFabricInstance(instance: any): boolean {
293
- return (
294
- isFabricPublicInstance(instance) ||
295
- // Some components have a setNativeProps function but aren't a host component
296
- // such as lists like FlatList and SectionList. These should also use
297
- // forceUpdate in Fabric since setNativeProps doesn't exist on the underlying
298
- // host component. This crazy hack is essentially special casing those lists and
299
- // ScrollView itself to use forceUpdate in Fabric.
300
- // If these components end up using forwardRef then these hacks can go away
301
- // as instance would actually be the underlying host component and the above check
302
- // would be sufficient.
303
- isFabricPublicInstance(instance?.getNativeScrollRef?.()) ||
304
- isFabricPublicInstance(
305
- instance?.getScrollResponder?.()?.getNativeScrollRef?.(),
306
- )
307
- );
308
- }
18
+ export default createAnimatedPropsHook(null) as AnimatedPropsHook;
@@ -14,17 +14,33 @@ import Platform from '../Utilities/Platform';
14
14
  import {type EventSubscription} from '../vendor/emitter/EventEmitter';
15
15
  import NativeAppState from './NativeAppState';
16
16
 
17
- export type AppStateValues = 'inactive' | 'background' | 'active';
17
+ /**
18
+ * active - The app is running in the foreground
19
+ * background - The app is running in the background. The user is either:
20
+ * - in another app
21
+ * - on the home screen
22
+ * - @platform android - on another Activity (even if it was launched by your app)
23
+ * @platform ios - inactive - This is a state that occurs when transitioning between foreground & background, and during periods of inactivity such as entering the multitasking view, opening the Notification Center or in the event of an incoming call.
24
+ */
25
+ export type AppStateStatus = 'inactive' | 'background' | 'active';
18
26
 
27
+ /**
28
+ * change - This even is received when the app state has changed.
29
+ * memoryWarning - This event is used in the need of throwing memory warning or releasing it.
30
+ * @platform android - focus - Received when the app gains focus (the user is interacting with the app).
31
+ * @platform android - blur - Received when the user is not actively interacting with the app.
32
+ */
19
33
  type AppStateEventDefinitions = {
20
- change: [AppStateValues],
34
+ change: [AppStateStatus],
21
35
  memoryWarning: [],
22
36
  blur: [],
23
37
  focus: [],
24
38
  };
25
39
 
40
+ export type AppStateEvent = $Keys<AppStateEventDefinitions>;
41
+
26
42
  type NativeAppStateEventDefinitions = {
27
- appStateDidChange: [{app_state: AppStateValues}],
43
+ appStateDidChange: [{app_state: AppStateStatus}],
28
44
  appStateFocusChange: [boolean],
29
45
  memoryWarning: [],
30
46
  };
@@ -35,7 +51,7 @@ type NativeAppStateEventDefinitions = {
35
51
  *
36
52
  * See https://reactnative.dev/docs/appstate
37
53
  */
38
- class AppState {
54
+ class AppStateImpl {
39
55
  currentState: ?string = null;
40
56
  isAvailable: boolean;
41
57
 
@@ -89,7 +105,7 @@ class AppState {
89
105
  *
90
106
  * See https://reactnative.dev/docs/appstate#addeventlistener
91
107
  */
92
- addEventListener<K: $Keys<AppStateEventDefinitions>>(
108
+ addEventListener<K: AppStateEvent>(
93
109
  type: K,
94
110
  handler: (...$ElementType<AppStateEventDefinitions, K>) => void,
95
111
  ): EventSubscription {
@@ -100,7 +116,7 @@ class AppState {
100
116
  switch (type) {
101
117
  case 'change':
102
118
  // $FlowIssue[invalid-tuple-arity] Flow cannot refine handler based on the event type
103
- const changeHandler: AppStateValues => void = handler;
119
+ const changeHandler: AppStateStatus => void = handler;
104
120
  return emitter.addListener('appStateDidChange', appStateData => {
105
121
  changeHandler(appStateData.app_state);
106
122
  });
@@ -125,4 +141,5 @@ class AppState {
125
141
  }
126
142
  }
127
143
 
128
- export default (new AppState(): AppState);
144
+ const AppState: AppStateImpl = new AppStateImpl();
145
+ export default AppState;
@@ -8,6 +8,6 @@
8
8
  * @format
9
9
  */
10
10
 
11
- export * from '../../src/private/specs/modules/NativeAppState';
12
- import NativeAppState from '../../src/private/specs/modules/NativeAppState';
11
+ export * from '../../src/private/specs_DEPRECATED/modules/NativeAppState';
12
+ import NativeAppState from '../../src/private/specs_DEPRECATED/modules/NativeAppState';
13
13
  export default NativeAppState;
@@ -11,9 +11,10 @@
11
11
  'use strict';
12
12
 
13
13
  const Systrace = require('../Performance/Systrace');
14
- const deepFreezeAndThrowOnMutationInDev = require('../Utilities/deepFreezeAndThrowOnMutationInDev');
14
+ const deepFreezeAndThrowOnMutationInDev =
15
+ require('../Utilities/deepFreezeAndThrowOnMutationInDev').default;
15
16
  const stringifySafe = require('../Utilities/stringifySafe').default;
16
- const warnOnce = require('../Utilities/warnOnce');
17
+ const warnOnce = require('../Utilities/warnOnce').default;
17
18
  const ErrorUtils = require('../vendor/core/ErrorUtils').default;
18
19
  const invariant = require('invariant');
19
20
 
@@ -187,7 +187,8 @@ if (global.nativeModuleProxy) {
187
187
  '__fbBatchedBridgeConfig is not set, cannot invoke native modules',
188
188
  );
189
189
 
190
- const defineLazyObjectProperty = require('../Utilities/defineLazyObjectProperty');
190
+ const defineLazyObjectProperty =
191
+ require('../Utilities/defineLazyObjectProperty').default;
191
192
  (bridgeConfig.remoteModuleConfig || []).forEach(
192
193
  (config: ModuleConfig, moduleID: number) => {
193
194
  // Initially this config will only contain the module name when running in JSC. The actual
@@ -81,7 +81,7 @@ class Blob {
81
81
  return this._data;
82
82
  }
83
83
 
84
- slice(start?: number, end?: number, contentType: string = ''): Blob {
84
+ slice(start?: number, end?: number, contentType?: string = ''): Blob {
85
85
  const BlobManager = require('./BlobManager').default;
86
86
  let {offset, size} = this.data;
87
87
 
@@ -8,179 +8,13 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type Blob from './Blob';
11
+ import typeof FileReader from './FileReader_old';
12
12
 
13
- import NativeFileReaderModule from './NativeFileReaderModule';
14
- import {toByteArray} from 'base64-js';
15
- import EventTarget from 'event-target-shim';
13
+ // Use a global instead of a flag from ReactNativeFeatureFlags because this will
14
+ // be read before apps have a chance to set overrides.
15
+ const useBuiltInEventTarget = global.RN$useBuiltInEventTarget?.();
16
16
 
17
- type ReadyState =
18
- | 0 // EMPTY
19
- | 1 // LOADING
20
- | 2; // DONE
21
-
22
- type ReaderResult = string | ArrayBuffer;
23
-
24
- const READER_EVENTS = [
25
- 'abort',
26
- 'error',
27
- 'load',
28
- 'loadstart',
29
- 'loadend',
30
- 'progress',
31
- ];
32
-
33
- const EMPTY = 0;
34
- const LOADING = 1;
35
- const DONE = 2;
36
-
37
- class FileReader extends (EventTarget(...READER_EVENTS): typeof EventTarget) {
38
- static EMPTY: number = EMPTY;
39
- static LOADING: number = LOADING;
40
- static DONE: number = DONE;
41
-
42
- EMPTY: number = EMPTY;
43
- LOADING: number = LOADING;
44
- DONE: number = DONE;
45
-
46
- _readyState: ReadyState;
47
- _error: ?Error;
48
- _result: ?ReaderResult;
49
- _aborted: boolean = false;
50
-
51
- constructor() {
52
- super();
53
- this._reset();
54
- }
55
-
56
- _reset(): void {
57
- this._readyState = EMPTY;
58
- this._error = null;
59
- this._result = null;
60
- }
61
-
62
- _setReadyState(newState: ReadyState) {
63
- this._readyState = newState;
64
- this.dispatchEvent({type: 'readystatechange'});
65
- if (newState === DONE) {
66
- if (this._aborted) {
67
- this.dispatchEvent({type: 'abort'});
68
- } else if (this._error) {
69
- this.dispatchEvent({type: 'error'});
70
- } else {
71
- this.dispatchEvent({type: 'load'});
72
- }
73
- this.dispatchEvent({type: 'loadend'});
74
- }
75
- }
76
-
77
- readAsArrayBuffer(blob: ?Blob): void {
78
- this._aborted = false;
79
-
80
- if (blob == null) {
81
- throw new TypeError(
82
- "Failed to execute 'readAsArrayBuffer' on 'FileReader': parameter 1 is not of type 'Blob'",
83
- );
84
- }
85
-
86
- NativeFileReaderModule.readAsDataURL(blob.data).then(
87
- (text: string) => {
88
- if (this._aborted) {
89
- return;
90
- }
91
-
92
- const base64 = text.split(',')[1];
93
- const typedArray = toByteArray(base64);
94
-
95
- this._result = typedArray.buffer;
96
- this._setReadyState(DONE);
97
- },
98
- error => {
99
- if (this._aborted) {
100
- return;
101
- }
102
- this._error = error;
103
- this._setReadyState(DONE);
104
- },
105
- );
106
- }
107
-
108
- readAsDataURL(blob: ?Blob): void {
109
- this._aborted = false;
110
-
111
- if (blob == null) {
112
- throw new TypeError(
113
- "Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'",
114
- );
115
- }
116
-
117
- NativeFileReaderModule.readAsDataURL(blob.data).then(
118
- (text: string) => {
119
- if (this._aborted) {
120
- return;
121
- }
122
- this._result = text;
123
- this._setReadyState(DONE);
124
- },
125
- error => {
126
- if (this._aborted) {
127
- return;
128
- }
129
- this._error = error;
130
- this._setReadyState(DONE);
131
- },
132
- );
133
- }
134
-
135
- readAsText(blob: ?Blob, encoding: string = 'UTF-8'): void {
136
- this._aborted = false;
137
-
138
- if (blob == null) {
139
- throw new TypeError(
140
- "Failed to execute 'readAsText' on 'FileReader': parameter 1 is not of type 'Blob'",
141
- );
142
- }
143
-
144
- NativeFileReaderModule.readAsText(blob.data, encoding).then(
145
- (text: string) => {
146
- if (this._aborted) {
147
- return;
148
- }
149
- this._result = text;
150
- this._setReadyState(DONE);
151
- },
152
- error => {
153
- if (this._aborted) {
154
- return;
155
- }
156
- this._error = error;
157
- this._setReadyState(DONE);
158
- },
159
- );
160
- }
161
-
162
- abort() {
163
- this._aborted = true;
164
- // only call onreadystatechange if there is something to abort, as per spec
165
- if (this._readyState !== EMPTY && this._readyState !== DONE) {
166
- this._reset();
167
- this._setReadyState(DONE);
168
- }
169
- // Reset again after, in case modified in handler
170
- this._reset();
171
- }
172
-
173
- get readyState(): ReadyState {
174
- return this._readyState;
175
- }
176
-
177
- get error(): ?Error {
178
- return this._error;
179
- }
180
-
181
- get result(): ?ReaderResult {
182
- return this._result;
183
- }
184
- }
185
-
186
- export default FileReader;
17
+ export default (useBuiltInEventTarget
18
+ ? // $FlowExpectedError[incompatible-cast]
19
+ require('./FileReader_new').default
20
+ : require('./FileReader_old').default) as FileReader;