@office-iss/react-native-win32 0.76.2 → 0.77.0-preview.2

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 (249) hide show
  1. package/.eslintignore +1 -1
  2. package/.flowconfig +5 -1
  3. package/CHANGELOG.json +179 -53
  4. package/CHANGELOG.md +82 -28
  5. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +1 -0
  6. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +13 -0
  7. package/Libraries/Animated/AnimatedEvent.js +1 -1
  8. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  9. package/Libraries/Animated/NativeAnimatedAllowlist.js +20 -9
  10. package/Libraries/Animated/animations/Animation.js +60 -25
  11. package/Libraries/Animated/animations/DecayAnimation.js +26 -38
  12. package/Libraries/Animated/animations/SpringAnimation.js +33 -39
  13. package/Libraries/Animated/animations/TimingAnimation.js +34 -42
  14. package/Libraries/Animated/components/AnimatedFlatList.js +1 -1
  15. package/Libraries/Animated/components/AnimatedSectionList.js +3 -1
  16. package/Libraries/Animated/createAnimatedComponent.js +60 -33
  17. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  18. package/Libraries/Animated/nodes/AnimatedInterpolation.js +1 -1
  19. package/Libraries/Animated/nodes/AnimatedNode.js +39 -45
  20. package/Libraries/Animated/nodes/AnimatedObject.js +13 -3
  21. package/Libraries/Animated/nodes/AnimatedProps.js +104 -46
  22. package/Libraries/Animated/nodes/AnimatedStyle.js +116 -39
  23. package/Libraries/Animated/nodes/AnimatedTransform.js +56 -23
  24. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  25. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -3
  26. package/Libraries/Animated/useAnimatedProps.js +41 -35
  27. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +19 -3
  28. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +77 -5
  29. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +82 -5
  30. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +4 -4
  31. package/Libraries/Components/Button.js +9 -4
  32. package/Libraries/Components/Button.win32.js +12 -4
  33. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
  34. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +7 -0
  35. package/Libraries/Components/Pressable/Pressable.js +4 -4
  36. package/Libraries/Components/Pressable/Pressable.win32.js +4 -4
  37. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +13 -7
  38. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +3 -2
  39. package/Libraries/Components/SafeAreaView/SafeAreaView.js +4 -4
  40. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +4 -4
  41. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +0 -1
  42. package/Libraries/Components/ScrollView/ScrollView.js +49 -88
  43. package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
  44. package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -0
  45. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +0 -2
  46. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +8 -9
  47. package/Libraries/Components/Switch/Switch.js +8 -6
  48. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  49. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +4 -4
  50. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +6 -4
  51. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -1
  52. package/Libraries/Components/TextInput/TextInput.d.ts +27 -4
  53. package/Libraries/Components/TextInput/TextInput.flow.js +36 -19
  54. package/Libraries/Components/TextInput/TextInput.js +37 -13
  55. package/Libraries/Components/TextInput/TextInput.win32.js +40 -15
  56. package/Libraries/Components/TextInput/TextInputState.js +11 -13
  57. package/Libraries/Components/TextInput/TextInputState.win32.js +13 -16
  58. package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +3 -0
  59. package/Libraries/Components/Touchable/BoundingDimensions.js +11 -3
  60. package/Libraries/Components/Touchable/Position.js +7 -2
  61. package/Libraries/Components/Touchable/Touchable.js +4 -0
  62. package/Libraries/Components/Touchable/Touchable.win32.js +4 -0
  63. package/Libraries/Components/Touchable/TouchableBounce.js +6 -2
  64. package/Libraries/Components/Touchable/TouchableHighlight.js +5 -5
  65. package/Libraries/Components/Touchable/TouchableOpacity.js +6 -5
  66. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -2
  67. package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -1
  68. package/Libraries/Components/View/View.js +4 -4
  69. package/Libraries/Components/View/View.win32.js +4 -4
  70. package/Libraries/Components/View/ViewNativeComponent.js +6 -98
  71. package/Libraries/Components/View/ViewPropTypes.d.ts +7 -0
  72. package/Libraries/Components/View/ViewPropTypes.js +0 -3
  73. package/Libraries/Components/View/ViewPropTypes.win32.js +0 -3
  74. package/Libraries/Components/View/ViewWin32.js +1 -0
  75. package/Libraries/Core/ExceptionsManager.js +50 -29
  76. package/Libraries/Core/ReactNativeVersion.js +3 -3
  77. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -1
  78. package/Libraries/Core/setUpBatchedBridge.js +1 -10
  79. package/Libraries/Core/setUpDeveloperTools.js +1 -5
  80. package/Libraries/Core/setUpErrorHandling.js +20 -18
  81. package/Libraries/Core/setUpReactDevTools.js +107 -8
  82. package/Libraries/Core/setUpSegmentFetcher.js +1 -0
  83. package/Libraries/Core/setUpTimers.js +21 -18
  84. package/Libraries/Debugging/DebuggingOverlay.js +4 -5
  85. package/Libraries/Image/AssetSourceResolver.js +12 -1
  86. package/Libraries/Image/Image.android.js +1 -5
  87. package/Libraries/Image/Image.d.ts +20 -29
  88. package/Libraries/Image/Image.ios.js +0 -2
  89. package/Libraries/Image/Image.win32.js +0 -2
  90. package/Libraries/Image/ImageBackground.js +2 -5
  91. package/Libraries/Image/ImageProps.js +7 -6
  92. package/Libraries/Image/ImageResizeMode.d.ts +8 -1
  93. package/Libraries/Image/ImageResizeMode.js +4 -1
  94. package/Libraries/Image/ImageSource.d.ts +0 -2
  95. package/Libraries/Image/ImageSource.js +0 -2
  96. package/Libraries/Image/ImageTypes.flow.js +11 -9
  97. package/Libraries/Image/ImageUtils.js +6 -3
  98. package/Libraries/Image/ImageViewNativeComponent.js +5 -3
  99. package/Libraries/Inspector/Inspector.js +1 -0
  100. package/Libraries/Inspector/Inspector.win32.js +2 -1
  101. package/Libraries/Inspector/NetworkOverlay.js +4 -0
  102. package/Libraries/Inspector/ReactDevToolsOverlay.js +8 -14
  103. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +3 -5
  104. package/Libraries/Interaction/InteractionManager.js +6 -1
  105. package/Libraries/Interaction/InteractionManagerStub.js +176 -0
  106. package/Libraries/Interaction/TouchHistoryMath.js +22 -19
  107. package/Libraries/JSInspector/NetworkAgent.js +1 -1
  108. package/Libraries/Lists/FlatList.d.ts +1 -2
  109. package/Libraries/Lists/FlatList.js +2 -2
  110. package/Libraries/Lists/SectionListModern.js +7 -7
  111. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +2 -2
  112. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  113. package/Libraries/LogBox/Data/LogBoxData.js +3 -3
  114. package/Libraries/LogBox/LogBox.js +18 -5
  115. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  116. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  117. package/Libraries/LogBox/UI/AnsiHighlight.js +26 -17
  118. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -1
  119. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +6 -1
  120. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  121. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +1 -1
  122. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +1 -1
  123. package/Libraries/LogBox/UI/LogBoxMessage.js +2 -2
  124. package/Libraries/Modal/Modal.d.ts +12 -0
  125. package/Libraries/Modal/Modal.js +31 -4
  126. package/Libraries/NativeComponent/BaseViewConfig.android.js +72 -1
  127. package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -1
  128. package/Libraries/NativeComponent/BaseViewConfig.win32.js +3 -11
  129. package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -3
  130. package/Libraries/NativeComponent/StaticViewConfigValidator.js +0 -1
  131. package/Libraries/Network/FormData.js +11 -3
  132. package/Libraries/Network/XHRInterceptor.js +63 -14
  133. package/Libraries/Network/XMLHttpRequest.js +26 -1
  134. package/Libraries/NewAppScreen/components/HermesBadge.js +1 -1
  135. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +49 -2
  136. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -4
  137. package/Libraries/Pressability/HoverState.js +2 -0
  138. package/Libraries/Pressability/HoverState.win32.js +2 -0
  139. package/Libraries/Pressability/Pressability.js +2 -3
  140. package/Libraries/Pressability/Pressability.win32.js +2 -3
  141. package/Libraries/Pressability/usePressability.js +4 -1
  142. package/Libraries/ReactNative/AppContainer.js +1 -1
  143. package/Libraries/ReactNative/AppRegistry.js +1 -11
  144. package/Libraries/ReactNative/DisplayMode.js +1 -1
  145. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -3
  146. package/Libraries/ReactNative/RendererImplementation.js +18 -17
  147. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -3
  148. package/Libraries/ReactNative/renderApplication.js +9 -8
  149. package/Libraries/ReactNative/requireNativeComponent.js +5 -2
  150. package/Libraries/Renderer/shims/ReactFabric.js +3 -3
  151. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  152. package/Libraries/Renderer/shims/ReactNative.js +3 -3
  153. package/Libraries/Renderer/shims/ReactNativeTypes.js +22 -35
  154. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +5 -6
  155. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  156. package/Libraries/StyleSheet/StyleSheet.js +7 -1
  157. package/Libraries/StyleSheet/StyleSheet.win32.js +7 -1
  158. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +13 -2
  159. package/Libraries/StyleSheet/StyleSheetTypes.js +24 -6
  160. package/Libraries/StyleSheet/processBackgroundImage.js +87 -110
  161. package/Libraries/StyleSheet/processTransform.js +3 -34
  162. package/Libraries/Text/Text.js +248 -249
  163. package/Libraries/Text/Text.win32.js +282 -295
  164. package/Libraries/Text/TextNativeComponent.js +0 -1
  165. package/Libraries/TurboModule/TurboModuleRegistry.js +5 -5
  166. package/Libraries/Types/CoreEventTypes.d.ts +3 -10
  167. package/Libraries/Types/CoreEventTypes.js +4 -6
  168. package/Libraries/Types/CoreEventTypes.win32.js +4 -6
  169. package/Libraries/Utilities/Appearance.js +3 -1
  170. package/Libraries/Utilities/BackHandler.android.js +6 -18
  171. package/Libraries/Utilities/BackHandler.d.ts +0 -4
  172. package/Libraries/Utilities/BackHandler.ios.js +0 -7
  173. package/Libraries/Utilities/BackHandler.win32.js +6 -18
  174. package/Libraries/Utilities/FocusManager.win32.js +1 -1
  175. package/Libraries/Utilities/HMRClient.js +3 -4
  176. package/Libraries/Utilities/Platform.flow.js +2 -2
  177. package/Libraries/Utilities/Platform.flow.win32.js +3 -2
  178. package/Libraries/Utilities/__mocks__/BackHandler.js +3 -8
  179. package/Libraries/Utilities/codegenNativeComponent.js +1 -1
  180. package/Libraries/Utilities/useMergeRefs.js +26 -7
  181. package/Libraries/WebSocket/WebSocketEvent.js +4 -1
  182. package/Libraries/WebSocket/WebSocketInterceptor.js +31 -13
  183. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +6 -5
  184. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  185. package/index.js +10 -3
  186. package/index.win32.js +10 -3
  187. package/jest/setup.js +36 -1
  188. package/overrides.json +37 -37
  189. package/package.json +20 -20
  190. package/src/private/animated/NativeAnimatedHelper.js +18 -16
  191. package/src/private/animated/NativeAnimatedHelper.win32.js +18 -15
  192. package/src/private/animated/useAnimatedPropsMemo.js +356 -0
  193. package/src/private/components/HScrollViewNativeComponents.js +1 -27
  194. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +11 -8
  195. package/src/private/components/VScrollViewNativeComponents.js +2 -25
  196. package/src/private/debugging/ReactDevToolsSettingsManager.android.js +20 -0
  197. package/src/private/debugging/ReactDevToolsSettingsManager.ios.js +30 -0
  198. package/src/private/debugging/ReactDevToolsSettingsManager.win32.js +20 -0
  199. package/src/private/{fusebox → debugging}/setUpFuseboxReactDevToolsDispatcher.js +6 -0
  200. package/src/private/devmenu/DevMenu.d.ts +20 -0
  201. package/src/private/devmenu/DevMenu.js +31 -0
  202. package/src/private/featureflags/ReactNativeFeatureFlags.js +95 -86
  203. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +8 -2
  204. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +17 -19
  205. package/src/private/fusebox/specs/NativeReactDevToolsRuntimeSettingsModule.js +34 -0
  206. package/src/private/setup/setUpDOM.js +14 -6
  207. package/src/private/setup/setUpMutationObserver.js +5 -0
  208. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -0
  209. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +8 -0
  210. package/src/private/specs/modules/NativeAccessibilityInfo.js +9 -0
  211. package/src/private/specs/modules/NativeAccessibilityInfoWin32.js +9 -0
  212. package/src/private/specs/modules/NativeAccessibilityManager.js +4 -0
  213. package/src/private/specs/modules/NativeActionSheetManager.js +2 -0
  214. package/src/private/specs/modules/NativeAppearance.js +4 -10
  215. package/src/private/specs/modules/NativeExceptionsManager.js +0 -12
  216. package/src/private/specs/modules/{NativeDevToolsSettingsManager.js → NativeReactDevToolsSettingsManager.js} +3 -5
  217. package/src/private/webapis/dom/geometry/DOMRect.js +2 -2
  218. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +2 -2
  219. package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -3
  220. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +102 -11
  221. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +26 -0
  222. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -0
  223. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  224. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +9 -0
  225. package/src/private/webapis/performance/EventTiming.js +13 -8
  226. package/src/private/webapis/performance/Performance.js +66 -73
  227. package/src/private/webapis/performance/PerformanceEntry.js +2 -5
  228. package/src/private/webapis/performance/PerformanceObserver.js +65 -164
  229. package/src/private/webapis/performance/RawPerformanceEntry.js +1 -1
  230. package/src/private/webapis/performance/UserTiming.js +11 -7
  231. package/src/private/webapis/performance/Utilities.js +18 -0
  232. package/src/private/webapis/performance/specs/NativePerformance.js +71 -2
  233. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +267 -0
  234. package/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +19 -3
  235. package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +7 -0
  236. package/types/index.d.ts +1 -1
  237. package/types/public/ReactNativeTypes.d.ts +4 -8
  238. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +0 -35
  239. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +0 -20
  240. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +0 -49
  241. package/Libraries/DevToolsSettings/DevToolsSettingsManager.win32.js +0 -35
  242. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +0 -13
  243. package/Libraries/ReactNative/ReactFabricInternals.js +0 -17
  244. package/src/private/components/useSyncOnScroll.js +0 -48
  245. package/src/private/webapis/performance/specs/NativePerformanceObserver.js +0 -61
  246. package/src/private/webapis/performance/specs/__mocks__/NativePerformance.js +0 -67
  247. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceObserver.js +0 -127
  248. package/types/experimental.d.ts +0 -59
  249. /package/src/private/{fusebox → debugging}/FuseboxSessionObserver.js +0 -0
@@ -66,11 +66,58 @@ export interface PermissionsAndroidStatic {
66
66
  /**
67
67
  * A list of permission results that are returned
68
68
  */
69
- RESULTS: {[key: string]: PermissionStatus};
69
+ RESULTS: {
70
+ [key in 'GRANTED' | 'DENIED' | 'NEVER_ASK_AGAIN']: PermissionStatus;
71
+ };
70
72
  /**
71
73
  * A list of specified "dangerous" permissions that require prompting the user
72
74
  */
73
- PERMISSIONS: {[key: string]: Permission};
75
+ PERMISSIONS: {
76
+ [key in
77
+ | 'READ_CALENDAR'
78
+ | 'WRITE_CALENDAR'
79
+ | 'CAMERA'
80
+ | 'READ_CONTACTS'
81
+ | 'WRITE_CONTACTS'
82
+ | 'GET_ACCOUNTS'
83
+ | 'ACCESS_FINE_LOCATION'
84
+ | 'ACCESS_COARSE_LOCATION'
85
+ | 'ACCESS_BACKGROUND_LOCATION'
86
+ | 'RECORD_AUDIO'
87
+ | 'READ_PHONE_STATE'
88
+ | 'CALL_PHONE'
89
+ | 'READ_CALL_LOG'
90
+ | 'WRITE_CALL_LOG'
91
+ | 'ADD_VOICEMAIL'
92
+ | 'READ_VOICEMAIL'
93
+ | 'WRITE_VOICEMAIL'
94
+ | 'USE_SIP'
95
+ | 'PROCESS_OUTGOING_CALLS'
96
+ | 'BODY_SENSORS'
97
+ | 'BODY_SENSORS_BACKGROUND'
98
+ | 'SEND_SMS'
99
+ | 'RECEIVE_SMS'
100
+ | 'READ_SMS'
101
+ | 'RECEIVE_WAP_PUSH'
102
+ | 'RECEIVE_MMS'
103
+ | 'READ_EXTERNAL_STORAGE'
104
+ | 'READ_MEDIA_IMAGES'
105
+ | 'READ_MEDIA_VIDEO'
106
+ | 'READ_MEDIA_AUDIO'
107
+ | 'READ_MEDIA_VISUAL_USER_SELECTED'
108
+ | 'WRITE_EXTERNAL_STORAGE'
109
+ | 'BLUETOOTH_CONNECT'
110
+ | 'BLUETOOTH_SCAN'
111
+ | 'BLUETOOTH_ADVERTISE'
112
+ | 'ACCESS_MEDIA_LOCATION'
113
+ | 'ACCEPT_HANDOVER'
114
+ | 'ACTIVITY_RECOGNITION'
115
+ | 'ANSWER_PHONE_CALLS'
116
+ | 'READ_PHONE_NUMBERS'
117
+ | 'UWB_RANGING'
118
+ | 'POST_NOTIFICATIONS'
119
+ | 'NEARBY_WIFI_DEVICES']: Permission;
120
+ };
74
121
  new (): PermissionsAndroidStatic;
75
122
  /**
76
123
  * @deprecated Use check instead
@@ -88,7 +88,7 @@ const PERMISSIONS = Object.freeze({
88
88
  */
89
89
 
90
90
  class PermissionsAndroid {
91
- PERMISSIONS: {|
91
+ PERMISSIONS: $ReadOnly<{|
92
92
  ACCEPT_HANDOVER: string,
93
93
  ACCESS_BACKGROUND_LOCATION: string,
94
94
  ACCESS_COARSE_LOCATION: string,
@@ -132,12 +132,12 @@ class PermissionsAndroid {
132
132
  WRITE_CALL_LOG: string,
133
133
  WRITE_CONTACTS: string,
134
134
  WRITE_EXTERNAL_STORAGE: string,
135
- |} = PERMISSIONS;
136
- RESULTS: {|
135
+ |}> = PERMISSIONS;
136
+ RESULTS: $ReadOnly<{|
137
137
  DENIED: 'denied',
138
138
  GRANTED: 'granted',
139
139
  NEVER_ASK_AGAIN: 'never_ask_again',
140
- |} = PERMISSION_REQUEST_RESULT;
140
+ |}> = PERMISSION_REQUEST_RESULT;
141
141
 
142
142
  /**
143
143
  * DEPRECATED - use check
@@ -12,6 +12,8 @@ import Platform from '../Utilities/Platform';
12
12
 
13
13
  let isEnabled = false;
14
14
 
15
+ /* $FlowFixMe[incompatible-type] Error found due to incomplete typing of
16
+ * Platform.flow.js */
15
17
  if (Platform.OS === 'web') {
16
18
  const canUseDOM = Boolean(
17
19
  typeof window !== 'undefined' &&
@@ -12,6 +12,8 @@ import Platform from '../Utilities/Platform';
12
12
 
13
13
  let isEnabled = false;
14
14
 
15
+ /* $FlowFixMe[incompatible-type] Error found due to incomplete typing of
16
+ * Platform.flow.js */
15
17
  if (Platform.OS === 'web') {
16
18
  const canUseDOM = Boolean(
17
19
  typeof window !== 'undefined' &&
@@ -8,7 +8,7 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
11
+ import type {HostInstance} from '../Renderer/shims/ReactNativeTypes';
12
12
  import type {
13
13
  BlurEvent,
14
14
  FocusEvent,
@@ -26,7 +26,6 @@ import {isHoverEnabled} from './HoverState';
26
26
  import PressabilityPerformanceEventEmitter from './PressabilityPerformanceEventEmitter.js';
27
27
  import {type PressabilityTouchSignal as TouchSignal} from './PressabilityTypes.js';
28
28
  import invariant from 'invariant';
29
- import * as React from 'react';
30
29
 
31
30
  export type PressabilityConfig = $ReadOnly<{|
32
31
  /**
@@ -378,7 +377,7 @@ export default class Pressability {
378
377
  _longPressDelayTimeout: ?TimeoutID = null;
379
378
  _pressDelayTimeout: ?TimeoutID = null;
380
379
  _pressOutDelayTimeout: ?TimeoutID = null;
381
- _responderID: ?number | React.ElementRef<HostComponent<mixed>> = null;
380
+ _responderID: ?number | HostInstance = null;
382
381
  _responderRegion: ?$ReadOnly<{|
383
382
  bottom: number,
384
383
  left: number,
@@ -8,7 +8,7 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
11
+ import type {HostInstance} from '../Renderer/shims/ReactNativeTypes';
12
12
  import type {
13
13
  BlurEvent,
14
14
  FocusEvent,
@@ -27,7 +27,6 @@ import {isHoverEnabled} from './HoverState';
27
27
  import PressabilityPerformanceEventEmitter from './PressabilityPerformanceEventEmitter.js';
28
28
  import {type PressabilityTouchSignal as TouchSignal} from './PressabilityTypes.js';
29
29
  import invariant from 'invariant';
30
- import * as React from 'react';
31
30
 
32
31
  export type PressabilityConfig = $ReadOnly<{|
33
32
  /**
@@ -409,7 +408,7 @@ export default class Pressability {
409
408
  _longPressDelayTimeout: ?TimeoutID = null;
410
409
  _pressDelayTimeout: ?TimeoutID = null;
411
410
  _pressOutDelayTimeout: ?TimeoutID = null;
412
- _responderID: ?number | React.ElementRef<HostComponent<mixed>> = null;
411
+ _responderID: ?number | HostInstance = null;
413
412
  _responderRegion: ?$ReadOnly<{|
414
413
  bottom: number,
415
414
  left: number,
@@ -14,6 +14,9 @@ import Pressability, {
14
14
  } from './Pressability';
15
15
  import {useEffect, useRef} from 'react';
16
16
 
17
+ declare function usePressability(config: PressabilityConfig): EventHandlers;
18
+ declare function usePressability(config: null | void): null | EventHandlers;
19
+
17
20
  /**
18
21
  * Creates a persistent instance of `Pressability` that automatically configures
19
22
  * itself and resets. Accepts null `config` to support lazy initialization. Once
@@ -28,7 +31,7 @@ import {useEffect, useRef} from 'react';
28
31
  */
29
32
  export default function usePressability(
30
33
  config: ?PressabilityConfig,
31
- ): ?EventHandlers {
34
+ ): null | EventHandlers {
32
35
  const pressabilityRef = useRef<?Pressability>(null);
33
36
  if (config != null && pressabilityRef.current == null) {
34
37
  pressabilityRef.current = new Pressability(config);
@@ -24,7 +24,7 @@ export type Props = $ReadOnly<{|
24
24
  internal_excludeInspector?: boolean,
25
25
  |}>;
26
26
 
27
- const AppContainer: React.AbstractComponent<Props> = __DEV__
27
+ const AppContainer: component(...Props) = __DEV__
28
28
  ? require('./AppContainer-dev').default
29
29
  : require('./AppContainer-prod').default;
30
30
 
@@ -13,8 +13,8 @@ import type {RootTag} from '../Types/RootTagTypes';
13
13
  import type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';
14
14
  import type {DisplayModeType} from './DisplayMode';
15
15
 
16
- import registerCallableModule from '../Core/registerCallableModule';
17
16
  import BugReporting from '../BugReporting/BugReporting';
17
+ import registerCallableModule from '../Core/registerCallableModule';
18
18
  import createPerformanceLogger from '../Utilities/createPerformanceLogger';
19
19
  import infoLog from '../Utilities/infoLog';
20
20
  import SceneTracker from '../Utilities/SceneTracker';
@@ -46,7 +46,6 @@ type AppParameters = {
46
46
  initialProps: $ReadOnly<{[string]: mixed, ...}>,
47
47
  rootTag: RootTag,
48
48
  fabric?: boolean,
49
- concurrentRoot?: boolean,
50
49
  };
51
50
  export type Runnable = (
52
51
  appParameters: AppParameters,
@@ -120,10 +119,6 @@ const AppRegistry = {
120
119
  ): string {
121
120
  const scopedPerformanceLogger = createPerformanceLogger();
122
121
  runnables[appKey] = (appParameters, displayMode) => {
123
- const concurrentRootEnabled = Boolean(
124
- appParameters.initialProps?.concurrentRoot ||
125
- appParameters.concurrentRoot,
126
- );
127
122
  renderApplication(
128
123
  componentProviderInstrumentationHook(
129
124
  componentProvider,
@@ -138,7 +133,6 @@ const AppRegistry = {
138
133
  appKey === 'LogBox', // is logbox
139
134
  appKey,
140
135
  displayMode,
141
- concurrentRootEnabled,
142
136
  );
143
137
  };
144
138
  if (section) {
@@ -361,10 +355,6 @@ global.RN$SurfaceRegistry = {
361
355
  setSurfaceProps: AppRegistry.setSurfaceProps,
362
356
  };
363
357
 
364
- if (global.RN$Bridgeless === true) {
365
- console.log('Bridgeless mode is enabled');
366
- }
367
-
368
358
  registerCallableModule('AppRegistry', AppRegistry);
369
359
 
370
360
  module.exports = AppRegistry;
@@ -12,7 +12,7 @@ export opaque type DisplayModeType = number;
12
12
 
13
13
  /** DisplayMode should be in sync with the method displayModeToInt from
14
14
  * react/renderer/uimanager/primitives.h. */
15
- const DisplayMode: {[string]: DisplayModeType} = Object.freeze({
15
+ const DisplayMode: {+[string]: DisplayModeType} = Object.freeze({
16
16
  VISIBLE: 1,
17
17
  SUSPENDED: 2,
18
18
  HIDDEN: 3,
@@ -9,7 +9,7 @@
9
9
  */
10
10
 
11
11
  import type {
12
- HostComponent,
12
+ HostInstance,
13
13
  INativeMethods,
14
14
  InternalInstanceHandle,
15
15
  MeasureInWindowOnSuccessCallback,
@@ -17,7 +17,6 @@ import type {
17
17
  MeasureOnSuccessCallback,
18
18
  ViewConfig,
19
19
  } from '../../Renderer/shims/ReactNativeTypes';
20
- import type {ElementRef} from 'react';
21
20
 
22
21
  import TextInputState from '../../Components/TextInput/TextInputState';
23
22
  import {getNodeFromInternalInstanceHandle} from '../../ReactNative/RendererProxy';
@@ -85,7 +84,7 @@ export default class ReactFabricHostComponent implements INativeMethods {
85
84
  }
86
85
 
87
86
  measureLayout(
88
- relativeToNativeNode: number | ElementRef<HostComponent<mixed>>,
87
+ relativeToNativeNode: number | HostInstance,
89
88
  onSuccess: MeasureLayoutOnSuccessCallback,
90
89
  onFail?: () => void /* currently unused */,
91
90
  ) {
@@ -10,6 +10,7 @@
10
10
 
11
11
  import type {
12
12
  HostComponent,
13
+ HostInstance,
13
14
  InternalInstanceHandle,
14
15
  Node,
15
16
  } from '../Renderer/shims/ReactNativeTypes';
@@ -34,7 +35,7 @@ export function renderElement({
34
35
  useConcurrentRoot: boolean,
35
36
  }): void {
36
37
  if (useFabric) {
37
- require('../Renderer/shims/ReactFabric').render(
38
+ require('../Renderer/shims/ReactFabric').default.render(
38
39
  element,
39
40
  rootTag,
40
41
  null,
@@ -46,7 +47,7 @@ export function renderElement({
46
47
  },
47
48
  );
48
49
  } else {
49
- require('../Renderer/shims/ReactNative').render(
50
+ require('../Renderer/shims/ReactNative').default.render(
50
51
  element,
51
52
  rootTag,
52
53
  undefined,
@@ -61,8 +62,8 @@ export function renderElement({
61
62
 
62
63
  export function findHostInstance_DEPRECATED<TElementType: ElementType>(
63
64
  componentOrHandle: ?(ElementRef<TElementType> | number),
64
- ): ?ElementRef<HostComponent<mixed>> {
65
- return require('../Renderer/shims/ReactNative').findHostInstance_DEPRECATED(
65
+ ): ?HostInstance {
66
+ return require('../Renderer/shims/ReactNative').default.findHostInstance_DEPRECATED(
66
67
  componentOrHandle,
67
68
  );
68
69
  }
@@ -70,26 +71,26 @@ export function findHostInstance_DEPRECATED<TElementType: ElementType>(
70
71
  export function findNodeHandle<TElementType: ElementType>(
71
72
  componentOrHandle: ?(ElementRef<TElementType> | number),
72
73
  ): ?number {
73
- return require('../Renderer/shims/ReactNative').findNodeHandle(
74
+ return require('../Renderer/shims/ReactNative').default.findNodeHandle(
74
75
  componentOrHandle,
75
76
  );
76
77
  }
77
78
 
78
79
  export function dispatchCommand(
79
- handle: ElementRef<HostComponent<mixed>>,
80
+ handle: HostInstance,
80
81
  command: string,
81
82
  args: Array<mixed>,
82
83
  ): void {
83
84
  if (global.RN$Bridgeless === true) {
84
85
  // Note: this function has the same implementation in the legacy and new renderer.
85
86
  // However, evaluating the old renderer comes with some side effects.
86
- return require('../Renderer/shims/ReactFabric').dispatchCommand(
87
+ return require('../Renderer/shims/ReactFabric').default.dispatchCommand(
87
88
  handle,
88
89
  command,
89
90
  args,
90
91
  );
91
92
  } else {
92
- return require('../Renderer/shims/ReactNative').dispatchCommand(
93
+ return require('../Renderer/shims/ReactNative').default.dispatchCommand(
93
94
  handle,
94
95
  command,
95
96
  args,
@@ -98,10 +99,10 @@ export function dispatchCommand(
98
99
  }
99
100
 
100
101
  export function sendAccessibilityEvent(
101
- handle: ElementRef<HostComponent<mixed>>,
102
+ handle: HostInstance,
102
103
  eventType: string,
103
104
  ): void {
104
- return require('../Renderer/shims/ReactNative').sendAccessibilityEvent(
105
+ return require('../Renderer/shims/ReactNative').default.sendAccessibilityEvent(
105
106
  handle,
106
107
  eventType,
107
108
  );
@@ -114,7 +115,7 @@ export function sendAccessibilityEvent(
114
115
  export function unmountComponentAtNodeAndRemoveContainer(rootTag: RootTag) {
115
116
  // $FlowExpectedError[incompatible-type] rootTag is an opaque type so we can't really cast it as is.
116
117
  const rootTagAsNumber: number = rootTag;
117
- require('../Renderer/shims/ReactNative').unmountComponentAtNodeAndRemoveContainer(
118
+ require('../Renderer/shims/ReactNative').default.unmountComponentAtNodeAndRemoveContainer(
118
119
  rootTagAsNumber,
119
120
  );
120
121
  }
@@ -124,7 +125,7 @@ export function unstable_batchedUpdates<T>(
124
125
  bookkeeping: T,
125
126
  ): void {
126
127
  // This doesn't actually do anything when batching updates for a Fabric root.
127
- return require('../Renderer/shims/ReactNative').unstable_batchedUpdates(
128
+ return require('../Renderer/shims/ReactNative').default.unstable_batchedUpdates(
128
129
  fn,
129
130
  bookkeeping,
130
131
  );
@@ -135,10 +136,10 @@ export function isProfilingRenderer(): boolean {
135
136
  }
136
137
 
137
138
  export function isChildPublicInstance(
138
- parentInstance: ReactFabricHostComponent | HostComponent<mixed>,
139
- childInstance: ReactFabricHostComponent | HostComponent<mixed>,
139
+ parentInstance: ReactFabricHostComponent | HostComponent<empty>,
140
+ childInstance: ReactFabricHostComponent | HostComponent<empty>,
140
141
  ): boolean {
141
- return require('../Renderer/shims/ReactNative').isChildPublicInstance(
142
+ return require('../Renderer/shims/ReactNative').default.isChildPublicInstance(
142
143
  parentInstance,
143
144
  childInstance,
144
145
  );
@@ -148,7 +149,7 @@ export function getNodeFromInternalInstanceHandle(
148
149
  internalInstanceHandle: InternalInstanceHandle,
149
150
  ): ?Node {
150
151
  // This is only available in Fabric
151
- return require('../Renderer/shims/ReactFabric').getNodeFromInternalInstanceHandle(
152
+ return require('../Renderer/shims/ReactFabric').default.getNodeFromInternalInstanceHandle(
152
153
  internalInstanceHandle,
153
154
  );
154
155
  }
@@ -157,7 +158,7 @@ export function getPublicInstanceFromInternalInstanceHandle(
157
158
  internalInstanceHandle: InternalInstanceHandle,
158
159
  ): mixed /*PublicInstance | PublicTextInstance | null*/ {
159
160
  // This is only available in Fabric
160
- return require('../Renderer/shims/ReactFabric').getPublicInstanceFromInternalInstanceHandle(
161
+ return require('../Renderer/shims/ReactFabric').default.getPublicInstanceFromInternalInstanceHandle(
161
162
  internalInstanceHandle,
162
163
  );
163
164
  }
@@ -8,11 +8,9 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {AbstractComponent} from 'react';
12
-
13
11
  import * as React from 'react';
14
12
 
15
- type NoopComponent = AbstractComponent<{children: React.Node}>;
13
+ type NoopComponent = component(children: React.Node);
16
14
 
17
15
  const cache: Map<
18
16
  string, // displayName
@@ -23,10 +23,12 @@ import * as React from 'react';
23
23
  // require BackHandler so it sets the default handler that exits the app if no listeners respond
24
24
  import '../Utilities/BackHandler';
25
25
 
26
- type ActivityType = React.AbstractComponent<{
27
- mode: 'visible' | 'hidden',
28
- children: React.Node,
29
- }>;
26
+ type ActivityType = component(
27
+ ...{
28
+ mode: 'visible' | 'hidden',
29
+ children: React.Node,
30
+ }
31
+ );
30
32
 
31
33
  export default function renderApplication<Props: Object>(
32
34
  RootComponent: React.ComponentType<Props>,
@@ -39,7 +41,6 @@ export default function renderApplication<Props: Object>(
39
41
  isLogBox?: boolean,
40
42
  debugName?: string,
41
43
  displayMode?: ?DisplayModeType,
42
- useConcurrentRoot?: boolean,
43
44
  useOffscreen?: boolean,
44
45
  ) {
45
46
  invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag);
@@ -85,12 +86,12 @@ export default function renderApplication<Props: Object>(
85
86
  }
86
87
 
87
88
  // We want to have concurrentRoot always enabled when you're on Fabric.
88
- const useConcurrentRootOverride = fabric;
89
+ const useConcurrentRoot = Boolean(fabric);
89
90
 
90
91
  performanceLogger.startTimespan('renderApplication_React_render');
91
92
  performanceLogger.setExtra(
92
93
  'usedReactConcurrentRoot',
93
- useConcurrentRootOverride ? '1' : '0',
94
+ useConcurrentRoot ? '1' : '0',
94
95
  );
95
96
  performanceLogger.setExtra('usedReactFabric', fabric ? '1' : '0');
96
97
  performanceLogger.setExtra(
@@ -101,7 +102,7 @@ export default function renderApplication<Props: Object>(
101
102
  element: renderable,
102
103
  rootTag,
103
104
  useFabric: Boolean(fabric),
104
- useConcurrentRoot: Boolean(useConcurrentRootOverride),
105
+ useConcurrentRoot,
105
106
  });
106
107
  performanceLogger.stopTimespan('renderApplication_React_render');
107
108
  }
@@ -12,7 +12,8 @@
12
12
 
13
13
  import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
14
14
 
15
- const createReactNativeComponentClass = require('../Renderer/shims/createReactNativeComponentClass');
15
+ const createReactNativeComponentClass =
16
+ require('../Renderer/shims/createReactNativeComponentClass').default;
16
17
  const getNativeComponentAttributes = require('./getNativeComponentAttributes');
17
18
 
18
19
  /**
@@ -24,7 +25,9 @@ const getNativeComponentAttributes = require('./getNativeComponentAttributes');
24
25
  *
25
26
  */
26
27
 
27
- const requireNativeComponent = <T>(uiViewClassName: string): HostComponent<T> =>
28
+ const requireNativeComponent = <T: {...}>(
29
+ uiViewClassName: string,
30
+ ): HostComponent<T> =>
28
31
  ((createReactNativeComponentClass(uiViewClassName, () =>
29
32
  getNativeComponentAttributes(uiViewClassName),
30
33
  ): any): HostComponent<T>);
@@ -7,7 +7,7 @@
7
7
  * @noformat
8
8
  * @nolint
9
9
  * @flow
10
- * @generated SignedSource<<bb39e39880fecbf572b5f8e7c2a95c5d>>
10
+ * @generated SignedSource<<cf323fc5ca893bab5669c7d321660412>>
11
11
  */
12
12
 
13
13
  'use strict';
@@ -16,7 +16,7 @@ import {BatchedBridge} from 'react-native/Libraries/ReactPrivate/ReactNativePriv
16
16
 
17
17
  import type {ReactFabricType} from './ReactNativeTypes';
18
18
 
19
- let ReactFabric;
19
+ let ReactFabric: ReactFabricType;
20
20
 
21
21
  if (__DEV__) {
22
22
  ReactFabric = require('../implementations/ReactFabric-dev');
@@ -30,4 +30,4 @@ if (global.RN$Bridgeless !== true) {
30
30
  BatchedBridge.registerCallableModule('ReactFabric', ReactFabric);
31
31
  }
32
32
 
33
- module.exports = (ReactFabric: ReactFabricType);
33
+ export default ReactFabric;
@@ -7,7 +7,7 @@
7
7
  * @noformat
8
8
  * @nolint
9
9
  * @flow strict-local
10
- * @generated SignedSource<<b1b5e34e426103a69612278fd5c9f77c>>
10
+ * @generated SignedSource<<908f5fb85384725318e261f40e49d9a6>>
11
11
  */
12
12
 
13
13
  'use strict';
@@ -16,4 +16,4 @@ const ReactFeatureFlags = {
16
16
  debugRenderPhaseSideEffects: false,
17
17
  };
18
18
 
19
- module.exports = ReactFeatureFlags;
19
+ export default ReactFeatureFlags;
@@ -7,13 +7,13 @@
7
7
  * @noformat
8
8
  * @nolint
9
9
  * @flow
10
- * @generated SignedSource<<475c7d864efc2948c6125ddb8a38a4fc>>
10
+ * @generated SignedSource<<8f46fdc9267fcc4fdc9e76842fe24066>>
11
11
  */
12
12
  'use strict';
13
13
 
14
14
  import type {ReactNativeType} from './ReactNativeTypes';
15
15
 
16
- let ReactNative;
16
+ let ReactNative: ReactNativeType;
17
17
 
18
18
  if (__DEV__) {
19
19
  ReactNative = require('../implementations/ReactNativeRenderer-dev');
@@ -21,4 +21,4 @@ if (__DEV__) {
21
21
  ReactNative = require('../implementations/ReactNativeRenderer-prod');
22
22
  }
23
23
 
24
- module.exports = (ReactNative: ReactNativeType);
24
+ export default ReactNative;