@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
@@ -10,6 +10,11 @@
10
10
 
11
11
  'use strict';
12
12
 
13
+ if (__DEV__) {
14
+ // React DevTools need to be set up before the console.error patch.
15
+ require('./setUpReactDevTools');
16
+ }
17
+
13
18
  if (global.RN$useAlwaysAvailableJSErrorHandling !== true) {
14
19
  /**
15
20
  * Sets up the console and exception handling (redbox) for React Native.
@@ -29,7 +34,7 @@ if (global.RN$useAlwaysAvailableJSErrorHandling !== true) {
29
34
  }
30
35
  };
31
36
 
32
- const ErrorUtils = require('../vendor/core/ErrorUtils');
37
+ const ErrorUtils = require('../vendor/core/ErrorUtils').default;
33
38
  ErrorUtils.setGlobalHandler(handleError);
34
39
  }
35
40
  }
@@ -114,7 +114,7 @@ if (__DEV__) {
114
114
  // not when debugging in chrome
115
115
  // TODO(t12832058) This check is broken
116
116
  if (!window.document) {
117
- const AppState = require('../AppState/AppState');
117
+ const AppState = require('../AppState/AppState').default;
118
118
  const getDevServer = require('./Devtools/getDevServer');
119
119
 
120
120
  // Don't steal the DevTools from currently active app.
@@ -10,9 +10,6 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const ReactNativeFeatureFlags = require('../../src/private/featureflags/ReactNativeFeatureFlags');
14
- const NativeReactNativeFeatureFlags =
15
- require('../../src/private/featureflags/specs/NativeReactNativeFeatureFlags').default;
16
13
  const {polyfillGlobal} = require('../Utilities/PolyfillFunctions');
17
14
 
18
15
  if (__DEV__) {
@@ -21,45 +18,8 @@ if (__DEV__) {
21
18
  }
22
19
  }
23
20
 
24
- const isEventLoopEnabled = (() => {
25
- if (NativeReactNativeFeatureFlags == null) {
26
- return false;
27
- }
28
-
29
- return (
30
- ReactNativeFeatureFlags.enableBridgelessArchitecture() &&
31
- !ReactNativeFeatureFlags.disableEventLoopOnBridgeless()
32
- );
33
- })();
34
-
35
21
  // In bridgeless mode, timers are host functions installed from cpp.
36
- if (global.RN$Bridgeless !== true) {
37
- /**
38
- * Set up timers.
39
- * You can use this module directly, or just require InitializeCore.
40
- */
41
- const defineLazyTimer = (
42
- name:
43
- | 'cancelAnimationFrame'
44
- | 'cancelIdleCallback'
45
- | 'clearInterval'
46
- | 'clearTimeout'
47
- | 'requestAnimationFrame'
48
- | 'requestIdleCallback'
49
- | 'setInterval'
50
- | 'setTimeout',
51
- ) => {
52
- polyfillGlobal(name, () => require('./Timers/JSTimers')[name]);
53
- };
54
- defineLazyTimer('setTimeout');
55
- defineLazyTimer('clearTimeout');
56
- defineLazyTimer('setInterval');
57
- defineLazyTimer('clearInterval');
58
- defineLazyTimer('requestAnimationFrame');
59
- defineLazyTimer('cancelAnimationFrame');
60
- defineLazyTimer('requestIdleCallback');
61
- defineLazyTimer('cancelIdleCallback');
62
- } else if (isEventLoopEnabled) {
22
+ if (global.RN$Bridgeless === true) {
63
23
  polyfillGlobal(
64
24
  'requestIdleCallback',
65
25
  () =>
@@ -73,12 +33,7 @@ if (global.RN$Bridgeless !== true) {
73
33
  require('../../src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks')
74
34
  .default.cancelIdleCallback,
75
35
  );
76
- }
77
36
 
78
- // We need to check if the native module is available before accessing the
79
- // feature flag, because otherwise the API would throw an error in the legacy
80
- // architecture in OSS, where the native module isn't available.
81
- if (isEventLoopEnabled) {
82
37
  // This is the flag that tells React to use `queueMicrotask` to batch state
83
38
  // updates, instead of using the scheduler to schedule a regular task.
84
39
  // We use a global variable because we don't currently have any other
@@ -103,6 +58,32 @@ if (isEventLoopEnabled) {
103
58
  () => require('./Timers/immediateShim').clearImmediate,
104
59
  );
105
60
  } else {
61
+ /**
62
+ * Set up timers.
63
+ * You can use this module directly, or just require InitializeCore.
64
+ */
65
+ const defineLazyTimer = (
66
+ name:
67
+ | 'cancelAnimationFrame'
68
+ | 'cancelIdleCallback'
69
+ | 'clearInterval'
70
+ | 'clearTimeout'
71
+ | 'requestAnimationFrame'
72
+ | 'requestIdleCallback'
73
+ | 'setInterval'
74
+ | 'setTimeout',
75
+ ) => {
76
+ polyfillGlobal(name, () => require('./Timers/JSTimers')[name]);
77
+ };
78
+ defineLazyTimer('setTimeout');
79
+ defineLazyTimer('clearTimeout');
80
+ defineLazyTimer('setInterval');
81
+ defineLazyTimer('clearInterval');
82
+ defineLazyTimer('requestAnimationFrame');
83
+ defineLazyTimer('cancelAnimationFrame');
84
+ defineLazyTimer('requestIdleCallback');
85
+ defineLazyTimer('cancelIdleCallback');
86
+
106
87
  // Polyfill it with promise (regardless it's polyfilled or native) otherwise.
107
88
  polyfillGlobal(
108
89
  'queueMicrotask',
@@ -112,14 +93,12 @@ if (isEventLoopEnabled) {
112
93
  // When promise was polyfilled hence is queued to the RN microtask queue,
113
94
  // we polyfill the immediate APIs as aliases to the ReactNativeMicrotask APIs.
114
95
  // Note that in bridgeless mode, immediate APIs are installed from cpp.
115
- if (global.RN$Bridgeless !== true) {
116
- polyfillGlobal(
117
- 'setImmediate',
118
- () => require('./Timers/JSTimers').queueReactNativeMicrotask,
119
- );
120
- polyfillGlobal(
121
- 'clearImmediate',
122
- () => require('./Timers/JSTimers').clearReactNativeMicrotask,
123
- );
124
- }
96
+ polyfillGlobal(
97
+ 'setImmediate',
98
+ () => require('./Timers/JSTimers').queueReactNativeMicrotask,
99
+ );
100
+ polyfillGlobal(
101
+ 'clearImmediate',
102
+ () => require('./Timers/JSTimers').clearReactNativeMicrotask,
103
+ );
125
104
  }
@@ -26,11 +26,11 @@ polyfillGlobal('Headers', () => require('../Network/fetch').Headers);
26
26
  polyfillGlobal('Request', () => require('../Network/fetch').Request);
27
27
  polyfillGlobal('Response', () => require('../Network/fetch').Response);
28
28
  polyfillGlobal('WebSocket', () => require('../WebSocket/WebSocket'));
29
- polyfillGlobal('Blob', () => require('../Blob/Blob'));
30
- polyfillGlobal('File', () => require('../Blob/File'));
31
- polyfillGlobal('FileReader', () => require('../Blob/FileReader'));
32
- polyfillGlobal('URL', () => require('../Blob/URL').URL); // flowlint-line untyped-import:off
33
- polyfillGlobal('URLSearchParams', () => require('../Blob/URL').URLSearchParams); // flowlint-line untyped-import:off
29
+ polyfillGlobal('Blob', () => require('../Blob/Blob').default);
30
+ polyfillGlobal('File', () => require('../Blob/File').default);
31
+ polyfillGlobal('FileReader', () => require('../Blob/FileReader').default);
32
+ polyfillGlobal('URL', () => require('../Blob/URL').URL);
33
+ polyfillGlobal('URLSearchParams', () => require('../Blob/URL').URLSearchParams);
34
34
  polyfillGlobal(
35
35
  'AbortController',
36
36
  () => require('abort-controller/dist/abort-controller').AbortController, // flowlint-line untyped-import:off
@@ -14,7 +14,8 @@ import {beginEvent, endEvent} from '../Performance/Systrace';
14
14
  import EventEmitter from '../vendor/emitter/EventEmitter';
15
15
 
16
16
  // FIXME: use typed events
17
- type RCTDeviceEventDefinitions = $FlowFixMe;
17
+ /* $FlowFixMe[unclear-type] unclear type of events */
18
+ type RCTDeviceEventDefinitions = {[name: string]: Array<any>};
18
19
 
19
20
  /**
20
21
  * Global EventEmitter used by the native platform to emit events to JavaScript.
@@ -11,12 +11,12 @@
11
11
  // Make sure global Event is defined
12
12
  import EventPolyfill from './EventPolyfill';
13
13
 
14
- type CustomEvent$Options = $ReadOnly<{|
14
+ type CustomEvent$Options = $ReadOnly<{
15
15
  bubbles?: boolean,
16
16
  cancelable?: boolean,
17
17
  composed?: boolean,
18
18
  detail?: {...},
19
- |}>;
19
+ }>;
20
20
 
21
21
  class CustomEvent extends EventPolyfill {
22
22
  detail: ?{...};
@@ -10,4 +10,9 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- module.exports = require('@react-native/assets-registry/registry');
13
+ import type {PackagerAsset} from '@react-native/assets-registry/registry';
14
+
15
+ module.exports = require('@react-native/assets-registry/registry') as {
16
+ registerAsset: (asset: PackagerAsset) => number,
17
+ getAssetByID: (assetId: number) => PackagerAsset,
18
+ };
@@ -10,13 +10,13 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- export type ResolvedAssetSource = {|
13
+ export type ResolvedAssetSource = {
14
14
  +__packager_asset: boolean,
15
15
  +width: ?number,
16
16
  +height: ?number,
17
17
  +uri: string,
18
18
  +scale: number,
19
- |};
19
+ };
20
20
 
21
21
  import type {
22
22
  AssetDestPathResolver,
@@ -24,16 +24,16 @@ import type {ImageSource} from './ImageSource';
24
24
  import type {ElementRef, Node, RefSetter} from 'react';
25
25
 
26
26
  export type ImageLoadEvent = SyntheticEvent<
27
- $ReadOnly<{|
28
- source: $ReadOnly<{|
27
+ $ReadOnly<{
28
+ source: $ReadOnly<{
29
29
  width: number,
30
30
  height: number,
31
31
  uri: string,
32
- |}>,
33
- |}>,
32
+ }>,
33
+ }>,
34
34
  >;
35
35
 
36
- type IOSImageProps = $ReadOnly<{|
36
+ type IOSImageProps = $ReadOnly<{
37
37
  /**
38
38
  * A static image to display while loading the image source.
39
39
  *
@@ -52,12 +52,12 @@ type IOSImageProps = $ReadOnly<{|
52
52
  * See https://reactnative.dev/docs/image#onprogress
53
53
  */
54
54
  onProgress?: ?(
55
- event: SyntheticEvent<$ReadOnly<{|loaded: number, total: number|}>>,
55
+ event: SyntheticEvent<$ReadOnly<{loaded: number, total: number}>>,
56
56
  ) => void,
57
- |}>;
57
+ }>;
58
58
 
59
- type AndroidImageProps = $ReadOnly<{|
60
- loadingIndicatorSource?: ?(number | $ReadOnly<{|uri: string|}>),
59
+ type AndroidImageProps = $ReadOnly<{
60
+ loadingIndicatorSource?: ?(number | $ReadOnly<{uri: string}>),
61
61
  progressiveRenderingEnabled?: ?boolean,
62
62
  fadeDuration?: ?number,
63
63
 
@@ -76,10 +76,10 @@ type AndroidImageProps = $ReadOnly<{|
76
76
  * Defaults to 1.0.
77
77
  */
78
78
  resizeMultiplier?: ?number,
79
- |}>;
79
+ }>;
80
80
 
81
- export type ImageProps = $ReadOnly<{|
82
- ...$Diff<ViewProps, $ReadOnly<{|style: ?ViewStyleProp|}>>,
81
+ export type ImageProps = $ReadOnly<{
82
+ ...$Diff<ViewProps, $ReadOnly<{style: ?ViewStyleProp}>>,
83
83
  ...IOSImageProps,
84
84
  ...AndroidImageProps,
85
85
 
@@ -164,9 +164,9 @@ export type ImageProps = $ReadOnly<{|
164
164
  */
165
165
  onError?: ?(
166
166
  event: SyntheticEvent<
167
- $ReadOnly<{|
167
+ $ReadOnly<{
168
168
  error: string,
169
- |}>,
169
+ }>,
170
170
  >,
171
171
  ) => void,
172
172
 
@@ -267,9 +267,9 @@ export type ImageProps = $ReadOnly<{|
267
267
  */
268
268
  srcSet?: ?string,
269
269
  children?: empty,
270
- |}>;
270
+ }>;
271
271
 
272
- export type ImageBackgroundProps = $ReadOnly<{|
272
+ export type ImageBackgroundProps = $ReadOnly<{
273
273
  ...ImageProps,
274
274
  children?: Node,
275
275
 
@@ -293,4 +293,4 @@ export type ImageBackgroundProps = $ReadOnly<{|
293
293
  * See https://reactnative.dev/docs/imagebackground#imageref
294
294
  */
295
295
  imageRef?: RefSetter<ElementRef<Image>>,
296
- |}>;
296
+ }>;
@@ -12,7 +12,7 @@ import type {ImageURISource} from './ImageSource';
12
12
 
13
13
  import Platform from '../Utilities/Platform';
14
14
 
15
- type NativeImageSourceSpec = $ReadOnly<{|
15
+ type NativeImageSourceSpec = $ReadOnly<{
16
16
  android?: string,
17
17
  ios?: string,
18
18
  default?: string,
@@ -21,7 +21,7 @@ type NativeImageSourceSpec = $ReadOnly<{|
21
21
  // https://reactnative.dev/docs/images#why-not-automatically-size-everything
22
22
  height: number,
23
23
  width: number,
24
- |}>;
24
+ }>;
25
25
 
26
26
  /**
27
27
  * In hybrid apps, use `nativeImageSource` to access images that are already
@@ -13,6 +13,8 @@
13
13
  import type {InspectorData} from '../Renderer/shims/ReactNativeTypes';
14
14
  import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
15
15
 
16
+ import React from 'react';
17
+
16
18
  const TouchableHighlight = require('../Components/Touchable/TouchableHighlight');
17
19
  const TouchableWithoutFeedback = require('../Components/Touchable/TouchableWithoutFeedback');
18
20
  const View = require('../Components/View/View');
@@ -22,15 +24,14 @@ const Text = require('../Text/Text');
22
24
  const mapWithSeparator = require('../Utilities/mapWithSeparator');
23
25
  const BoxInspector = require('./BoxInspector');
24
26
  const StyleInspector = require('./StyleInspector');
25
- const React = require('react');
26
27
 
27
- type Props = $ReadOnly<{|
28
+ type Props = $ReadOnly<{
28
29
  hierarchy: ?InspectorData['hierarchy'],
29
30
  style?: ?ViewStyleProp,
30
31
  frame?: ?Object,
31
32
  selection?: ?number,
32
33
  setSelection?: number => mixed,
33
- |}>;
34
+ }>;
34
35
 
35
36
  class ElementProperties extends React.Component<Props> {
36
37
  render(): React.Node {
@@ -19,6 +19,7 @@ import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
19
19
  import type {ReactDevToolsAgent} from '../Types/ReactDevToolsTypes';
20
20
 
21
21
  import SafeAreaView from '../../src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE';
22
+ import React from 'react';
22
23
 
23
24
  const View = require('../Components/View/View');
24
25
  const PressabilityDebug = require('../Pressability/PressabilityDebug');
@@ -29,7 +30,6 @@ const Platform = require('../Utilities/Platform');
29
30
  const getInspectorDataForViewAtPoint = require('./getInspectorDataForViewAtPoint');
30
31
  const InspectorOverlay = require('./InspectorOverlay');
31
32
  const InspectorPanel = require('./InspectorPanel');
32
- const React = require('react');
33
33
 
34
34
  const {useState} = React;
35
35
 
@@ -19,6 +19,7 @@ import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
19
19
  import type {ReactDevToolsAgent} from '../Types/ReactDevToolsTypes';
20
20
 
21
21
  import SafeAreaView from '../../src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE';
22
+ import React from 'react';
22
23
 
23
24
  const PressabilityDebug = require('../Pressability/PressabilityDebug');
24
25
  const ReactNative = require('../Renderer/shims/ReactNative').default;
@@ -29,7 +30,6 @@ const View = require('../Components/View/View');
29
30
  const getInspectorDataForViewAtPoint = require('./getInspectorDataForViewAtPoint');
30
31
  const InspectorOverlay = require('./InspectorOverlay');
31
32
  const InspectorPanel = require('./InspectorPanel');
32
- const React = require('react');
33
33
 
34
34
  const {useState} = React;
35
35
 
@@ -13,15 +13,16 @@
13
13
  import type {PressEvent} from '../Types/CoreEventTypes';
14
14
  import type {InspectedElement} from './Inspector';
15
15
 
16
+ import React from 'react';
17
+
16
18
  const View = require('../Components/View/View');
17
19
  const StyleSheet = require('../StyleSheet/StyleSheet');
18
20
  const ElementBox = require('./ElementBox');
19
- const React = require('react');
20
21
 
21
- type Props = $ReadOnly<{|
22
+ type Props = $ReadOnly<{
22
23
  inspected?: ?InspectedElement,
23
24
  onTouchPoint: (locationX: number, locationY: number) => void,
24
- |}>;
25
+ }>;
25
26
 
26
27
  function InspectorOverlay({inspected, onTouchPoint}: Props): React.Node {
27
28
  const findViewForTouchEvent = (e: PressEvent) => {
@@ -13,17 +13,17 @@
13
13
  import type {PressEvent} from '../Types/CoreEventTypes';
14
14
  import type {InspectedElement} from './Inspector';
15
15
 
16
+ import React from 'react';
16
17
  // import Dimensions from '../Utilities/Dimensions'; [Win32]
17
18
 
18
19
  const View = require('../Components/View/View');
19
20
  const StyleSheet = require('../StyleSheet/StyleSheet');
20
21
  const ElementBox = require('./ElementBox');
21
- const React = require('react');
22
22
 
23
- type Props = $ReadOnly<{|
23
+ type Props = $ReadOnly<{
24
24
  inspected?: ?InspectedElement,
25
25
  onTouchPoint: (locationX: number, locationY: number) => void,
26
- |}>;
26
+ }>;
27
27
 
28
28
  function InspectorOverlay({inspected, onTouchPoint}: Props): React.Node {
29
29
  const findViewForTouchEvent = (e: PressEvent) => {
@@ -13,8 +13,9 @@
13
13
  import type {ElementsHierarchy, InspectedElement} from './Inspector';
14
14
 
15
15
  import SafeAreaView from '../Components/SafeAreaView/SafeAreaView';
16
+ import React from 'react';
16
17
 
17
- const ScrollView = require('../Components/ScrollView/ScrollView');
18
+ const ScrollView = require('../Components/ScrollView/ScrollView').default;
18
19
  const TouchableHighlight = require('../Components/Touchable/TouchableHighlight');
19
20
  const View = require('../Components/View/View');
20
21
  const StyleSheet = require('../StyleSheet/StyleSheet');
@@ -22,9 +23,8 @@ const Text = require('../Text/Text');
22
23
  const ElementProperties = require('./ElementProperties');
23
24
  const NetworkOverlay = require('./NetworkOverlay');
24
25
  const PerformanceOverlay = require('./PerformanceOverlay');
25
- const React = require('react');
26
26
 
27
- type Props = $ReadOnly<{|
27
+ type Props = $ReadOnly<{
28
28
  devtoolsIsOpen: boolean,
29
29
  inspecting: boolean,
30
30
  setInspecting: (val: boolean) => void,
@@ -38,7 +38,7 @@ type Props = $ReadOnly<{|
38
38
  selection?: ?number,
39
39
  setSelection: number => mixed,
40
40
  inspected?: ?InspectedElement,
41
- |}>;
41
+ }>;
42
42
 
43
43
  class InspectorPanel extends React.Component<Props> {
44
44
  renderWaiting(): React.Node {
@@ -107,11 +107,11 @@ class InspectorPanel extends React.Component<Props> {
107
107
  }
108
108
  }
109
109
 
110
- type InspectorPanelButtonProps = $ReadOnly<{|
110
+ type InspectorPanelButtonProps = $ReadOnly<{
111
111
  onClick: (val: boolean) => void,
112
112
  pressed: boolean,
113
113
  title: string,
114
- |}>;
114
+ }>;
115
115
 
116
116
  class InspectorPanelButton extends React.Component<InspectorPanelButtonProps> {
117
117
  render(): React.Node {
@@ -12,7 +12,9 @@
12
12
 
13
13
  import type {RenderItemProps} from '@react-native/virtualized-lists';
14
14
 
15
- const ScrollView = require('../Components/ScrollView/ScrollView');
15
+ import ScrollView from '../Components/ScrollView/ScrollView';
16
+ import React from 'react';
17
+
16
18
  const TouchableHighlight = require('../Components/Touchable/TouchableHighlight');
17
19
  const View = require('../Components/View/View');
18
20
  const FlatList = require('../Lists/FlatList');
@@ -20,7 +22,6 @@ const XHRInterceptor = require('../Network/XHRInterceptor');
20
22
  const StyleSheet = require('../StyleSheet/StyleSheet');
21
23
  const Text = require('../Text/Text');
22
24
  const WebSocketInterceptor = require('../WebSocket/WebSocketInterceptor');
23
- const React = require('react');
24
25
 
25
26
  const LISTVIEW_CELL_HEIGHT = 15;
26
27
 
@@ -49,11 +50,11 @@ type NetworkRequestInfo = {
49
50
  ...
50
51
  };
51
52
 
52
- type Props = $ReadOnly<{||}>;
53
- type State = {|
53
+ type Props = $ReadOnly<{}>;
54
+ type State = {
54
55
  detailRowId: ?number,
55
56
  requests: Array<NetworkRequestInfo>,
56
- |};
57
+ };
57
58
 
58
59
  function getStringByValue(value: any): string {
59
60
  if (value === undefined) {
@@ -10,11 +10,12 @@
10
10
 
11
11
  'use strict';
12
12
 
13
+ import React from 'react';
14
+
13
15
  const View = require('../Components/View/View');
14
16
  const StyleSheet = require('../StyleSheet/StyleSheet');
15
17
  const Text = require('../Text/Text');
16
18
  const PerformanceLogger = require('../Utilities/GlobalPerformanceLogger');
17
- const React = require('react');
18
19
 
19
20
  class PerformanceOverlay extends React.Component<{...}> {
20
21
  render(): React.Node {
@@ -25,12 +25,12 @@ const I18nManager = require('../ReactNative/I18nManager');
25
25
  function resolveBoxStyle(
26
26
  prefix: string,
27
27
  style: Object,
28
- ): ?$ReadOnly<{|
28
+ ): ?$ReadOnly<{
29
29
  bottom: number,
30
30
  left: number,
31
31
  right: number,
32
32
  top: number,
33
- |}> {
33
+ }> {
34
34
  let hasParts = false;
35
35
  const result = {
36
36
  bottom: 0,
@@ -13,7 +13,7 @@ import type {Task} from './TaskQueue';
13
13
  import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
14
14
  import EventEmitter from '../vendor/emitter/EventEmitter';
15
15
 
16
- const BatchedBridge = require('../BatchedBridge/BatchedBridge');
16
+ const BatchedBridge = require('../BatchedBridge/BatchedBridge').default;
17
17
  const infoLog = require('../Utilities/infoLog');
18
18
  const TaskQueue = require('./TaskQueue');
19
19
  const invariant = require('invariant');
@@ -138,8 +138,9 @@ const InteractionManager = {
138
138
  _deleteInteractionSet.add(handle);
139
139
  },
140
140
 
141
+ // $FlowFixMe[unclear-type] unclear type of _emitter
141
142
  // $FlowFixMe[method-unbinding] added when improving typing for this parameters
142
- addListener: (_emitter.addListener.bind(_emitter): $FlowFixMe),
143
+ addListener: _emitter.addListener.bind(_emitter) as Function,
143
144
 
144
145
  /**
145
146
  * A positive number will use setTimeout to schedule any tasks after the
@@ -124,7 +124,7 @@ const currentCentroidY = TouchHistoryMath.currentCentroidY;
124
124
  * [PanResponder example in RNTester](https://github.com/facebook/react-native/blob/HEAD/packages/rn-tester/js/examples/PanResponder/PanResponderExample.js)
125
125
  */
126
126
 
127
- export type GestureState = {|
127
+ export type GestureState = {
128
128
  /**
129
129
  * ID of the gestureState - persisted as long as there at least one touch on screen
130
130
  */
@@ -181,7 +181,7 @@ export type GestureState = {|
181
181
  * @private
182
182
  */
183
183
  _accountsForMovesUpTo: number,
184
- |};
184
+ };
185
185
 
186
186
  type ActiveCallback = (
187
187
  event: PressEvent,
@@ -190,7 +190,7 @@ type ActiveCallback = (
190
190
 
191
191
  type PassiveCallback = (event: PressEvent, gestureState: GestureState) => mixed;
192
192
 
193
- export type PanHandlers = {|
193
+ export type PanHandlers = {
194
194
  onMoveShouldSetResponder: (event: PressEvent) => boolean,
195
195
  onMoveShouldSetResponderCapture: (event: PressEvent) => boolean,
196
196
  onResponderEnd: (event: PressEvent) => void,
@@ -203,9 +203,9 @@ export type PanHandlers = {|
203
203
  onResponderTerminationRequest: (event: PressEvent) => boolean,
204
204
  onStartShouldSetResponder: (event: PressEvent) => boolean,
205
205
  onStartShouldSetResponderCapture: (event: PressEvent) => boolean,
206
- |};
206
+ };
207
207
 
208
- type PanResponderConfig = $ReadOnly<{|
208
+ type PanResponderConfig = $ReadOnly<{
209
209
  onMoveShouldSetPanResponder?: ?ActiveCallback,
210
210
  onMoveShouldSetPanResponderCapture?: ?ActiveCallback,
211
211
  onStartShouldSetPanResponder?: ?ActiveCallback,
@@ -224,7 +224,7 @@ type PanResponderConfig = $ReadOnly<{|
224
224
  onPanResponderTerminate?: ?PassiveCallback,
225
225
  onPanResponderTerminationRequest?: ?ActiveCallback,
226
226
  onShouldBlockNativeResponder?: ?ActiveCallback,
227
- |}>;
227
+ }>;
228
228
 
229
229
  const PanResponder = {
230
230
  /**
@@ -151,6 +151,32 @@ const TouchHistoryMath = {
151
151
  },
152
152
 
153
153
  noCentroid: -1,
154
+ } as {
155
+ centroidDimension: (
156
+ touchHistory: TouchHistoryMath,
157
+ touchesChangedAfter: number,
158
+ isXAxis: boolean,
159
+ ofCurrent: boolean,
160
+ ) => number,
161
+ currentCentroidXOfTouchesChangedAfter: (
162
+ touchHistory: TouchHistoryMath,
163
+ touchesChangedAfter: number,
164
+ ) => number,
165
+ currentCentroidYOfTouchesChangedAfter: (
166
+ touchHistory: TouchHistoryMath,
167
+ touchesChangedAfter: number,
168
+ ) => number,
169
+ previousCentroidXOfTouchesChangedAfter: (
170
+ touchHistory: TouchHistoryMath,
171
+ touchesChangedAfter: number,
172
+ ) => number,
173
+ previousCentroidYOfTouchesChangedAfter: (
174
+ touchHistory: TouchHistoryMath,
175
+ touchesChangedAfter: number,
176
+ ) => number,
177
+ currentCentroidX: (touchHistory: TouchHistoryMath) => number,
178
+ currentCentroidY: (touchHistory: TouchHistoryMath) => number,
179
+ noCentroid: number,
154
180
  };
155
181
 
156
182
  module.exports = TouchHistoryMath;
@@ -12,8 +12,9 @@
12
12
 
13
13
  import type EventSender from './InspectorAgent';
14
14
 
15
+ import InspectorAgent from './InspectorAgent';
16
+
15
17
  const XMLHttpRequest = require('../Network/XMLHttpRequest');
16
- const InspectorAgent = require('./InspectorAgent');
17
18
  const JSInspector = require('./JSInspector');
18
19
 
19
20
  type RequestId = string;