@office-iss/react-native-win32 0.0.0-canary.283 → 0.0.0-canary.285

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 +79 -1
  3. package/CHANGELOG.md +32 -8
  4. package/IntegrationTests/AccessibilityManagerTest.js +17 -12
  5. package/IntegrationTests/AppEventsTest.js +47 -32
  6. package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +10 -14
  7. package/IntegrationTests/ImageCachePolicyTest.js +64 -81
  8. package/IntegrationTests/ImageSnapshotTest.js +17 -20
  9. package/IntegrationTests/IntegrationTestHarnessTest.js +34 -52
  10. package/IntegrationTests/IntegrationTestsApp.js +11 -6
  11. package/IntegrationTests/LayoutEventsTest.js +1 -1
  12. package/IntegrationTests/LoggingTestModule.js +2 -1
  13. package/IntegrationTests/PromiseTest.js +51 -43
  14. package/IntegrationTests/SimpleSnapshotTest.js +19 -24
  15. package/IntegrationTests/SyncMethodTest.js +9 -13
  16. package/IntegrationTests/TimersTest.js +3 -3
  17. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +39 -18
  18. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -2
  19. package/Libraries/Alert/Alert.flow.js +62 -0
  20. package/Libraries/Alert/Alert.js +5 -28
  21. package/Libraries/Alert/Alert.win32.js +6 -28
  22. package/Libraries/Alert/NativeAlertManager.js +2 -2
  23. package/Libraries/Alert/RCTAlertManager.android.js +1 -1
  24. package/Libraries/Alert/RCTAlertManager.flow.js +20 -0
  25. package/Libraries/Alert/RCTAlertManager.ios.js +1 -1
  26. package/Libraries/Animated/AnimatedMock.js +1 -1
  27. package/Libraries/Animated/NativeAnimatedModule.js +2 -2
  28. package/Libraries/Animated/NativeAnimatedTurboModule.js +2 -2
  29. package/Libraries/Animated/createAnimatedComponent.js +3 -3
  30. package/Libraries/Animated/nodes/AnimatedValue.js +35 -13
  31. package/Libraries/Animated/useAnimatedProps.js +4 -332
  32. package/Libraries/AppState/AppState.js +1 -1
  33. package/Libraries/AppState/NativeAppState.js +2 -2
  34. package/Libraries/BatchedBridge/BatchedBridge.js +4 -2
  35. package/Libraries/BatchedBridge/MessageQueue.js +2 -2
  36. package/Libraries/BatchedBridge/NativeModules.js +4 -3
  37. package/Libraries/Blob/Blob.js +4 -4
  38. package/Libraries/Blob/BlobManager.js +3 -2
  39. package/Libraries/Blob/BlobRegistry.js +3 -9
  40. package/Libraries/Blob/File.js +3 -2
  41. package/Libraries/Blob/FileReader.js +8 -174
  42. package/Libraries/Blob/FileReader_new.js +231 -0
  43. package/Libraries/Blob/FileReader_old.js +186 -0
  44. package/Libraries/Blob/NativeBlobModule.js +2 -2
  45. package/Libraries/Blob/NativeFileReaderModule.js +2 -2
  46. package/Libraries/Blob/URLSearchParams.js +1 -2
  47. package/Libraries/BugReporting/BugReporting.js +2 -2
  48. package/Libraries/BugReporting/NativeBugReporting.js +2 -2
  49. package/Libraries/BugReporting/dumpReactTree.js +2 -2
  50. package/Libraries/BugReporting/getReactData.js +1 -1
  51. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +2 -2
  52. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +2 -2
  53. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +2 -2
  54. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
  55. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
  56. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +1 -1
  57. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +5 -5
  58. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -2
  59. package/Libraries/Components/Button.js +2 -2
  60. package/Libraries/Components/Button.win32.js +2 -2
  61. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  62. package/Libraries/Components/Clipboard/NativeClipboard.js +2 -2
  63. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -2
  64. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +7 -7
  65. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +2 -2
  66. package/Libraries/Components/Keyboard/Keyboard.js +9 -9
  67. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +18 -22
  68. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +2 -2
  69. package/Libraries/Components/Pressable/Pressable.js +4 -4
  70. package/Libraries/Components/Pressable/Pressable.win32.js +4 -4
  71. package/Libraries/Components/Pressable/useAndroidRippleForView.js +9 -9
  72. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +10 -11
  73. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  74. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
  75. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  76. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -2
  77. package/Libraries/Components/RefreshControl/RefreshControl.js +9 -9
  78. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -2
  79. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
  80. package/Libraries/Components/ScrollView/ScrollView.js +32 -26
  81. package/Libraries/Components/ScrollView/ScrollViewCommands.js +2 -2
  82. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +2 -2
  83. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  84. package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
  85. package/Libraries/Components/Sound/NativeSoundManager.js +2 -2
  86. package/Libraries/Components/Sound/SoundManager.js +1 -1
  87. package/Libraries/Components/StaticRenderer.js +4 -4
  88. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +2 -2
  89. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +2 -2
  90. package/Libraries/Components/StatusBar/StatusBar.js +33 -18
  91. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -2
  92. package/Libraries/Components/Switch/Switch.js +6 -6
  93. package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -2
  94. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +31 -31
  95. package/Libraries/Components/TextInput/InputAccessoryView.js +5 -3
  96. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -2
  97. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -1
  98. package/Libraries/Components/TextInput/TextInput.flow.js +117 -107
  99. package/Libraries/Components/TextInput/TextInput.js +122 -115
  100. package/Libraries/Components/TextInput/TextInput.win32.js +124 -117
  101. package/Libraries/Components/TextInput/TextInputNativeCommands.js +1 -1
  102. package/Libraries/Components/TextInput/TextInputState.js +3 -1
  103. package/Libraries/Components/TextInput/TextInputState.win32.js +3 -1
  104. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +2 -2
  105. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
  106. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +68 -6
  107. package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
  108. package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +1 -1
  109. package/Libraries/Components/Touchable/BoundingDimensions.js +1 -1
  110. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  111. package/Libraries/Components/Touchable/Position.js +1 -1
  112. package/Libraries/Components/Touchable/TouchableBounce.js +6 -6
  113. package/Libraries/Components/Touchable/TouchableHighlight.js +12 -12
  114. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +15 -15
  115. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +7 -7
  116. package/Libraries/Components/Touchable/TouchableOpacity.js +7 -7
  117. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +4 -4
  118. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -2
  119. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +11 -3
  120. package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -1
  121. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -1
  122. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -1
  123. package/Libraries/Components/View/View.js +1 -1
  124. package/Libraries/Components/View/View.win32.js +1 -1
  125. package/Libraries/Components/View/ViewAccessibility.js +2 -2
  126. package/Libraries/Components/View/ViewAccessibility.win32.js +2 -2
  127. package/Libraries/Components/View/ViewPropTypes.js +22 -22
  128. package/Libraries/Components/View/ViewPropTypes.win32.js +22 -22
  129. package/Libraries/Core/Devtools/getDevServer.js +1 -3
  130. package/Libraries/Core/Devtools/loadBundleFromServer.js +4 -2
  131. package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +4 -2
  132. package/Libraries/Core/Devtools/openFileInEditor.js +2 -4
  133. package/Libraries/Core/Devtools/openURLInBrowser.js +5 -4
  134. package/Libraries/Core/Devtools/parseErrorStack.js +4 -4
  135. package/Libraries/Core/Devtools/parseHermesStack.js +2 -2
  136. package/Libraries/Core/Devtools/symbolicateStackTrace.js +5 -4
  137. package/Libraries/Core/ExceptionsManager.js +6 -4
  138. package/Libraries/Core/InitializeCore.js +5 -2
  139. package/Libraries/Core/NativeExceptionsManager.js +2 -2
  140. package/Libraries/Core/RawEventEmitter.js +2 -2
  141. package/Libraries/Core/ReactFiberErrorDialog.js +2 -2
  142. package/Libraries/Core/ReactNativeVersion.js +3 -5
  143. package/Libraries/Core/ReactNativeVersionCheck.js +2 -4
  144. package/Libraries/Core/ReactNativeVersionCheck.win32.js +2 -4
  145. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +2 -2
  146. package/Libraries/Core/Timers/JSTimers.js +4 -4
  147. package/Libraries/Core/Timers/NativeTiming.js +2 -2
  148. package/Libraries/Core/Timers/immediateShim.js +2 -9
  149. package/Libraries/Core/polyfillPromise.js +1 -1
  150. package/Libraries/Core/registerCallableModule.js +1 -1
  151. package/Libraries/Core/setUpAlert.js +1 -1
  152. package/Libraries/Core/setUpBatchedBridge.js +4 -3
  153. package/Libraries/Core/setUpDeveloperTools.js +2 -9
  154. package/Libraries/Core/setUpErrorHandling.js +2 -2
  155. package/Libraries/Core/setUpReactDevTools.js +23 -5
  156. package/Libraries/Core/setUpTimers.js +45 -66
  157. package/Libraries/Core/setUpXHR.js +6 -6
  158. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -2
  159. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  160. package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
  161. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
  162. package/Libraries/Events/CustomEvent.js +2 -2
  163. package/Libraries/Image/AssetRegistry.js +8 -1
  164. package/Libraries/Image/AssetSourceResolver.js +3 -3
  165. package/Libraries/Image/Image.android.js +3 -1
  166. package/Libraries/Image/Image.ios.js +1 -1
  167. package/Libraries/Image/Image.win32.js +1 -1
  168. package/Libraries/Image/ImageBackground.js +1 -1
  169. package/Libraries/Image/ImageProps.js +17 -17
  170. package/Libraries/Image/ImageViewNativeComponent.js +4 -5
  171. package/Libraries/Image/NativeImageEditor.js +2 -2
  172. package/Libraries/Image/NativeImageLoaderAndroid.js +2 -2
  173. package/Libraries/Image/NativeImageLoaderIOS.js +2 -2
  174. package/Libraries/Image/NativeImageLoaderWin32.js +2 -2
  175. package/Libraries/Image/NativeImageStoreAndroid.js +2 -2
  176. package/Libraries/Image/NativeImageStoreIOS.js +2 -2
  177. package/Libraries/Image/RelativeImageStub.js +3 -1
  178. package/Libraries/Image/nativeImageSource.js +3 -3
  179. package/Libraries/Image/resolveAssetSource.js +4 -2
  180. package/Libraries/Interaction/FrameRateLogger.js +1 -1
  181. package/Libraries/Interaction/InteractionManager.js +11 -8
  182. package/Libraries/Interaction/InteractionManagerStub.js +1 -1
  183. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
  184. package/Libraries/Interaction/NativeFrameRateLogger.js +2 -2
  185. package/Libraries/Interaction/PanResponder.js +8 -8
  186. package/Libraries/Interaction/TaskQueue.js +1 -1
  187. package/Libraries/Interaction/TouchHistoryMath.js +27 -1
  188. package/Libraries/LayoutAnimation/LayoutAnimation.js +4 -4
  189. package/Libraries/Linking/Linking.d.ts +3 -3
  190. package/Libraries/Linking/Linking.js +10 -9
  191. package/Libraries/Linking/NativeIntentAndroid.js +2 -2
  192. package/Libraries/Linking/NativeLinkingManager.js +2 -2
  193. package/Libraries/Lists/FillRateHelper.js +1 -1
  194. package/Libraries/Lists/FlatList.js +10 -11
  195. package/Libraries/Lists/SectionList.js +7 -9
  196. package/Libraries/Lists/SectionListModern.js +6 -6
  197. package/Libraries/Lists/ViewabilityHelper.js +1 -1
  198. package/Libraries/Lists/VirtualizeUtils.js +1 -3
  199. package/Libraries/Lists/VirtualizedList.js +1 -1
  200. package/Libraries/Lists/VirtualizedListContext.js +1 -3
  201. package/Libraries/Lists/VirtualizedSectionList.js +1 -1
  202. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -1
  203. package/Libraries/LogBox/Data/LogBoxData.js +15 -15
  204. package/Libraries/LogBox/Data/LogBoxLog.js +51 -29
  205. package/Libraries/LogBox/Data/parseLogBoxLog.js +10 -10
  206. package/Libraries/LogBox/LogBox.js +13 -1
  207. package/Libraries/LogBox/LogBoxInspectorContainer.js +3 -3
  208. package/Libraries/LogBox/LogBoxNotificationContainer.js +3 -3
  209. package/Libraries/LogBox/UI/LogBoxButton.js +4 -4
  210. package/Libraries/LogBox/UI/LogBoxInspectorBody.js +8 -2
  211. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +50 -31
  212. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +50 -31
  213. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +2 -2
  214. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -2
  215. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +2 -2
  216. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
  217. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +2 -2
  218. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -2
  219. package/Libraries/Modal/Modal.js +10 -10
  220. package/Libraries/Modal/NativeModalManager.js +2 -2
  221. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -2
  222. package/Libraries/NativeModules/specs/NativeDevMenu.js +2 -2
  223. package/Libraries/NativeModules/specs/NativeDevSettings.js +2 -2
  224. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +2 -2
  225. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +2 -2
  226. package/Libraries/NativeModules/specs/NativeLogBox.js +2 -2
  227. package/Libraries/NativeModules/specs/NativeRedBox.js +2 -2
  228. package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -2
  229. package/Libraries/Network/NativeNetworkingAndroid.js +2 -2
  230. package/Libraries/Network/NativeNetworkingIOS.js +2 -2
  231. package/Libraries/Network/RCTNetworking.android.js +1 -1
  232. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  233. package/Libraries/Network/RCTNetworking.win32.js +1 -1
  234. package/Libraries/Network/XMLHttpRequest.js +11 -685
  235. package/Libraries/Network/XMLHttpRequest_new.js +790 -0
  236. package/Libraries/Network/XMLHttpRequest_old.js +697 -0
  237. package/Libraries/Network/convertRequestBody.js +3 -1
  238. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -2
  239. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -4
  240. package/Libraries/Pressability/Pressability.js +10 -10
  241. package/Libraries/Pressability/Pressability.win32.js +10 -10
  242. package/Libraries/Pressability/PressabilityDebug.js +2 -2
  243. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +2 -2
  244. package/Libraries/Promise.js +2 -2
  245. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +2 -2
  246. package/Libraries/ReactNative/AppContainer-dev.js +2 -2
  247. package/Libraries/ReactNative/AppContainer.js +3 -3
  248. package/Libraries/ReactNative/AppRegistry.js +1 -1
  249. package/Libraries/ReactNative/BridgelessUIManager.js +4 -9
  250. package/Libraries/ReactNative/FabricUIManager.js +18 -8
  251. package/Libraries/ReactNative/I18nManager.js +4 -3
  252. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +2 -2
  253. package/Libraries/ReactNative/NativeI18nManager.js +2 -2
  254. package/Libraries/ReactNative/NativeUIManager.js +2 -2
  255. package/Libraries/ReactNative/PaperUIManager.js +3 -4
  256. package/Libraries/ReactNative/PaperUIManager.win32.js +3 -4
  257. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +85 -31
  258. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +3 -3
  259. package/Libraries/ReactNative/ReactNativeRuntimeDiagnostics.js +3 -3
  260. package/Libraries/ReactNative/RendererImplementation.js +9 -0
  261. package/Libraries/ReactNative/UIManager.d.ts +1 -0
  262. package/Libraries/ReactNative/UIManager.js +3 -3
  263. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  264. package/Libraries/ReactNative/getNativeComponentAttributes.js +6 -5
  265. package/Libraries/ReactNative/requireNativeComponent.js +2 -1
  266. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +12 -6
  267. package/Libraries/Renderer/shims/ReactNativeTypes.js +5 -1
  268. package/Libraries/Settings/NativeSettingsManager.js +2 -2
  269. package/Libraries/Settings/Settings.ios.js +1 -1
  270. package/Libraries/Settings/Settings.js +1 -1
  271. package/Libraries/Settings/Settings.win32.js +1 -1
  272. package/Libraries/Share/NativeShareModule.js +2 -2
  273. package/Libraries/Share/Share.js +1 -1
  274. package/Libraries/StyleSheet/Rect.js +2 -2
  275. package/Libraries/StyleSheet/StyleSheet.js +3 -2
  276. package/Libraries/StyleSheet/StyleSheet.win32.js +3 -2
  277. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
  278. package/Libraries/StyleSheet/private/_TransformStyle.js +18 -18
  279. package/Libraries/StyleSheet/processBackgroundImage.js +138 -136
  280. package/Libraries/StyleSheet/processBoxShadow.js +4 -0
  281. package/Libraries/StyleSheet/processColorArray.js +1 -1
  282. package/Libraries/Text/Text.js +1 -1
  283. package/Libraries/Text/Text.win32.js +1 -1
  284. package/Libraries/Text/TextAncestor.js +2 -3
  285. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
  286. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +2 -2
  287. package/Libraries/Types/CodegenTypes.js +2 -1
  288. package/Libraries/Types/CoreEventTypes.js +42 -40
  289. package/Libraries/Types/CoreEventTypes.win32.js +42 -40
  290. package/Libraries/UTFSequence.js +2 -2
  291. package/Libraries/Utilities/Appearance.js +0 -8
  292. package/Libraries/Utilities/BackHandler.android.js +2 -2
  293. package/Libraries/Utilities/BackHandler.ios.js +2 -2
  294. package/Libraries/Utilities/BackHandler.win32.js +2 -2
  295. package/Libraries/Utilities/HMRClient.js +2 -2
  296. package/Libraries/Utilities/NativeAppearance.js +2 -2
  297. package/Libraries/Utilities/NativeDevLoadingView.js +2 -2
  298. package/Libraries/Utilities/NativeDeviceInfo.js +2 -2
  299. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +2 -2
  300. package/Libraries/Utilities/NativePlatformConstantsIOS.js +2 -2
  301. package/Libraries/Utilities/NativePlatformConstantsWin.js +2 -2
  302. package/Libraries/Utilities/Platform.android.js +4 -4
  303. package/Libraries/Utilities/Platform.flow.js +8 -8
  304. package/Libraries/Utilities/Platform.flow.win32.js +8 -8
  305. package/Libraries/Utilities/Platform.ios.js +4 -4
  306. package/Libraries/Utilities/Platform.win32.js +2 -2
  307. package/Libraries/Utilities/ReactNativeTestTools.js +5 -5
  308. package/Libraries/Utilities/codegenNativeCommands.js +2 -2
  309. package/Libraries/Utilities/codegenNativeComponent.js +2 -2
  310. package/Libraries/Utilities/differ/deepDiffer.js +3 -3
  311. package/Libraries/Utilities/dismissKeyboard.js +2 -1
  312. package/Libraries/Utilities/stringifySafe.js +2 -2
  313. package/Libraries/Vibration/NativeVibration.js +2 -2
  314. package/Libraries/Vibration/Vibration.js +1 -1
  315. package/Libraries/WebSocket/NativeWebSocketModule.js +2 -2
  316. package/Libraries/WebSocket/WebSocket.js +8 -285
  317. package/Libraries/WebSocket/WebSocketEvent.js +2 -2
  318. package/Libraries/WebSocket/WebSocketInterceptor.js +39 -11
  319. package/Libraries/WebSocket/WebSocket_new.js +325 -0
  320. package/Libraries/WebSocket/WebSocket_old.js +297 -0
  321. package/Libraries/WebSocket/__mocks__/event-target-shim.js +1 -1
  322. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  323. package/flow/jest.js +14 -14
  324. package/index.js +40 -38
  325. package/index.win32.js +40 -38
  326. package/jest/mockScrollView.js +1 -1
  327. package/jest/setup.js +305 -262
  328. package/overrides.json +44 -56
  329. package/package.json +17 -17
  330. package/src/private/animated/createAnimatedPropsHook.js +360 -0
  331. package/src/private/animated/{useAnimatedPropsMemo.js → createAnimatedPropsMemoHook.js} +84 -32
  332. package/src/private/components/HScrollViewNativeComponents.js +1 -1
  333. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +2 -2
  334. package/src/private/debugging/ReactDevToolsSettingsManager.android.js +1 -1
  335. package/src/private/debugging/ReactDevToolsSettingsManager.win32.js +1 -1
  336. package/src/private/devmenu/DevMenu.js +1 -1
  337. package/src/private/featureflags/ReactNativeFeatureFlags.js +29 -55
  338. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -1
  339. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +4 -8
  340. package/{Libraries/Inspector → src/private/inspector}/BorderBox.js +3 -3
  341. package/{Libraries/Inspector → src/private/inspector}/BoxInspector.js +9 -6
  342. package/{Libraries/Inspector → src/private/inspector}/ElementBox.js +8 -8
  343. package/{Libraries/Inspector → src/private/inspector}/ElementProperties.js +18 -15
  344. package/{Libraries/Inspector → src/private/inspector}/Inspector.js +21 -18
  345. package/{Libraries/Inspector → src/private/inspector}/InspectorOverlay.js +9 -8
  346. package/{Libraries/Inspector → src/private/inspector}/InspectorPanel.js +17 -15
  347. package/{Libraries/Inspector → src/private/inspector}/NetworkOverlay.js +40 -24
  348. package/{Libraries/Inspector → src/private/inspector}/PerformanceOverlay.js +7 -6
  349. package/{Libraries/Inspector → src/private/inspector}/ReactDevToolsOverlay.js +9 -8
  350. package/{Libraries/Inspector → src/private/inspector}/StyleInspector.js +6 -6
  351. package/{Libraries/Network → src/private/inspector}/XHRInterceptor.js +1 -1
  352. package/{Libraries/Inspector → src/private/inspector}/getInspectorDataForViewAtPoint.js +5 -3
  353. package/{Libraries/Inspector → src/private/inspector}/resolveBoxStyle.js +5 -4
  354. package/src/private/renderer/errorhandling/ErrorHandlers.js +3 -4
  355. package/src/private/setup/setUpDOM.js +7 -2
  356. package/src/private/{specs → specs_DEPRECATED}/components/ActivityIndicatorViewNativeComponent.js +2 -2
  357. package/src/private/{specs → specs_DEPRECATED}/components/AndroidDrawerLayoutNativeComponent.js +6 -6
  358. package/src/private/{specs → specs_DEPRECATED}/components/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
  359. package/src/private/{specs → specs_DEPRECATED}/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  360. package/src/private/{specs → specs_DEPRECATED}/components/AndroidSwitchNativeComponent.js +4 -4
  361. package/src/private/{specs → specs_DEPRECATED}/components/DebuggingOverlayNativeComponent.js +2 -2
  362. package/src/private/{specs → specs_DEPRECATED}/components/ProgressBarAndroidNativeComponent.js +2 -2
  363. package/src/private/{specs → specs_DEPRECATED}/components/PullToRefreshViewNativeComponent.js +2 -2
  364. package/src/private/{specs → specs_DEPRECATED}/components/RCTInputAccessoryViewNativeComponent.js +2 -2
  365. package/src/private/{specs → specs_DEPRECATED}/components/RCTModalHostViewNativeComponent.js +4 -4
  366. package/src/private/{specs → specs_DEPRECATED}/components/RCTSafeAreaViewNativeComponent.js +2 -2
  367. package/src/private/{specs → specs_DEPRECATED}/components/SwitchNativeComponent.js +4 -4
  368. package/src/private/{specs → specs_DEPRECATED}/components/UnimplementedNativeViewNativeComponent.js +2 -2
  369. package/src/private/{specs → specs_DEPRECATED}/modules/NativeAccessibilityManager.js +2 -2
  370. package/src/private/{specs → specs_DEPRECATED}/modules/NativeActionSheetManager.js +7 -7
  371. package/src/private/{specs → specs_DEPRECATED}/modules/NativeAlertManager.js +2 -2
  372. package/src/private/{specs → specs_DEPRECATED}/modules/NativeAnimatedModule.js +2 -2
  373. package/src/private/{specs → specs_DEPRECATED}/modules/NativeAnimatedTurboModule.js +2 -2
  374. package/src/private/{specs → specs_DEPRECATED}/modules/NativeAppState.js +3 -3
  375. package/src/private/{specs → specs_DEPRECATED}/modules/NativeBlobModule.js +1 -1
  376. package/src/private/{specs → specs_DEPRECATED}/modules/NativeClipboard.js +1 -1
  377. package/src/private/{specs → specs_DEPRECATED}/modules/NativeDevMenu.js +0 -1
  378. package/src/private/{specs → specs_DEPRECATED}/modules/NativeDevSettings.js +0 -1
  379. package/src/private/{specs → specs_DEPRECATED}/modules/NativeDeviceInfo.js +8 -8
  380. package/src/private/{specs → specs_DEPRECATED}/modules/NativeDialogManagerAndroid.js +4 -4
  381. package/src/private/{specs → specs_DEPRECATED}/modules/NativeExceptionsManager.js +2 -2
  382. package/src/private/{specs → specs_DEPRECATED}/modules/NativeFrameRateLogger.js +1 -1
  383. package/src/private/{specs → specs_DEPRECATED}/modules/NativeI18nManager.js +2 -2
  384. package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageEditor.js +9 -9
  385. package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageLoaderAndroid.js +1 -1
  386. package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageLoaderIOS.js +1 -1
  387. package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageLoaderWin32.js +1 -1
  388. package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageStoreAndroid.js +1 -1
  389. package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageStoreIOS.js +3 -3
  390. package/src/private/{specs → specs_DEPRECATED}/modules/NativeNetworkingIOS.js +2 -2
  391. package/src/private/{specs → specs_DEPRECATED}/modules/NativePlatformConstantsAndroid.js +4 -4
  392. package/src/private/{specs → specs_DEPRECATED}/modules/NativePlatformConstantsIOS.js +4 -4
  393. package/src/private/{specs → specs_DEPRECATED}/modules/NativePlatformConstantsWin.js +5 -10
  394. package/src/private/{specs → specs_DEPRECATED}/modules/NativePushNotificationManagerIOS.js +7 -7
  395. package/src/private/{specs → specs_DEPRECATED}/modules/NativeSampleTurboModule.js +2 -2
  396. package/src/private/{specs → specs_DEPRECATED}/modules/NativeSettingsManager.js +2 -2
  397. package/src/private/{specs → specs_DEPRECATED}/modules/NativeShareModule.js +3 -3
  398. package/src/private/{specs → specs_DEPRECATED}/modules/NativeSourceCode.js +2 -2
  399. package/src/private/{specs → specs_DEPRECATED}/modules/NativeStatusBarManagerAndroid.js +4 -4
  400. package/src/private/{specs → specs_DEPRECATED}/modules/NativeStatusBarManagerIOS.js +6 -6
  401. package/src/private/{specs → specs_DEPRECATED}/modules/NativeToastAndroid.js +2 -2
  402. package/src/private/{specs → specs_DEPRECATED}/modules/NativeVibration.js +1 -1
  403. package/src/private/{specs → specs_DEPRECATED}/modules/NativeWebSocketModule.js +1 -1
  404. package/src/private/webapis/dom/events/CustomEvent.js +40 -0
  405. package/src/private/webapis/dom/events/Event.js +236 -0
  406. package/src/private/webapis/dom/events/EventHandlerAttributes.js +130 -0
  407. package/src/private/webapis/dom/events/EventTarget.js +436 -0
  408. package/src/private/webapis/dom/events/internals/EventInternals.js +120 -0
  409. package/src/private/webapis/dom/events/internals/EventTargetInternals.js +52 -0
  410. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +120 -0
  411. package/src/private/webapis/dom/nodes/ReactNativeElement.js +48 -25
  412. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +6 -5
  413. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +25 -25
  414. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +55 -77
  415. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +144 -0
  416. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +55 -0
  417. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +43 -0
  418. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +305 -194
  419. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
  420. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  421. package/src/private/webapis/{dom/oldstylecollections → geometry}/DOMRectList.js +3 -3
  422. package/src/private/webapis/html/events/MessageEvent.js +63 -0
  423. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +2 -2
  424. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +1 -1
  425. package/src/private/webapis/intersectionobserver/{IntersectionObserverManager.js → internals/IntersectionObserverManager.js} +20 -17
  426. package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
  427. package/src/private/webapis/mutationobserver/{MutationObserverManager.js → internals/MutationObserverManager.js} +12 -14
  428. package/src/private/webapis/performance/EventTiming.js +1 -1
  429. package/src/private/webapis/performance/Performance.js +3 -3
  430. package/src/private/webapis/performance/PerformanceObserver.js +2 -2
  431. package/src/private/webapis/performance/{RawPerformanceEntry.js → internals/RawPerformanceEntry.js} +6 -6
  432. package/src/private/webapis/performance/{Utilities.js → internals/Utilities.js} +1 -1
  433. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +1 -1
  434. package/src/private/webapis/websockets/events/CloseEvent.js +54 -0
  435. package/src/private/webapis/xhr/events/ProgressEvent.js +54 -0
  436. package/types/index.d.ts +0 -5
  437. package/Libraries/Animated/AnimatedWeb.js +0 -26
  438. package/Libraries/Inspector/Inspector.win32.js +0 -212
  439. package/Libraries/Inspector/InspectorOverlay.win32.js +0 -68
  440. package/Libraries/JSInspector/InspectorAgent.js +0 -27
  441. package/Libraries/JSInspector/JSInspector.js +0 -33
  442. package/Libraries/JSInspector/NetworkAgent.js +0 -295
  443. package/Libraries/Utilities/DebugEnvironment.js +0 -16
  444. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +0 -19
  445. package/Libraries/YellowBox/YellowBoxDeprecated.js +0 -75
  446. package/src/private/specs/modules/NativeCPUTime.js +0 -24
  447. package/src/private/specs/modules/NativeFantom.js +0 -37
  448. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAccessibilityInfo.js +0 -0
  449. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAccessibilityInfoWin32.js +0 -0
  450. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAppearance.js +0 -0
  451. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeBugReporting.js +0 -0
  452. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeDevLoadingView.js +0 -0
  453. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeDeviceEventManager.js +0 -0
  454. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeFileReaderModule.js +0 -0
  455. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeHeadlessJsTaskSupport.js +0 -0
  456. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeIntentAndroid.js +0 -0
  457. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeJSCHeapCapture.js +0 -0
  458. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeKeyboardObserver.js +0 -0
  459. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeLinkingManager.js +0 -0
  460. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeLogBox.js +0 -0
  461. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeModalManager.js +0 -0
  462. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeNetworkingAndroid.js +0 -0
  463. /package/src/private/{specs → specs_DEPRECATED}/modules/NativePermissionsAndroid.js +0 -0
  464. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeReactDevToolsSettingsManager.js +0 -0
  465. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeRedBox.js +0 -0
  466. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeSegmentFetcher.js +0 -0
  467. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeSoundManager.js +0 -0
  468. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeTiming.js +0 -0
  469. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeUIManager.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,6 +8,6 @@
8
8
  * @format
9
9
  */
10
10
 
11
- export * from '../../src/private/specs/modules/NativeAlertManager';
12
- import NativeAlertManager from '../../src/private/specs/modules/NativeAlertManager';
11
+ export * from '../../src/private/specs_DEPRECATED/modules/NativeAlertManager';
12
+ import NativeAlertManager from '../../src/private/specs_DEPRECATED/modules/NativeAlertManager';
13
13
  export default NativeAlertManager;
@@ -11,7 +11,7 @@ import NativeDialogManagerAndroid from '../NativeModules/specs/NativeDialogManag
11
11
 
12
12
  function emptyCallback() {}
13
13
 
14
- module.exports = {
14
+ export default {
15
15
  alertWithArgs: function (args, callback) {
16
16
  // TODO(5998984): Polyfill it correctly with DialogManagerAndroid
17
17
  if (!NativeDialogManagerAndroid) {
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @format
8
+ * @flow strict-local
9
+ */
10
+
11
+ import type {Args} from './NativeAlertManager';
12
+
13
+ declare const RCTAlertManager: {
14
+ alertWithArgs(
15
+ args: Args,
16
+ callback: (id: number, value: string) => void,
17
+ ): void,
18
+ };
19
+
20
+ export default RCTAlertManager;
@@ -12,7 +12,7 @@ import type {Args} from './NativeAlertManager';
12
12
 
13
13
  import NativeAlertManager from './NativeAlertManager';
14
14
 
15
- module.exports = {
15
+ export default {
16
16
  alertWithArgs(
17
17
  args: Args,
18
18
  callback: (id: number, value: string) => void,
@@ -192,4 +192,4 @@ export default {
192
192
  forkEvent: AnimatedImplementation.forkEvent,
193
193
  unforkEvent: AnimatedImplementation.unforkEvent,
194
194
  Event: AnimatedEvent,
195
- };
195
+ } as typeof AnimatedImplementation;
@@ -8,6 +8,6 @@
8
8
  * @format
9
9
  */
10
10
 
11
- export * from '../../src/private/specs/modules/NativeAnimatedModule';
12
- import NativeAnimatedModule from '../../src/private/specs/modules/NativeAnimatedModule';
11
+ export * from '../../src/private/specs_DEPRECATED/modules/NativeAnimatedModule';
12
+ import NativeAnimatedModule from '../../src/private/specs_DEPRECATED/modules/NativeAnimatedModule';
13
13
  export default NativeAnimatedModule;
@@ -8,6 +8,6 @@
8
8
  * @format
9
9
  */
10
10
 
11
- export * from '../../src/private/specs/modules/NativeAnimatedTurboModule';
12
- import NativeAnimatedTurboModule from '../../src/private/specs/modules/NativeAnimatedTurboModule';
11
+ export * from '../../src/private/specs_DEPRECATED/modules/NativeAnimatedTurboModule';
12
+ import NativeAnimatedTurboModule from '../../src/private/specs_DEPRECATED/modules/NativeAnimatedTurboModule';
13
13
  export default NativeAnimatedTurboModule;
@@ -10,10 +10,10 @@
10
10
 
11
11
  import type {AnimatedPropsAllowlist} from './nodes/AnimatedProps';
12
12
 
13
+ import createAnimatedPropsHook from '../../src/private/animated/createAnimatedPropsHook';
13
14
  import composeStyles from '../../src/private/styles/composeStyles';
14
15
  import View from '../Components/View/View';
15
16
  import useMergeRefs from '../Utilities/useMergeRefs';
16
- import useAnimatedProps from './useAnimatedProps';
17
17
  import * as React from 'react';
18
18
  import {useMemo} from 'react';
19
19
 
@@ -58,14 +58,14 @@ export function unstable_createAnimatedComponentWithAllowlist<
58
58
  Component: component(ref: React.RefSetter<TInstance>, ...TProps),
59
59
  allowlist: ?AnimatedPropsAllowlist,
60
60
  ): StrictAnimatedComponentType<TProps, TInstance> {
61
+ const useAnimatedProps = createAnimatedPropsHook(allowlist);
62
+
61
63
  const AnimatedComponent = React.forwardRef<
62
64
  StrictAnimatedProps<TProps>,
63
65
  TInstance,
64
66
  >((props, forwardedRef) => {
65
67
  const [reducedProps, callbackRef] = useAnimatedProps<TProps, TInstance>(
66
- // $FlowFixMe[incompatible-call]
67
68
  props,
68
- allowlist,
69
69
  );
70
70
  const ref = useMergeRefs<TInstance>(callbackRef, forwardedRef);
71
71
 
@@ -9,6 +9,7 @@
9
9
  */
10
10
 
11
11
  import type {EventSubscription} from '../../vendor/emitter/EventEmitter';
12
+ import type {PlatformConfig} from '../AnimatedPlatformConfig';
12
13
  import type Animation, {EndCallback} from '../animations/Animation';
13
14
  import type {InterpolationConfigType} from './AnimatedInterpolation';
14
15
  import type AnimatedNode from './AnimatedNode';
@@ -84,6 +85,7 @@ function _executeAsAnimatedBatch(id: string, operation: () => void) {
84
85
  * See https://reactnative.dev/docs/animatedvalue
85
86
  */
86
87
  export default class AnimatedValue extends AnimatedWithChildren {
88
+ #listenerCount: number = 0;
87
89
  #updateSubscription: ?EventSubscription = null;
88
90
 
89
91
  _value: number;
@@ -105,20 +107,8 @@ export default class AnimatedValue extends AnimatedWithChildren {
105
107
  }
106
108
  }
107
109
 
108
- __attach(): void {
110
+ __detach() {
109
111
  if (this.__isNative) {
110
- // NOTE: In theory, we should only need to call this when any listeners
111
- // are added. However, there is a global `onUserDrivenAnimationEnded`
112
- // listener that relies on `onAnimatedValueUpdate` having fired to update
113
- // the values in JavaScript. If that listener is removed, this could be
114
- // re-optimized.
115
- this.#ensureUpdateSubscriptionExists();
116
- }
117
- }
118
-
119
- __detach(): void {
120
- if (this.__isNative) {
121
- this.#updateSubscription?.remove();
122
112
  NativeAnimatedAPI.getValue(this.__getNativeTag(), value => {
123
113
  this._value = value - this._offset;
124
114
  });
@@ -131,6 +121,38 @@ export default class AnimatedValue extends AnimatedWithChildren {
131
121
  return this._value + this._offset;
132
122
  }
133
123
 
124
+ __makeNative(platformConfig: ?PlatformConfig): void {
125
+ super.__makeNative(platformConfig);
126
+ if (this.#listenerCount > 0) {
127
+ this.#ensureUpdateSubscriptionExists();
128
+ }
129
+ }
130
+
131
+ addListener(callback: (value: any) => mixed): string {
132
+ const id = super.addListener(callback);
133
+ this.#listenerCount++;
134
+ if (this.__isNative) {
135
+ this.#ensureUpdateSubscriptionExists();
136
+ }
137
+ return id;
138
+ }
139
+
140
+ removeListener(id: string): void {
141
+ super.removeListener(id);
142
+ this.#listenerCount--;
143
+ if (this.__isNative && this.#listenerCount === 0) {
144
+ this.#updateSubscription?.remove();
145
+ }
146
+ }
147
+
148
+ removeAllListeners(): void {
149
+ super.removeAllListeners();
150
+ this.#listenerCount = 0;
151
+ if (this.__isNative) {
152
+ this.#updateSubscription?.remove();
153
+ }
154
+ }
155
+
134
156
  #ensureUpdateSubscriptionExists(): void {
135
157
  if (this.#updateSubscription != null) {
136
158
  return;
@@ -8,339 +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 AnimatedProps from './nodes/AnimatedProps';
21
- import {
22
- useCallback,
23
- useEffect,
24
- useInsertionEffect,
25
- useLayoutEffect,
26
- useMemo,
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
- const useMemoOrAnimatedPropsMemo =
41
- ReactNativeFeatureFlags.enableAnimatedPropsMemo()
42
- ? useAnimatedPropsMemo
43
- : useMemo;
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 allowlistIfEnabled = ReactNativeFeatureFlags.enableAnimatedAllowlist()
54
- ? allowlist
55
- : null;
56
-
57
- const node = useMemoOrAnimatedPropsMemo(
58
- () =>
59
- new AnimatedProps(
60
- props,
61
- () => onUpdateRef.current?.(),
62
- allowlistIfEnabled,
63
- ),
64
- [allowlistIfEnabled, props],
65
- );
66
-
67
- const useNativePropsInFabric =
68
- ReactNativeFeatureFlags.shouldUseSetNativePropsInFabric();
69
-
70
- const useAnimatedPropsLifecycle =
71
- ReactNativeFeatureFlags.useInsertionEffectsForAnimations()
72
- ? useAnimatedPropsLifecycle_insertionEffects
73
- : useAnimatedPropsLifecycle_layoutEffects;
74
-
75
- useAnimatedPropsLifecycle(node);
76
-
77
- // TODO: This "effect" does three things:
78
- //
79
- // 1) Call `setNativeView`.
80
- // 2) Update `onUpdateRef`.
81
- // 3) Update listeners for `AnimatedEvent` props.
82
- //
83
- // Ideally, each of these would be separate "effects" so that they are not
84
- // unnecessarily re-run when irrelevant dependencies change. For example, we
85
- // should be able to hoist all `AnimatedEvent` props and only do #3 if either
86
- // the `AnimatedEvent` props change or `instance` changes.
87
- //
88
- // But there is no way to transparently compose three separate callback refs,
89
- // so we just combine them all into one for now.
90
- const refEffect = useCallback(
91
- (instance: TInstance) => {
92
- // NOTE: This may be called more often than necessary (e.g. when `props`
93
- // changes), but `setNativeView` already optimizes for that.
94
- node.setNativeView(instance);
95
-
96
- // NOTE: When using the JS animation driver, this callback is called on
97
- // every animation frame. When using the native driver, this callback is
98
- // called when the animation completes.
99
- onUpdateRef.current = () => {
100
- if (process.env.NODE_ENV === 'test') {
101
- // Check 1: this is a test.
102
- // call `scheduleUpdate` to bypass use of setNativeProps.
103
- return scheduleUpdate();
104
- }
105
-
106
- const isFabricNode = isFabricInstance(instance);
107
- if (node.__isNative) {
108
- // Check 2: this is an animation driven by native.
109
- // In native driven animations, this callback is only called once the animation completes.
110
- if (isFabricNode) {
111
- // Call `scheduleUpdate` to synchronise Fiber and Shadow tree.
112
- // Must not be called in Paper.
113
- scheduleUpdate();
114
- }
115
- return;
116
- }
117
-
118
- if (
119
- typeof instance !== 'object' ||
120
- typeof instance?.setNativeProps !== 'function'
121
- ) {
122
- // Check 3: the instance does not support setNativeProps. Call `scheduleUpdate`.
123
- return scheduleUpdate();
124
- }
125
-
126
- if (!isFabricNode) {
127
- // Check 4: this is a paper instance, call setNativeProps.
128
- // $FlowIgnore[not-a-function] - Assume it's still a function.
129
- // $FlowFixMe[incompatible-use]
130
- return instance.setNativeProps(node.__getAnimatedValue());
131
- }
132
-
133
- if (!useNativePropsInFabric) {
134
- // Check 5: setNativeProps are disabled.
135
- return scheduleUpdate();
136
- }
137
-
138
- // This is a Fabric instance and setNativeProps is supported.
139
-
140
- // $FlowIgnore[not-a-function] - Assume it's still a function.
141
- // $FlowFixMe[incompatible-use]
142
- instance.setNativeProps(node.__getAnimatedValue());
143
-
144
- // Keeping state of Fiber tree and Shadow tree in sync.
145
- //
146
- // This is done by calling `scheduleUpdate` which will trigger a commit.
147
- // However, React commit is not fast enough to drive animations.
148
- // This is where setNativeProps comes in handy but the state between
149
- // Fiber tree and Shadow tree needs to be kept in sync.
150
- // The goal is to call `scheduleUpdate` as little as possible to maintain
151
- // performance but frequently enough to keep state in sync.
152
- // Debounce is set to 48ms, which is 3 * the duration of a frame.
153
- // 3 frames was the highest value where flickering state was not observed.
154
- if (timerRef.current != null) {
155
- clearTimeout(timerRef.current);
156
- }
157
- timerRef.current = setTimeout(() => {
158
- timerRef.current = null;
159
- scheduleUpdate();
160
- }, 48);
161
- };
162
-
163
- const target = getEventTarget(instance);
164
- const events = [];
165
-
166
- for (const propName in props) {
167
- // $FlowFixMe[invalid-computed-prop]
168
- const propValue = props[propName];
169
- if (propValue instanceof AnimatedEvent && propValue.__isNative) {
170
- propValue.__attach(target, propName);
171
- events.push([propName, propValue]);
172
- }
173
- }
174
-
175
- return () => {
176
- onUpdateRef.current = null;
177
-
178
- for (const [propName, propValue] of events) {
179
- propValue.__detach(target, propName);
180
- }
181
- };
182
- },
183
- [node, useNativePropsInFabric, props],
184
- );
185
- const callbackRef = useRefEffect<TInstance>(refEffect);
186
-
187
- return [reduceAnimatedProps<TProps>(node, props), callbackRef];
188
- }
189
-
190
- function reduceAnimatedProps<TProps>(
191
- node: AnimatedProps,
192
- props: TProps,
193
- ): ReducedProps<TProps> {
194
- // Force `collapsable` to be false so that the native view is not flattened.
195
- // Flattened views cannot be accurately referenced by the native driver.
196
- return {
197
- ...(ReactNativeFeatureFlags.enableAnimatedPropsMemo()
198
- ? node.__getValueWithStaticProps(props)
199
- : node.__getValue()),
200
- collapsable: false,
201
- };
202
- }
13
+ import createAnimatedPropsHook from '../../src/private/animated/createAnimatedPropsHook';
203
14
 
204
15
  /**
205
- * Manages the lifecycle of the supplied `AnimatedProps` by invoking `__attach`
206
- * and `__detach`. However, this is more complicated because `AnimatedProps`
207
- * uses reference counting to determine when to recursively detach its children
208
- * nodes. So in order to optimize this, we avoid detaching until the next attach
209
- * unless we are unmounting.
16
+ * @deprecated
210
17
  */
211
- function useAnimatedPropsLifecycle_layoutEffects(node: AnimatedProps): void {
212
- const prevNodeRef = useRef<?AnimatedProps>(null);
213
- const isUnmountingRef = useRef<boolean>(false);
214
-
215
- useEffect(() => {
216
- // It is ok for multiple components to call `flushQueue` because it noops
217
- // if the queue is empty. When multiple animated components are mounted at
218
- // the same time. Only first component flushes the queue and the others will noop.
219
- NativeAnimatedHelper.API.flushQueue();
220
- let drivenAnimationEndedListener: ?EventSubscription = null;
221
- if (node.__isNative) {
222
- drivenAnimationEndedListener =
223
- NativeAnimatedHelper.nativeEventEmitter.addListener(
224
- 'onUserDrivenAnimationEnded',
225
- data => {
226
- node.update();
227
- },
228
- );
229
- }
230
-
231
- return () => {
232
- drivenAnimationEndedListener?.remove();
233
- };
234
- });
235
-
236
- useLayoutEffect(() => {
237
- isUnmountingRef.current = false;
238
- return () => {
239
- isUnmountingRef.current = true;
240
- };
241
- }, []);
242
-
243
- useLayoutEffect(() => {
244
- node.__attach();
245
- if (prevNodeRef.current != null) {
246
- const prevNode = prevNodeRef.current;
247
- // TODO: Stop restoring default values (unless `reset` is called).
248
- prevNode.__restoreDefaultValues();
249
- prevNode.__detach();
250
- prevNodeRef.current = null;
251
- }
252
- return () => {
253
- if (isUnmountingRef.current) {
254
- // NOTE: Do not restore default values on unmount, see D18197735.
255
- node.__detach();
256
- } else {
257
- prevNodeRef.current = node;
258
- }
259
- };
260
- }, [node]);
261
- }
262
-
263
- /**
264
- * Manages the lifecycle of the supplied `AnimatedProps` by invoking `__attach`
265
- * and `__detach`. However, this is more complicated because `AnimatedProps`
266
- * uses reference counting to determine when to recursively detach its children
267
- * nodes. So in order to optimize this, we avoid detaching until the next attach
268
- * unless we are unmounting.
269
- */
270
- function useAnimatedPropsLifecycle_insertionEffects(node: AnimatedProps): void {
271
- const prevNodeRef = useRef<?AnimatedProps>(null);
272
- const isUnmountingRef = useRef<boolean>(false);
273
-
274
- useEffect(() => {
275
- // It is ok for multiple components to call `flushQueue` because it noops
276
- // if the queue is empty. When multiple animated components are mounted at
277
- // the same time. Only first component flushes the queue and the others will noop.
278
- NativeAnimatedHelper.API.flushQueue();
279
- });
280
-
281
- useInsertionEffect(() => {
282
- isUnmountingRef.current = false;
283
- return () => {
284
- isUnmountingRef.current = true;
285
- };
286
- }, []);
287
-
288
- useInsertionEffect(() => {
289
- node.__attach();
290
- let drivenAnimationEndedListener: ?EventSubscription = null;
291
-
292
- if (node.__isNative) {
293
- drivenAnimationEndedListener =
294
- NativeAnimatedHelper.nativeEventEmitter.addListener(
295
- 'onUserDrivenAnimationEnded',
296
- data => {
297
- node.update();
298
- },
299
- );
300
- }
301
- if (prevNodeRef.current != null) {
302
- const prevNode = prevNodeRef.current;
303
- // TODO: Stop restoring default values (unless `reset` is called).
304
- prevNode.__restoreDefaultValues();
305
- prevNode.__detach();
306
- prevNodeRef.current = null;
307
- }
308
- return () => {
309
- if (isUnmountingRef.current) {
310
- // NOTE: Do not restore default values on unmount, see D18197735.
311
- node.__detach();
312
- } else {
313
- prevNodeRef.current = node;
314
- }
315
-
316
- drivenAnimationEndedListener?.remove();
317
- };
318
- }, [node]);
319
- }
320
-
321
- function getEventTarget<TInstance>(instance: TInstance): TInstance {
322
- return typeof instance === 'object' &&
323
- typeof instance?.getScrollableNode === 'function'
324
- ? // $FlowFixMe[incompatible-use] - Legacy instance assumptions.
325
- instance.getScrollableNode()
326
- : instance;
327
- }
328
-
329
- // $FlowFixMe[unclear-type] - Legacy instance assumptions.
330
- function isFabricInstance(instance: any): boolean {
331
- return (
332
- isFabricPublicInstance(instance) ||
333
- // Some components have a setNativeProps function but aren't a host component
334
- // such as lists like FlatList and SectionList. These should also use
335
- // forceUpdate in Fabric since setNativeProps doesn't exist on the underlying
336
- // host component. This crazy hack is essentially special casing those lists and
337
- // ScrollView itself to use forceUpdate in Fabric.
338
- // If these components end up using forwardRef then these hacks can go away
339
- // as instance would actually be the underlying host component and the above check
340
- // would be sufficient.
341
- isFabricPublicInstance(instance?.getNativeScrollRef?.()) ||
342
- isFabricPublicInstance(
343
- instance?.getScrollResponder?.()?.getNativeScrollRef?.(),
344
- )
345
- );
346
- }
18
+ export default createAnimatedPropsHook(null) as AnimatedPropsHook;
@@ -125,4 +125,4 @@ class AppState {
125
125
  }
126
126
  }
127
127
 
128
- module.exports = (new AppState(): AppState);
128
+ export default (new AppState(): 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;
@@ -10,7 +10,9 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const MessageQueue = require('./MessageQueue');
13
+ import typeof MessageQueueT from './MessageQueue';
14
+
15
+ const MessageQueue: MessageQueueT = require('./MessageQueue').default;
14
16
 
15
17
  const BatchedBridge: MessageQueue = new MessageQueue();
16
18
 
@@ -25,4 +27,4 @@ Object.defineProperty(global, '__fbBatchedBridge', {
25
27
  value: BatchedBridge,
26
28
  });
27
29
 
28
- module.exports = BatchedBridge;
30
+ export default BatchedBridge;
@@ -14,7 +14,7 @@ const Systrace = require('../Performance/Systrace');
14
14
  const deepFreezeAndThrowOnMutationInDev = require('../Utilities/deepFreezeAndThrowOnMutationInDev');
15
15
  const stringifySafe = require('../Utilities/stringifySafe').default;
16
16
  const warnOnce = require('../Utilities/warnOnce');
17
- const ErrorUtils = require('../vendor/core/ErrorUtils');
17
+ const ErrorUtils = require('../vendor/core/ErrorUtils').default;
18
18
  const invariant = require('invariant');
19
19
 
20
20
  export type SpyData = {
@@ -489,4 +489,4 @@ class MessageQueue {
489
489
  }
490
490
  }
491
491
 
492
- module.exports = MessageQueue;
492
+ export default MessageQueue;
@@ -12,7 +12,7 @@
12
12
 
13
13
  import type {ExtendedError} from '../Core/ExtendedError';
14
14
 
15
- const BatchedBridge = require('./BatchedBridge');
15
+ const BatchedBridge = require('./BatchedBridge').default;
16
16
  const invariant = require('invariant');
17
17
 
18
18
  export type ModuleConfig = [
@@ -176,7 +176,8 @@ function updateErrorWithErrorData(
176
176
  return Object.assign(error, errorData || {});
177
177
  }
178
178
 
179
- let NativeModules: {[moduleName: string]: $FlowFixMe, ...} = {};
179
+ /* $FlowFixMe[unclear-type] unclear type of NativeModules */
180
+ let NativeModules: {[moduleName: string]: any, ...} = {};
180
181
  if (global.nativeModuleProxy) {
181
182
  NativeModules = global.nativeModuleProxy;
182
183
  } else {
@@ -209,4 +210,4 @@ if (global.nativeModuleProxy) {
209
210
  );
210
211
  }
211
212
 
212
- module.exports = NativeModules;
213
+ export default NativeModules;
@@ -58,7 +58,7 @@ class Blob {
58
58
  * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob
59
59
  */
60
60
  constructor(parts: Array<Blob | string> = [], options?: BlobOptions) {
61
- const BlobManager = require('./BlobManager');
61
+ const BlobManager = require('./BlobManager').default;
62
62
  this.data = BlobManager.createFromParts(parts, options).data;
63
63
  }
64
64
 
@@ -82,7 +82,7 @@ class Blob {
82
82
  }
83
83
 
84
84
  slice(start?: number, end?: number, contentType: string = ''): Blob {
85
- const BlobManager = require('./BlobManager');
85
+ const BlobManager = require('./BlobManager').default;
86
86
  let {offset, size} = this.data;
87
87
 
88
88
  if (typeof start === 'number') {
@@ -132,7 +132,7 @@ class Blob {
132
132
  * `new Blob([blob, ...])` actually copies the data in memory.
133
133
  */
134
134
  close() {
135
- const BlobManager = require('./BlobManager');
135
+ const BlobManager = require('./BlobManager').default;
136
136
  BlobManager.release(this.data.blobId);
137
137
  this.data = null;
138
138
  }
@@ -155,4 +155,4 @@ class Blob {
155
155
  }
156
156
  }
157
157
 
158
- module.exports = Blob;
158
+ export default Blob;
@@ -8,12 +8,13 @@
8
8
  * @format
9
9
  */
10
10
 
11
+ import typeof BlobT from './Blob';
11
12
  import type {BlobCollector, BlobData, BlobOptions} from './BlobTypes';
12
13
 
13
14
  import NativeBlobModule from './NativeBlobModule';
14
15
  import invariant from 'invariant';
15
16
 
16
- const Blob = require('./Blob');
17
+ const Blob: BlobT = require('./Blob').default;
17
18
  const BlobRegistry = require('./BlobRegistry');
18
19
 
19
20
  /*eslint-disable no-bitwise */
@@ -176,4 +177,4 @@ class BlobManager {
176
177
  }
177
178
  }
178
179
 
179
- module.exports = BlobManager;
180
+ export default BlobManager;