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

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 (244) hide show
  1. package/.flowconfig +1 -1
  2. package/CHANGELOG.json +40 -1
  3. package/CHANGELOG.md +20 -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 +3 -3
  18. package/Libraries/Alert/Alert.js +1 -1
  19. package/Libraries/Alert/Alert.win32.js +1 -1
  20. package/Libraries/Alert/RCTAlertManager.android.js +1 -1
  21. package/Libraries/Alert/RCTAlertManager.ios.js +1 -1
  22. package/Libraries/Animated/AnimatedMock.js +1 -1
  23. package/Libraries/Animated/AnimatedWeb.js +27 -9
  24. package/Libraries/Animated/nodes/AnimatedValue.js +35 -13
  25. package/Libraries/Animated/useAnimatedProps.js +47 -85
  26. package/Libraries/AppState/AppState.js +1 -1
  27. package/Libraries/BatchedBridge/BatchedBridge.js +4 -2
  28. package/Libraries/BatchedBridge/MessageQueue.js +2 -2
  29. package/Libraries/BatchedBridge/NativeModules.js +4 -3
  30. package/Libraries/Blob/Blob.js +4 -4
  31. package/Libraries/Blob/BlobManager.js +3 -2
  32. package/Libraries/Blob/BlobRegistry.js +3 -9
  33. package/Libraries/Blob/File.js +3 -2
  34. package/Libraries/Blob/FileReader.js +1 -1
  35. package/Libraries/BugReporting/BugReporting.js +2 -2
  36. package/Libraries/BugReporting/dumpReactTree.js +2 -2
  37. package/Libraries/BugReporting/getReactData.js +1 -1
  38. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
  39. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
  40. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +1 -1
  41. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +5 -5
  42. package/Libraries/Components/Button.js +2 -2
  43. package/Libraries/Components/Button.win32.js +2 -2
  44. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  45. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +7 -7
  46. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -2
  47. package/Libraries/Components/Keyboard/Keyboard.js +9 -9
  48. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +4 -4
  49. package/Libraries/Components/Pressable/Pressable.js +4 -4
  50. package/Libraries/Components/Pressable/Pressable.win32.js +4 -4
  51. package/Libraries/Components/Pressable/useAndroidRippleForView.js +9 -9
  52. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +10 -11
  53. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  54. package/Libraries/Components/RefreshControl/RefreshControl.js +9 -9
  55. package/Libraries/Components/ScrollView/ScrollView.js +32 -26
  56. package/Libraries/Components/ScrollView/ScrollViewCommands.js +2 -2
  57. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +2 -2
  58. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  59. package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
  60. package/Libraries/Components/Sound/SoundManager.js +1 -1
  61. package/Libraries/Components/StaticRenderer.js +4 -4
  62. package/Libraries/Components/StatusBar/StatusBar.js +33 -18
  63. package/Libraries/Components/Switch/Switch.js +6 -6
  64. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +31 -31
  65. package/Libraries/Components/TextInput/InputAccessoryView.js +2 -2
  66. package/Libraries/Components/TextInput/TextInput.flow.js +35 -35
  67. package/Libraries/Components/TextInput/TextInput.js +35 -35
  68. package/Libraries/Components/TextInput/TextInput.win32.js +35 -35
  69. package/Libraries/Components/TextInput/TextInputNativeCommands.js +1 -1
  70. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +68 -6
  71. package/Libraries/Components/Touchable/TouchableBounce.js +5 -5
  72. package/Libraries/Components/Touchable/TouchableHighlight.js +11 -11
  73. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +14 -14
  74. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +6 -6
  75. package/Libraries/Components/Touchable/TouchableOpacity.js +6 -6
  76. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
  77. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +9 -1
  78. package/Libraries/Components/View/ViewAccessibility.js +2 -2
  79. package/Libraries/Components/View/ViewAccessibility.win32.js +2 -2
  80. package/Libraries/Components/View/ViewPropTypes.js +22 -22
  81. package/Libraries/Components/View/ViewPropTypes.win32.js +22 -22
  82. package/Libraries/Core/RawEventEmitter.js +2 -2
  83. package/Libraries/Core/ReactNativeVersion.js +3 -5
  84. package/Libraries/Core/Timers/JSTimers.js +3 -3
  85. package/Libraries/Core/polyfillPromise.js +1 -1
  86. package/Libraries/Core/registerCallableModule.js +1 -1
  87. package/Libraries/Core/setUpAlert.js +1 -1
  88. package/Libraries/Core/setUpDeveloperTools.js +0 -2
  89. package/Libraries/Core/setUpErrorHandling.js +6 -1
  90. package/Libraries/Core/setUpReactDevTools.js +1 -1
  91. package/Libraries/Core/setUpTimers.js +35 -56
  92. package/Libraries/Core/setUpXHR.js +5 -5
  93. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  94. package/Libraries/Events/CustomEvent.js +2 -2
  95. package/Libraries/Image/AssetRegistry.js +6 -1
  96. package/Libraries/Image/AssetSourceResolver.js +2 -2
  97. package/Libraries/Image/ImageProps.js +17 -17
  98. package/Libraries/Image/nativeImageSource.js +2 -2
  99. package/Libraries/Inspector/ElementProperties.js +4 -3
  100. package/Libraries/Inspector/Inspector.js +1 -1
  101. package/Libraries/Inspector/Inspector.win32.js +1 -1
  102. package/Libraries/Inspector/InspectorOverlay.js +4 -3
  103. package/Libraries/Inspector/InspectorOverlay.win32.js +3 -3
  104. package/Libraries/Inspector/InspectorPanel.js +6 -6
  105. package/Libraries/Inspector/NetworkOverlay.js +6 -5
  106. package/Libraries/Inspector/PerformanceOverlay.js +2 -1
  107. package/Libraries/Inspector/resolveBoxStyle.js +2 -2
  108. package/Libraries/Interaction/InteractionManager.js +3 -2
  109. package/Libraries/Interaction/PanResponder.js +6 -6
  110. package/Libraries/Interaction/TouchHistoryMath.js +26 -0
  111. package/Libraries/JSInspector/NetworkAgent.js +2 -1
  112. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  113. package/Libraries/Linking/Linking.js +0 -1
  114. package/Libraries/Lists/FlatList.js +9 -10
  115. package/Libraries/Lists/SectionList.js +7 -9
  116. package/Libraries/Lists/SectionListModern.js +6 -6
  117. package/Libraries/LogBox/Data/LogBoxData.js +14 -14
  118. package/Libraries/LogBox/Data/LogBoxLog.js +51 -29
  119. package/Libraries/LogBox/Data/parseLogBoxLog.js +10 -10
  120. package/Libraries/LogBox/LogBox.js +13 -1
  121. package/Libraries/LogBox/LogBoxInspectorContainer.js +3 -3
  122. package/Libraries/LogBox/LogBoxNotificationContainer.js +3 -3
  123. package/Libraries/LogBox/UI/LogBoxButton.js +4 -4
  124. package/Libraries/LogBox/UI/LogBoxInspectorBody.js +8 -2
  125. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +50 -31
  126. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +50 -31
  127. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +2 -2
  128. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -2
  129. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +2 -2
  130. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
  131. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +2 -2
  132. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -2
  133. package/Libraries/Modal/Modal.js +7 -7
  134. package/Libraries/Network/XMLHttpRequest.js +1 -1
  135. package/Libraries/Network/convertRequestBody.js +3 -1
  136. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -4
  137. package/Libraries/Pressability/Pressability.js +10 -10
  138. package/Libraries/Pressability/Pressability.win32.js +10 -10
  139. package/Libraries/Pressability/PressabilityDebug.js +2 -2
  140. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +2 -2
  141. package/Libraries/Promise.js +2 -2
  142. package/Libraries/ReactNative/AppContainer.js +2 -2
  143. package/Libraries/ReactNative/BridgelessUIManager.js +3 -8
  144. package/Libraries/ReactNative/I18nManager.js +3 -2
  145. package/Libraries/ReactNative/PaperUIManager.js +1 -1
  146. package/Libraries/ReactNative/PaperUIManager.win32.js +1 -1
  147. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +2 -2
  148. package/Libraries/ReactNative/ReactNativeRuntimeDiagnostics.js +2 -2
  149. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +3 -2
  150. package/Libraries/StyleSheet/Rect.js +2 -2
  151. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  152. package/Libraries/StyleSheet/StyleSheet.win32.js +1 -1
  153. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
  154. package/Libraries/StyleSheet/private/_TransformStyle.js +18 -18
  155. package/Libraries/StyleSheet/processBackgroundImage.js +138 -136
  156. package/Libraries/Text/TextAncestor.js +1 -2
  157. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
  158. package/Libraries/Types/CodegenTypes.js +2 -1
  159. package/Libraries/Types/CoreEventTypes.js +40 -40
  160. package/Libraries/Types/CoreEventTypes.win32.js +40 -40
  161. package/Libraries/UTFSequence.js +2 -2
  162. package/Libraries/Utilities/BackHandler.android.js +2 -2
  163. package/Libraries/Utilities/BackHandler.ios.js +2 -2
  164. package/Libraries/Utilities/BackHandler.win32.js +2 -2
  165. package/Libraries/Utilities/HMRClient.js +2 -2
  166. package/Libraries/Utilities/Platform.android.js +4 -4
  167. package/Libraries/Utilities/Platform.flow.js +8 -8
  168. package/Libraries/Utilities/Platform.flow.win32.js +8 -8
  169. package/Libraries/Utilities/Platform.ios.js +4 -4
  170. package/Libraries/Utilities/Platform.win32.js +2 -2
  171. package/Libraries/Utilities/ReactNativeTestTools.js +3 -2
  172. package/Libraries/Utilities/codegenNativeCommands.js +2 -2
  173. package/Libraries/Utilities/codegenNativeComponent.js +2 -2
  174. package/Libraries/Utilities/differ/deepDiffer.js +3 -3
  175. package/Libraries/Utilities/stringifySafe.js +2 -2
  176. package/Libraries/Vibration/Vibration.js +1 -1
  177. package/Libraries/WebSocket/WebSocketEvent.js +1 -1
  178. package/Libraries/YellowBox/YellowBoxDeprecated.js +4 -3
  179. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  180. package/flow/jest.js +14 -14
  181. package/index.js +16 -13
  182. package/index.win32.js +16 -13
  183. package/jest/setup.js +214 -197
  184. package/overrides.json +26 -26
  185. package/package.json +16 -16
  186. package/src/private/featureflags/ReactNativeFeatureFlags.js +11 -30
  187. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +3 -2
  188. package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +2 -2
  189. package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +6 -6
  190. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
  191. package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  192. package/src/private/specs/components/AndroidSwitchNativeComponent.js +4 -4
  193. package/src/private/specs/components/DebuggingOverlayNativeComponent.js +2 -2
  194. package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +2 -2
  195. package/src/private/specs/components/PullToRefreshViewNativeComponent.js +2 -2
  196. package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +2 -2
  197. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +4 -4
  198. package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +2 -2
  199. package/src/private/specs/components/SwitchNativeComponent.js +4 -4
  200. package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +2 -2
  201. package/src/private/specs/modules/NativeAccessibilityManager.js +2 -2
  202. package/src/private/specs/modules/NativeActionSheetManager.js +7 -7
  203. package/src/private/specs/modules/NativeAlertManager.js +2 -2
  204. package/src/private/specs/modules/NativeAnimatedModule.js +2 -2
  205. package/src/private/specs/modules/NativeAnimatedTurboModule.js +2 -2
  206. package/src/private/specs/modules/NativeAppState.js +3 -3
  207. package/src/private/specs/modules/NativeBlobModule.js +1 -1
  208. package/src/private/specs/modules/NativeClipboard.js +1 -1
  209. package/src/private/specs/modules/NativeDeviceInfo.js +8 -8
  210. package/src/private/specs/modules/NativeDialogManagerAndroid.js +4 -4
  211. package/src/private/specs/modules/NativeExceptionsManager.js +2 -2
  212. package/src/private/specs/modules/NativeFantom.js +6 -0
  213. package/src/private/specs/modules/NativeFrameRateLogger.js +1 -1
  214. package/src/private/specs/modules/NativeI18nManager.js +2 -2
  215. package/src/private/specs/modules/NativeImageEditor.js +9 -9
  216. package/src/private/specs/modules/NativeImageLoaderAndroid.js +1 -1
  217. package/src/private/specs/modules/NativeImageLoaderIOS.js +1 -1
  218. package/src/private/specs/modules/NativeImageLoaderWin32.js +1 -1
  219. package/src/private/specs/modules/NativeImageStoreAndroid.js +1 -1
  220. package/src/private/specs/modules/NativeImageStoreIOS.js +3 -3
  221. package/src/private/specs/modules/NativeNetworkingIOS.js +2 -2
  222. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +4 -4
  223. package/src/private/specs/modules/NativePlatformConstantsIOS.js +4 -4
  224. package/src/private/specs/modules/NativePlatformConstantsWin.js +5 -10
  225. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +7 -7
  226. package/src/private/specs/modules/NativeSampleTurboModule.js +2 -2
  227. package/src/private/specs/modules/NativeSettingsManager.js +2 -2
  228. package/src/private/specs/modules/NativeShareModule.js +3 -3
  229. package/src/private/specs/modules/NativeSourceCode.js +2 -2
  230. package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +4 -4
  231. package/src/private/specs/modules/NativeStatusBarManagerIOS.js +6 -6
  232. package/src/private/specs/modules/NativeToastAndroid.js +2 -2
  233. package/src/private/specs/modules/NativeVibration.js +1 -1
  234. package/src/private/specs/modules/NativeWebSocketModule.js +1 -1
  235. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +2 -2
  236. package/src/private/webapis/intersectionobserver/{IntersectionObserverManager.js → internals/IntersectionObserverManager.js} +9 -9
  237. package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
  238. package/src/private/webapis/mutationobserver/{MutationObserverManager.js → internals/MutationObserverManager.js} +8 -8
  239. package/src/private/webapis/performance/EventTiming.js +1 -1
  240. package/src/private/webapis/performance/Performance.js +3 -3
  241. package/src/private/webapis/performance/PerformanceObserver.js +2 -2
  242. package/src/private/webapis/performance/{RawPerformanceEntry.js → internals/RawPerformanceEntry.js} +6 -6
  243. package/src/private/webapis/performance/{Utilities.js → internals/Utilities.js} +1 -1
  244. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +1 -1
package/.flowconfig CHANGED
@@ -164,4 +164,4 @@ untyped-import
164
164
  untyped-type-import
165
165
 
166
166
  [version]
167
- ^0.258.1
167
+ ^0.259.1
package/CHANGELOG.json CHANGED
@@ -2,7 +2,46 @@
2
2
  "name": "@office-iss/react-native-win32",
3
3
  "entries": [
4
4
  {
5
- "date": "Wed, 02 Apr 2025 05:20:20 GMT",
5
+ "date": "Thu, 08 May 2025 05:21:43 GMT",
6
+ "version": "0.0.0-canary.284",
7
+ "tag": "@office-iss/react-native-win32_v0.0.0-canary.284",
8
+ "comments": {
9
+ "prerelease": [
10
+ {
11
+ "author": "yajurgrover24@gmail.com",
12
+ "package": "@office-iss/react-native-win32",
13
+ "commit": "10017d2dc4e60b08d19530c2268924e82ac91947",
14
+ "comment": "initial commit"
15
+ },
16
+ {
17
+ "author": "beachball",
18
+ "package": "@office-iss/react-native-win32",
19
+ "comment": "Bump @rnw-scripts/eslint-config to v1.2.34",
20
+ "commit": "not available"
21
+ },
22
+ {
23
+ "author": "beachball",
24
+ "package": "@office-iss/react-native-win32",
25
+ "comment": "Bump @rnw-scripts/jest-out-of-tree-snapshot-resolver to v1.1.38",
26
+ "commit": "not available"
27
+ },
28
+ {
29
+ "author": "beachball",
30
+ "package": "@office-iss/react-native-win32",
31
+ "comment": "Bump @rnw-scripts/just-task to v2.3.51",
32
+ "commit": "not available"
33
+ },
34
+ {
35
+ "author": "beachball",
36
+ "package": "@office-iss/react-native-win32",
37
+ "comment": "Bump react-native-platform-override to v1.9.53",
38
+ "commit": "not available"
39
+ }
40
+ ]
41
+ }
42
+ },
43
+ {
44
+ "date": "Wed, 02 Apr 2025 05:22:08 GMT",
6
45
  "version": "0.0.0-canary.283",
7
46
  "tag": "@office-iss/react-native-win32_v0.0.0-canary.283",
8
47
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,21 +1,33 @@
1
1
  # Change Log - @office-iss/react-native-win32
2
2
 
3
- <!-- This log was last generated on Wed, 02 Apr 2025 05:20:20 GMT and should not be manually modified. -->
3
+ <!-- This log was last generated on Thu, 08 May 2025 05:21:43 GMT and should not be manually modified. -->
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
- ## 0.0.0-canary.283
7
+ ## 0.0.0-canary.284
8
8
 
9
- Wed, 02 Apr 2025 05:20:20 GMT
9
+ Thu, 08 May 2025 05:21:43 GMT
10
10
 
11
11
  ### Changes
12
12
 
13
- - bump dependencies missed in integrations (tatianakapos@microsoft.com)
14
- - Bump @rnw-scripts/eslint-config to v1.2.33
15
- - Bump @rnw-scripts/jest-out-of-tree-snapshot-resolver to v1.1.37
16
- - Bump @rnw-scripts/just-task to v2.3.50
17
- - Bump react-native-platform-override to v1.9.52
13
+ - initial commit (yajurgrover24@gmail.com)
14
+ - Bump @rnw-scripts/eslint-config to v1.2.34
15
+ - Bump @rnw-scripts/jest-out-of-tree-snapshot-resolver to v1.1.38
16
+ - Bump @rnw-scripts/just-task to v2.3.51
17
+ - Bump react-native-platform-override to v1.9.53
18
18
 
19
+ ## 0.0.0-canary.283
20
+
21
+ Wed, 02 Apr 2025 05:22:08 GMT
22
+
23
+ ### Changes
24
+
25
+ - bump dependencies missed in integrations (tatianakapos@microsoft.com)
26
+ - Bump @rnw-scripts/eslint-config to v1.2.33
27
+ - Bump @rnw-scripts/jest-out-of-tree-snapshot-resolver to v1.1.37
28
+ - Bump @rnw-scripts/just-task to v2.3.50
29
+ - Bump react-native-platform-override to v1.9.52
30
+
19
31
  ## 0.0.0-canary.282
20
32
 
21
33
  Fri, 07 Mar 2025 06:27:15 GMT
@@ -10,13 +10,14 @@
10
10
 
11
11
  import invariant from 'invariant';
12
12
  import * as React from 'react';
13
+ import {useEffect} from 'react';
13
14
  import {DeviceEventEmitter, NativeModules, View} from 'react-native';
14
15
  import NativeAccessibilityManager from 'react-native/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager';
15
16
 
16
17
  const {TestModule} = NativeModules;
17
18
 
18
- class AccessibilityManagerTest extends React.Component<{...}> {
19
- componentDidMount(): void {
19
+ function AccessibilityManagerTest(): React.Node {
20
+ useEffect(() => {
20
21
  invariant(
21
22
  NativeAccessibilityManager,
22
23
  "NativeAccessibilityManager doesn't exist",
@@ -36,16 +37,20 @@ class AccessibilityManagerTest extends React.Component<{...}> {
36
37
  accessibilityExtraExtraLarge: 11.0,
37
38
  accessibilityExtraExtraExtraLarge: 12.0,
38
39
  });
39
- DeviceEventEmitter.addListener('didUpdateDimensions', update => {
40
- TestModule.markTestPassed(update.window.fontScale === 4.0);
41
- });
42
- }
43
40
 
44
- render(): React.Node {
45
- return <View />;
46
- }
47
- }
41
+ const subscription = DeviceEventEmitter.addListener(
42
+ 'didUpdateDimensions',
43
+ update => {
44
+ TestModule.markTestPassed(update.window.fontScale === 4.0);
45
+ },
46
+ );
48
47
 
49
- AccessibilityManagerTest.displayName = 'AccessibilityManagerTest';
48
+ return () => {
49
+ subscription.remove();
50
+ };
51
+ }, []);
52
+
53
+ return <View />;
54
+ }
50
55
 
51
- module.exports = AccessibilityManagerTest;
56
+ export default AccessibilityManagerTest;
@@ -10,62 +10,77 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const React = require('react');
14
- const ReactNative = require('react-native');
15
- const deepDiffer = require('react-native/Libraries/Utilities/differ/deepDiffer');
13
+ import * as React from 'react';
14
+ import {useEffect, useState} from 'react';
15
+ import {
16
+ NativeAppEventEmitter,
17
+ NativeModules,
18
+ StyleSheet,
19
+ Text,
20
+ View,
21
+ } from 'react-native';
22
+ import deepDiffer from 'react-native/Libraries/Utilities/differ/deepDiffer';
16
23
 
17
- const {NativeAppEventEmitter, StyleSheet, Text, View} = ReactNative;
18
- const {TestModule} = ReactNative.NativeModules;
24
+ const {TestModule} = NativeModules;
19
25
 
20
26
  const TEST_PAYLOAD = {foo: 'bar'};
21
27
 
22
28
  type AppEvent = {
23
29
  data: Object,
24
30
  ts: number,
25
- ...
26
31
  };
32
+
27
33
  type State = {
28
34
  sent: 'none' | AppEvent,
29
35
  received: 'none' | AppEvent,
30
36
  elapsed?: string,
31
- ...
32
37
  };
33
38
 
34
- class AppEventsTest extends React.Component<{...}, State> {
35
- state: State = {sent: 'none', received: 'none'};
39
+ function AppEventsTest(): React.Node {
40
+ const [state, setState] = useState<State>({
41
+ sent: 'none',
42
+ received: 'none',
43
+ });
44
+
45
+ useEffect(() => {
46
+ const receiveEvent = (event: any) => {
47
+ if (deepDiffer(event.data, TEST_PAYLOAD)) {
48
+ throw new Error('Received wrong event: ' + JSON.stringify(event));
49
+ }
50
+ const elapsed = Date.now() - event.ts + 'ms';
51
+ setState(prevState => ({
52
+ ...prevState,
53
+ received: event,
54
+ elapsed,
55
+ }));
56
+ TestModule.markTestCompleted();
57
+ };
58
+
59
+ const listener = NativeAppEventEmitter.addListener(
60
+ 'testEvent',
61
+ receiveEvent,
62
+ );
36
63
 
37
- componentDidMount() {
38
- NativeAppEventEmitter.addListener('testEvent', this.receiveEvent);
39
64
  const event = {data: TEST_PAYLOAD, ts: Date.now()};
40
65
  TestModule.sendAppEvent('testEvent', event);
41
- this.setState({sent: event});
42
- }
66
+ setState(prevState => ({...prevState, sent: event}));
43
67
 
44
- receiveEvent: (event: any) => void = (event: any) => {
45
- if (deepDiffer(event.data, TEST_PAYLOAD)) {
46
- throw new Error('Received wrong event: ' + JSON.stringify(event));
47
- }
48
- const elapsed = Date.now() - event.ts + 'ms';
49
- this.setState({received: event, elapsed}, () => {
50
- TestModule.markTestCompleted();
51
- });
52
- };
68
+ return () => {
69
+ listener.remove();
70
+ };
71
+ }, []);
53
72
 
54
- render(): React.Node {
55
- return (
56
- <View style={styles.container}>
57
- <Text>{JSON.stringify(this.state, null, ' ')}</Text>
58
- </View>
59
- );
60
- }
73
+ return (
74
+ <View style={styles.container}>
75
+ <Text>{JSON.stringify(state, null, ' ')}</Text>
76
+ </View>
77
+ );
61
78
  }
62
79
 
63
- AppEventsTest.displayName = 'AppEventsTest';
64
-
65
80
  const styles = StyleSheet.create({
66
81
  container: {
67
82
  margin: 40,
68
83
  },
69
84
  });
70
85
 
71
- module.exports = AppEventsTest;
86
+ export default AppEventsTest;
@@ -12,15 +12,15 @@
12
12
 
13
13
  import type {ExtendedError} from 'react-native/Libraries/Core/ExtendedError';
14
14
 
15
- const React = require('react');
16
- const ReactNative = require('react-native');
17
- const parseErrorStack = require('react-native/Libraries/Core/Devtools/parseErrorStack');
18
- const {View} = ReactNative;
15
+ import * as React from 'react';
16
+ import {useEffect} from 'react';
17
+ import {NativeModules, View} from 'react-native';
18
+ import parseErrorStack from 'react-native/Libraries/Core/Devtools/parseErrorStack';
19
19
 
20
- const {TestModule} = ReactNative.NativeModules;
20
+ const {TestModule} = NativeModules;
21
21
 
22
- class GlobalEvalWithSourceUrlTest extends React.Component<{...}> {
23
- componentDidMount(): void {
22
+ function GlobalEvalWithSourceUrlTest(): React.Node {
23
+ useEffect(() => {
24
24
  if (typeof global.globalEvalWithSourceUrl !== 'function') {
25
25
  throw new Error(
26
26
  'Expected to find globalEvalWithSourceUrl function on global object but found ' +
@@ -75,13 +75,9 @@ class GlobalEvalWithSourceUrlTest extends React.Component<{...}> {
75
75
  );
76
76
  }
77
77
  TestModule.markTestCompleted();
78
- }
78
+ }, []);
79
79
 
80
- render(): React.Node {
81
- return <View />;
82
- }
80
+ return <View />;
83
81
  }
84
82
 
85
- GlobalEvalWithSourceUrlTest.displayName = 'GlobalEvalWithSourceUrlTest';
86
-
87
- module.exports = GlobalEvalWithSourceUrlTest;
83
+ export default GlobalEvalWithSourceUrlTest;
@@ -10,10 +10,13 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const React = require('react');
14
- const ReactNative = require('react-native');
15
- const {Image, View, Text, StyleSheet} = ReactNative;
16
- const {TestModule} = ReactNative.NativeModules;
13
+ import type {ImageURISource} from 'react-native/Libraries/Image/ImageSource';
14
+
15
+ import * as React from 'react';
16
+ import {useEffect, useState} from 'react';
17
+ import {Image, NativeModules, StyleSheet, Text, View} from 'react-native';
18
+
19
+ const {TestModule} = NativeModules;
17
20
 
18
21
  /*
19
22
  * The reload and force-cache tests don't actually verify that the complete functionality.
@@ -27,89 +30,71 @@ const {TestModule} = ReactNative.NativeModules;
27
30
 
28
31
  const TESTS = ['only-if-cached', 'default', 'reload', 'force-cache'];
29
32
 
30
- type Props = {...};
31
- type State = {
32
- 'only-if-cached'?: boolean,
33
- default?: boolean,
34
- reload?: boolean,
35
- 'force-cache'?: boolean,
36
- ...
37
- };
33
+ function ImageCachePolicyTest(): React.Node {
34
+ const [state, setState] = useState({
35
+ 'only-if-cached': undefined,
36
+ default: undefined,
37
+ reload: undefined,
38
+ 'force-cache': undefined,
39
+ });
38
40
 
39
- class ImageCachePolicyTest extends React.Component<Props, $FlowFixMeState> {
40
- state: $FlowFixMe | {...} = {};
41
+ const testComplete = (
42
+ name: $NonMaybeType<ImageURISource['cache']>,
43
+ pass: boolean,
44
+ ) => {
45
+ setState(prevState => ({
46
+ ...prevState,
47
+ [name]: pass,
48
+ }));
49
+ };
41
50
 
42
- shouldComponentUpdate(nextProps: Props, nextState: State): boolean {
43
- const results: Array<?boolean> = TESTS.map(x => nextState[x]);
51
+ useEffect(() => {
52
+ const results = TESTS.map(key => state[key]);
44
53
 
45
54
  if (!results.includes(undefined)) {
46
- const result: boolean = results.reduce(
47
- (x, y) => (x === y) === true,
48
- true,
49
- );
55
+ const result = results.reduce((x, y) => (x === y) === true, true);
50
56
  TestModule.markTestPassed(result);
51
57
  }
58
+ }, [state]);
52
59
 
53
- return false;
54
- }
55
-
56
- testComplete(name: string, pass: boolean) {
57
- this.setState({[name]: pass});
58
- }
59
-
60
- render(): React.Node {
61
- return (
62
- <View style={styles.container}>
63
- <Text>Hello</Text>
64
- <Image
65
- source={{
66
- uri:
67
- 'https://raw.githubusercontent.com/facebook/react-native/HEAD/Libraries/NewAppScreen/components/logo.png?cacheBust=notinCache' +
68
- Date.now(),
69
- cache: 'only-if-cached',
70
- }}
71
- onLoad={() => this.testComplete('only-if-cached', false)}
72
- onError={() => this.testComplete('only-if-cached', true)}
73
- style={styles.base}
74
- />
75
- <Image
76
- source={{
77
- uri:
78
- 'https://raw.githubusercontent.com/facebook/react-native/HEAD/Libraries/NewAppScreen/components/logo.png?cacheBust=notinCache' +
79
- Date.now(),
80
- cache: 'default',
81
- }}
82
- onLoad={() => this.testComplete('default', true)}
83
- onError={() => this.testComplete('default', false)}
84
- style={styles.base}
85
- />
86
- <Image
87
- source={{
88
- uri:
89
- 'https://raw.githubusercontent.com/facebook/react-native/HEAD/Libraries/NewAppScreen/components/logo.png?cacheBust=notinCache' +
90
- Date.now(),
91
- cache: 'reload',
92
- }}
93
- onLoad={() => this.testComplete('reload', true)}
94
- onError={() => this.testComplete('reload', false)}
95
- style={styles.base}
96
- />
97
- <Image
98
- source={{
99
- uri:
100
- 'https://raw.githubusercontent.com/facebook/react-native/HEAD/Libraries/NewAppScreen/components/logo.png?cacheBust=notinCache' +
101
- Date.now(),
102
- cache: 'force-cache',
103
- }}
104
- onLoad={() => this.testComplete('force-cache', true)}
105
- onError={() => this.testComplete('force-cache', false)}
106
- style={styles.base}
107
- />
108
- </View>
109
- );
110
- }
60
+ return (
61
+ <View style={styles.container}>
62
+ <Text>Hello</Text>
63
+ <Image
64
+ source={getImageSource('only-if-cached')}
65
+ onLoad={() => testComplete('only-if-cached', false)}
66
+ onError={() => testComplete('only-if-cached', true)}
67
+ style={styles.base}
68
+ />
69
+ <Image
70
+ source={getImageSource('default')}
71
+ onLoad={() => testComplete('default', true)}
72
+ onError={() => testComplete('default', false)}
73
+ style={styles.base}
74
+ />
75
+ <Image
76
+ source={getImageSource('reload')}
77
+ onLoad={() => testComplete('reload', true)}
78
+ onError={() => testComplete('reload', false)}
79
+ style={styles.base}
80
+ />
81
+ <Image
82
+ source={getImageSource('force-cache')}
83
+ onLoad={() => testComplete('force-cache', true)}
84
+ onError={() => testComplete('force-cache', false)}
85
+ style={styles.base}
86
+ />
87
+ </View>
88
+ );
111
89
  }
112
90
 
91
+ const getImageSource = (cache: ImageURISource['cache']) => ({
92
+ uri:
93
+ 'https://raw.githubusercontent.com/facebook/react-native/HEAD/Libraries/NewAppScreen/components/logo.png?cacheBust=notinCache' +
94
+ Date.now(),
95
+ cache,
96
+ });
97
+
113
98
  const styles = StyleSheet.create({
114
99
  container: {
115
100
  flex: 1,
@@ -120,6 +105,4 @@ const styles = StyleSheet.create({
120
105
  },
121
106
  });
122
107
 
123
- ImageCachePolicyTest.displayName = 'ImageCachePolicyTest';
124
-
125
- module.exports = ImageCachePolicyTest;
108
+ export default ImageCachePolicyTest;
@@ -10,33 +10,30 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const React = require('react');
14
- const ReactNative = require('react-native');
15
- const {Image} = ReactNative;
16
- const {TestModule} = ReactNative.NativeModules;
13
+ import * as React from 'react';
14
+ import {useEffect} from 'react';
15
+ import {Image, NativeModules} from 'react-native';
17
16
 
18
- class ImageSnapshotTest extends React.Component<{...}> {
19
- componentDidMount(): void {
17
+ const {TestModule} = NativeModules;
18
+
19
+ function ImageSnapshotTest(): React.Node {
20
+ useEffect(() => {
20
21
  if (!TestModule.verifySnapshot) {
21
22
  throw new Error('TestModule.verifySnapshot not defined.');
22
23
  }
23
- }
24
+ }, []);
24
25
 
25
- done: (success: boolean) => void = (success: boolean) => {
26
+ const done = (success: boolean) => {
26
27
  TestModule.markTestPassed(success);
27
28
  };
28
29
 
29
- render(): React.Node {
30
- return (
31
- <Image
32
- source={require('./blue_square.png')}
33
- defaultSource={require('./red_square.png')}
34
- onLoad={() => TestModule.verifySnapshot(this.done)}
35
- />
36
- );
37
- }
30
+ return (
31
+ <Image
32
+ source={require('./blue_square.png')}
33
+ defaultSource={require('./red_square.png')}
34
+ onLoad={() => TestModule.verifySnapshot(done)}
35
+ />
36
+ );
38
37
  }
39
38
 
40
- ImageSnapshotTest.displayName = 'ImageSnapshotTest';
41
-
42
- module.exports = ImageSnapshotTest;
39
+ export default ImageSnapshotTest;
@@ -10,65 +10,49 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const React = require('react');
14
- const ReactNative = require('react-native');
13
+ import * as React from 'react';
14
+ import {useEffect, useState} from 'react';
15
+ import {NativeModules, StyleSheet, Text, View} from 'react-native';
15
16
 
16
- const {Text, View, StyleSheet} = ReactNative;
17
- const {TestModule} = ReactNative.NativeModules;
17
+ const {TestModule} = NativeModules;
18
18
 
19
- type Props = $ReadOnly<{|
19
+ type Props = $ReadOnly<{
20
20
  shouldThrow?: boolean,
21
21
  waitOneFrame?: boolean,
22
- |}>;
22
+ }>;
23
23
 
24
- type State = {|
25
- done: boolean,
26
- |};
24
+ function IntegrationTestHarnessTest(props: Props): React.Node {
25
+ const [done, setDone] = useState(false);
27
26
 
28
- class IntegrationTestHarnessTest extends React.Component<Props, State> {
29
- state: State = {
30
- done: false,
31
- };
27
+ useEffect(() => {
28
+ const runTest = () => {
29
+ if (props.shouldThrow) {
30
+ throw new Error('Throwing error because shouldThrow');
31
+ }
32
+ if (!TestModule) {
33
+ throw new Error('RCTTestModule is not registered.');
34
+ } else if (!TestModule.markTestCompleted) {
35
+ throw new Error('RCTTestModule.markTestCompleted not defined.');
36
+ }
37
+ setDone(true);
38
+ TestModule.markTestCompleted();
39
+ };
32
40
 
33
- componentDidMount() {
34
- if (this.props.waitOneFrame) {
35
- requestAnimationFrame(this.runTest);
41
+ if (props.waitOneFrame) {
42
+ requestAnimationFrame(runTest);
36
43
  } else {
37
- this.runTest();
38
- }
39
- }
40
-
41
- runTest: () => void = () => {
42
- if (this.props.shouldThrow) {
43
- throw new Error('Throwing error because shouldThrow');
44
+ runTest();
44
45
  }
45
- if (!TestModule) {
46
- throw new Error('RCTTestModule is not registered.');
47
- } else if (!TestModule.markTestCompleted) {
48
- throw new Error('RCTTestModule.markTestCompleted not defined.');
49
- }
50
- this.setState({done: true}, () => {
51
- TestModule.markTestCompleted();
52
- });
53
- };
46
+ }, [props.shouldThrow, props.waitOneFrame]);
54
47
 
55
- render(): React.Node {
56
- return (
57
- <View style={styles.container}>
58
- <Text>
59
- {
60
- /* $FlowFixMe[incompatible-type] (>=0.54.0 site=react_native_fb,react_
61
- * native_oss) This comment suppresses an error found when Flow v0.54
62
- * was deployed. To see the error delete this comment and run Flow.
63
- */
64
- // $FlowFixMe[unsafe-addition]
65
- this.constructor.displayName + ': '
66
- }
67
- {this.state.done ? 'Done' : 'Testing...'}
68
- </Text>
69
- </View>
70
- );
71
- }
48
+ return (
49
+ <View style={styles.container}>
50
+ <Text>
51
+ {IntegrationTestHarnessTest.name + ': '}
52
+ {done ? 'Done' : 'Testing...'}
53
+ </Text>
54
+ </View>
55
+ );
72
56
  }
73
57
 
74
58
  const styles = StyleSheet.create({
@@ -78,6 +62,4 @@ const styles = StyleSheet.create({
78
62
  },
79
63
  });
80
64
 
81
- IntegrationTestHarnessTest.displayName = 'IntegrationTestHarnessTest';
82
-
83
- module.exports = IntegrationTestHarnessTest;
65
+ export default IntegrationTestHarnessTest;
@@ -32,11 +32,14 @@ const TESTS = [
32
32
  require('./GlobalEvalWithSourceUrlTest'),
33
33
  ];
34
34
 
35
- TESTS.forEach(
36
- /* $FlowFixMe[incompatible-call] (>=0.54.0 site=react_native_fb,react_native_
37
- * oss) This comment suppresses an error found when Flow v0.54 was deployed.
38
- * To see the error delete this comment and run Flow. */
39
- test => AppRegistry.registerComponent(test.displayName, () => test),
35
+ TESTS.forEach(test =>
36
+ AppRegistry.registerComponent(
37
+ test.displayName || test.name || '',
38
+ /* $FlowFixMe[incompatible-call] (>=0.54.0 site=react_native_fb,react_native_
39
+ * oss) This comment suppresses an error found when Flow v0.54 was deployed.
40
+ * To see the error delete this comment and run Flow. */
41
+ () => test,
42
+ ),
40
43
  );
41
44
 
42
45
  // Modules required for integration tests
@@ -78,7 +81,9 @@ class IntegrationTestsApp extends React.Component<{...}, $FlowFixMeState> {
78
81
  * deployed. To see the error, delete this comment and run Flow.
79
82
  */
80
83
  style={styles.row}>
81
- <Text style={styles.testName}>{test.displayName}</Text>
84
+ <Text style={styles.testName}>
85
+ {test.displayName || test.name}
86
+ </Text>
82
87
  </TouchableOpacity>,
83
88
  <View style={styles.separator} />,
84
89
  ])}
@@ -26,7 +26,7 @@ function debug(...args: Array<void | Layout | string>) {
26
26
  // console.log.apply(null, arguments);
27
27
  }
28
28
 
29
- type Props = $ReadOnly<{||}>;
29
+ type Props = $ReadOnly<{}>;
30
30
 
31
31
  type State = {
32
32
  didAnimation: boolean,