@office-iss/react-native-win32 0.73.2 → 0.74.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 (475) hide show
  1. package/.eslintignore +1 -1
  2. package/.flowconfig +11 -3
  3. package/CHANGELOG.json +426 -54
  4. package/CHANGELOG.md +165 -30
  5. package/IntegrationTests/AccessibilityManagerTest.js +2 -2
  6. package/IntegrationTests/AppEventsTest.js +2 -2
  7. package/IntegrationTests/LayoutEventsTest.js +8 -10
  8. package/IntegrationTests/LoggingTestModule.js +1 -2
  9. package/IntegrationTests/websocket_integration_test_server.js +1 -1
  10. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +6 -0
  11. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +6 -0
  12. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +4 -45
  13. package/Libraries/Alert/NativeAlertManager.js +4 -26
  14. package/Libraries/Animated/Animated.js +2 -2
  15. package/Libraries/Animated/AnimatedPlatformConfig.js +1 -1
  16. package/Libraries/Animated/NativeAnimatedHelper.js +14 -11
  17. package/Libraries/Animated/NativeAnimatedHelper.win32.js +14 -11
  18. package/Libraries/Animated/NativeAnimatedModule.js +4 -68
  19. package/Libraries/Animated/NativeAnimatedTurboModule.js +4 -69
  20. package/Libraries/Animated/animations/Animation.js +6 -22
  21. package/Libraries/Animated/components/AnimatedFlatList.js +1 -16
  22. package/Libraries/Animated/components/AnimatedScrollView.js +36 -31
  23. package/Libraries/Animated/components/AnimatedSectionList.js +1 -20
  24. package/Libraries/Animated/createAnimatedComponent.js +45 -40
  25. package/Libraries/Animated/nodes/AnimatedStyle.js +1 -1
  26. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +1 -1
  27. package/Libraries/Animated/useAnimatedProps.js +21 -1
  28. package/Libraries/AppState/NativeAppState.js +4 -24
  29. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  30. package/Libraries/Blob/Blob.js +1 -4
  31. package/Libraries/Blob/BlobManager.js +6 -8
  32. package/Libraries/Blob/File.js +1 -1
  33. package/Libraries/Blob/NativeBlobModule.js +4 -50
  34. package/Libraries/Blob/NativeFileReaderModule.js +4 -13
  35. package/Libraries/BugReporting/NativeBugReporting.js +4 -12
  36. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +5 -1
  37. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +48 -7
  38. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +3 -23
  39. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +11 -0
  40. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +4 -57
  41. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +3 -2
  42. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +3 -2
  43. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +9 -40
  44. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +3 -43
  45. package/Libraries/Components/Button/ButtonWin32.Props.d.ts +36 -36
  46. package/Libraries/Components/Button/ButtonWin32.Props.js +2 -2
  47. package/Libraries/Components/Button/ButtonWin32.Props.js.map +1 -1
  48. package/Libraries/Components/Button/ButtonWin32.d.ts +19 -19
  49. package/Libraries/Components/Button/ButtonWin32.js +82 -82
  50. package/Libraries/Components/Button/ButtonWin32.js.map +1 -1
  51. package/Libraries/Components/Button.js +103 -107
  52. package/Libraries/Components/Button.win32.js +297 -301
  53. package/Libraries/Components/Clipboard/NativeClipboard.js +3 -11
  54. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +3 -114
  55. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -5
  56. package/Libraries/Components/EnterString.win32.d.ts +12 -12
  57. package/Libraries/Components/EnterString.win32.js +81 -81
  58. package/Libraries/Components/EnterString.win32.js.map +1 -1
  59. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +3 -10
  60. package/Libraries/Components/Pressable/Pressable.js +1 -1
  61. package/Libraries/Components/Pressable/Pressable.win32.js +1 -1
  62. package/Libraries/Components/Pressable/useAndroidRippleForView.js +5 -4
  63. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +4 -24
  64. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +3 -64
  65. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +3 -61
  66. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  67. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +3 -15
  68. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +3 -16
  69. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
  70. package/Libraries/Components/ScrollView/ScrollView.d.ts +5 -6
  71. package/Libraries/Components/ScrollView/ScrollView.js +12 -38
  72. package/Libraries/Components/ScrollView/ScrollView.win32.js +12 -38
  73. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -2
  74. package/Libraries/Components/Sound/NativeSoundManager.js +3 -12
  75. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +3 -58
  76. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +3 -79
  77. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +4 -53
  78. package/Libraries/Components/Switch/Switch.js +0 -2
  79. package/Libraries/Components/Switch/SwitchNativeComponent.js +4 -52
  80. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -0
  81. package/Libraries/Components/TextInput/InputAccessoryView.js +18 -20
  82. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +4 -17
  83. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -6
  84. package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +8 -8
  85. package/Libraries/Components/TextInput/Tests/TextInputTest.js +127 -127
  86. package/Libraries/Components/TextInput/Tests/TextInputTest.js.map +1 -1
  87. package/Libraries/Components/TextInput/TextInput.d.ts +16 -0
  88. package/Libraries/Components/TextInput/TextInput.flow.js +16 -0
  89. package/Libraries/Components/TextInput/TextInput.js +65 -32
  90. package/Libraries/Components/TextInput/TextInput.win32.js +70 -37
  91. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +3 -28
  92. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  93. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.d.ts +8 -8
  94. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +343 -344
  95. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
  96. package/Libraries/Components/Touchable/Touchable.js +2 -3
  97. package/Libraries/Components/Touchable/Touchable.win32.js +2 -3
  98. package/Libraries/Components/Touchable/TouchableHighlight.js +4 -4
  99. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
  100. package/Libraries/Components/Touchable/TouchableOpacity.js +5 -2
  101. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +37 -37
  102. package/Libraries/Components/Touchable/TouchableWin32.Props.js +2 -2
  103. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
  104. package/Libraries/Components/Touchable/TouchableWin32.Types.d.ts +114 -114
  105. package/Libraries/Components/Touchable/TouchableWin32.Types.js +2 -2
  106. package/Libraries/Components/Touchable/TouchableWin32.Types.js.map +1 -1
  107. package/Libraries/Components/Touchable/TouchableWin32.d.ts +91 -91
  108. package/Libraries/Components/Touchable/TouchableWin32.js +506 -506
  109. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
  110. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +3 -16
  111. package/Libraries/Components/View/ReactNativeStyleAttributes.js +2 -1
  112. package/Libraries/Components/View/View.js +0 -11
  113. package/Libraries/Components/View/View.win32.js +18 -17
  114. package/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
  115. package/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
  116. package/Libraries/Components/View/ViewPropTypes.js +36 -36
  117. package/Libraries/Components/View/ViewPropTypes.win32.js +36 -36
  118. package/Libraries/Core/InitializeCore.js +1 -1
  119. package/Libraries/Core/NativeExceptionsManager.js +3 -93
  120. package/Libraries/Core/ReactNativeVersion.js +12 -6
  121. package/Libraries/Core/ReactNativeVersionCheck.js +6 -6
  122. package/Libraries/Core/ReactNativeVersionCheck.win32.js +6 -6
  123. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +3 -18
  124. package/Libraries/Core/Timers/NativeTiming.js +3 -16
  125. package/Libraries/Core/registerCallableModule.d.ts +16 -0
  126. package/Libraries/Core/registerCallableModule.js +42 -0
  127. package/Libraries/Core/setUpPerformance.js +2 -2
  128. package/Libraries/Core/setUpPerformanceObserver.js +3 -1
  129. package/Libraries/Debugging/DebuggingOverlay.js +111 -0
  130. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
  131. package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
  132. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
  133. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +3 -14
  134. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +3 -9
  135. package/Libraries/Image/AssetSourceResolver.js +5 -5
  136. package/Libraries/Image/AssetUtils.js +4 -5
  137. package/Libraries/Image/Image.android.js +146 -174
  138. package/Libraries/Image/Image.d.ts +1 -1
  139. package/Libraries/Image/Image.ios.js +53 -79
  140. package/Libraries/Image/Image.win32.js +52 -74
  141. package/Libraries/Image/ImageBackground.js +2 -2
  142. package/Libraries/Image/ImageInjection.js +76 -18
  143. package/Libraries/Image/ImageTypes.d.ts +25 -25
  144. package/Libraries/Image/ImageTypes.flow.js +71 -0
  145. package/Libraries/Image/ImageTypes.js +7 -7
  146. package/Libraries/Image/ImageTypes.js.map +1 -1
  147. package/Libraries/Image/ImageUtils.js +1 -1
  148. package/Libraries/Image/ImageViewNativeComponent.js +18 -0
  149. package/Libraries/Image/NativeImageEditor.js +3 -42
  150. package/Libraries/Image/NativeImageLoaderAndroid.js +4 -28
  151. package/Libraries/Image/NativeImageLoaderIOS.js +4 -28
  152. package/Libraries/Image/NativeImageLoaderWin32.js +4 -36
  153. package/Libraries/Image/NativeImageStoreAndroid.js +3 -16
  154. package/Libraries/Image/NativeImageStoreIOS.js +3 -23
  155. package/Libraries/Image/Tests/ImageWin32Test.d.ts +8 -8
  156. package/Libraries/Image/Tests/ImageWin32Test.js +21 -21
  157. package/Libraries/Image/Tests/ImageWin32Test.js.map +1 -1
  158. package/Libraries/Image/resolveAssetSource.js +59 -26
  159. package/Libraries/Inspector/ElementProperties.js +26 -52
  160. package/Libraries/Inspector/Inspector.js +122 -186
  161. package/Libraries/Inspector/Inspector.win32.js +118 -185
  162. package/Libraries/Inspector/InspectorOverlay.js +21 -33
  163. package/Libraries/Inspector/InspectorOverlay.win32.js +22 -33
  164. package/Libraries/Inspector/InspectorPanel.js +3 -17
  165. package/Libraries/Inspector/ReactDevToolsOverlay.js +171 -0
  166. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +20 -8
  167. package/Libraries/Interaction/FrameRateLogger.js +8 -18
  168. package/Libraries/Interaction/NativeFrameRateLogger.js +4 -16
  169. package/Libraries/IntersectionObserver/IntersectionObserver.js +1 -1
  170. package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +20 -19
  171. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +84 -6
  172. package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +3 -31
  173. package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +12 -2
  174. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -2
  175. package/Libraries/Linking/NativeIntentAndroid.js +3 -20
  176. package/Libraries/Linking/NativeLinkingManager.js +3 -17
  177. package/Libraries/Lists/FillRateHelper.js +1 -1
  178. package/Libraries/Lists/FlatList.d.ts +2 -2
  179. package/Libraries/Lists/FlatList.js +6 -2
  180. package/Libraries/Lists/SectionList.d.ts +6 -1
  181. package/Libraries/Lists/ViewabilityHelper.js +1 -1
  182. package/Libraries/Lists/VirtualizeUtils.js +1 -1
  183. package/Libraries/Lists/VirtualizedList.js +1 -1
  184. package/Libraries/Lists/VirtualizedListContext.js +1 -1
  185. package/Libraries/Lists/VirtualizedSectionList.js +1 -1
  186. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  187. package/Libraries/Modal/Modal.js +43 -11
  188. package/Libraries/Modal/NativeModalManager.js +3 -11
  189. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -129
  190. package/Libraries/MutationObserver/MutationObserver.js +1 -1
  191. package/Libraries/MutationObserver/MutationObserverManager.js +2 -2
  192. package/Libraries/MutationObserver/MutationRecord.js +12 -10
  193. package/Libraries/MutationObserver/NativeMutationObserver.js +3 -48
  194. package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +1 -1
  195. package/Libraries/NativeComponent/BaseViewConfig.android.js +1 -0
  196. package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
  197. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +3 -10
  198. package/Libraries/NativeModules/specs/NativeDevMenu.js +3 -13
  199. package/Libraries/NativeModules/specs/NativeDevSettings.js +3 -23
  200. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +3 -9
  201. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +3 -38
  202. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -10
  203. package/Libraries/NativeModules/specs/NativeRedBox.js +4 -11
  204. package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -25
  205. package/Libraries/Network/FormData.js +3 -1
  206. package/Libraries/Network/NativeNetworkingAndroid.js +4 -28
  207. package/Libraries/Network/NativeNetworkingIOS.js +4 -28
  208. package/Libraries/Performance/NativeJSCSamplingProfiler.js +3 -9
  209. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -68
  210. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  211. package/Libraries/PersonaCoin/PersonaCoin.d.ts +3 -3
  212. package/Libraries/PersonaCoin/PersonaCoin.js +14 -14
  213. package/Libraries/PersonaCoin/PersonaCoin.js.map +1 -1
  214. package/Libraries/PersonaCoin/PersonaCoinPropTypes.d.ts +2 -2
  215. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js +19 -19
  216. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js.map +1 -1
  217. package/Libraries/PersonaCoin/PersonaCoinTypes.d.ts +33 -33
  218. package/Libraries/PersonaCoin/PersonaCoinTypes.js +23 -23
  219. package/Libraries/PersonaCoin/PersonaCoinTypes.js.map +1 -1
  220. package/Libraries/Pressability/Pressability.js +12 -2
  221. package/Libraries/Pressability/Pressability.win32.js +12 -2
  222. package/Libraries/Pressability/usePressability.js +7 -0
  223. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +4 -70
  224. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +45 -39
  225. package/Libraries/ReactNative/AppContainer-dev.js +211 -0
  226. package/Libraries/ReactNative/AppContainer-prod.js +53 -0
  227. package/Libraries/ReactNative/AppContainer.js +6 -149
  228. package/Libraries/ReactNative/AppRegistry.js +3 -1
  229. package/Libraries/ReactNative/BridgelessUIManager.js +375 -128
  230. package/Libraries/ReactNative/FabricUIManager.js +6 -0
  231. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +3 -10
  232. package/Libraries/ReactNative/NativeI18nManager.js +3 -18
  233. package/Libraries/ReactNative/NativeUIManager.js +4 -112
  234. package/Libraries/ReactNative/PaperUIManager.js +8 -7
  235. package/Libraries/ReactNative/PaperUIManager.win32.js +26 -7
  236. package/Libraries/ReactNative/ReactFabricInternals.js +1 -1
  237. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +24 -5
  238. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -45
  239. package/Libraries/ReactNative/RendererImplementation.js +11 -0
  240. package/Libraries/ReactNative/UIManager.d.ts +11 -34
  241. package/Libraries/ReactNative/UIManager.js +2 -23
  242. package/Libraries/ReactNative/UIManagerProperties.js +0 -2
  243. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +23 -1
  244. package/Libraries/ReactNative/getNativeComponentAttributes.js +5 -1
  245. package/Libraries/ReactNative/renderApplication.js +9 -6
  246. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +6 -1
  247. package/Libraries/Renderer/implementations/ReactFabric-dev.js +24771 -21123
  248. package/Libraries/Renderer/implementations/ReactFabric-prod.js +4160 -3109
  249. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4384 -3322
  250. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +25194 -21398
  251. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3763 -2636
  252. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4027 -2867
  253. package/Libraries/Renderer/shims/ReactNativeTypes.js +8 -9
  254. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -12
  255. package/Libraries/Settings/NativeSettingsManager.js +4 -16
  256. package/Libraries/Share/NativeShareModule.js +3 -13
  257. package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +1 -1
  258. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
  259. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.js +1 -1
  260. package/Libraries/StyleSheet/StyleSheet.d.ts +1 -20
  261. package/Libraries/StyleSheet/StyleSheet.js +5 -28
  262. package/Libraries/StyleSheet/StyleSheet.win32.js +5 -28
  263. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +51 -7
  264. package/Libraries/StyleSheet/StyleSheetTypes.js +19 -11
  265. package/Libraries/StyleSheet/flattenStyle.js +2 -2
  266. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  267. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  268. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  269. package/Libraries/Text/Text.d.ts +5 -6
  270. package/Libraries/Text/Text.js +0 -6
  271. package/Libraries/Text/Text.win32.js +0 -6
  272. package/Libraries/Text/TextAncestor.js +2 -3
  273. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +4 -41
  274. package/Libraries/Types/ReactDevToolsTypes.js +58 -0
  275. package/Libraries/Types/UIManagerJSInterface.js +16 -0
  276. package/Libraries/Utilities/DebugEnvironment.js +1 -4
  277. package/Libraries/Utilities/Dimensions.js +8 -16
  278. package/Libraries/Utilities/Dimensions.win32.js +8 -16
  279. package/Libraries/Utilities/FocusManager.win32.js +2 -0
  280. package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -2
  281. package/Libraries/Utilities/NativeAppearance.js +3 -26
  282. package/Libraries/Utilities/NativeDevLoadingView.js +3 -14
  283. package/Libraries/Utilities/NativeDeviceInfo.js +2 -47
  284. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +3 -34
  285. package/Libraries/Utilities/NativePlatformConstantsIOS.js +3 -26
  286. package/Libraries/Utilities/NativePlatformConstantsWin.js +3 -23
  287. package/Libraries/Utilities/PixelRatio.d.ts +4 -4
  288. package/Libraries/Utilities/Platform.android.js +4 -0
  289. package/Libraries/Utilities/Platform.d.ts +3 -0
  290. package/Libraries/Utilities/Platform.flow.js +7 -0
  291. package/Libraries/Utilities/Platform.flow.win32.js +18 -5
  292. package/Libraries/Utilities/Platform.ios.js +11 -0
  293. package/Libraries/Utilities/Platform.win32.js +9 -1
  294. package/Libraries/Utilities/binaryToBase64.js +1 -1
  295. package/Libraries/Utilities/codegenNativeComponent.js +4 -6
  296. package/Libraries/Utilities/createPerformanceLogger.js +2 -74
  297. package/Libraries/Utilities/useMergeRefs.js +5 -9
  298. package/Libraries/Vibration/NativeVibration.js +3 -14
  299. package/Libraries/WebSocket/NativeWebSocketModule.js +4 -25
  300. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  301. package/Libraries/platform-types.d.ts +2 -3
  302. package/Libraries/vendor/emitter/EventEmitter.js +1 -0
  303. package/babel.config.js +1 -1
  304. package/flow/jest.js +1 -1
  305. package/flow/react.js +15 -0
  306. package/index.js +61 -99
  307. package/index.win32.js +60 -101
  308. package/jest/assetFileTransformer.js +1 -1
  309. package/jest/local-setup.js +0 -5
  310. package/jest/mockModal.js +2 -1
  311. package/jest/mockScrollView.js +1 -2
  312. package/jest/renderer.js +1 -1
  313. package/jest/setup.js +6 -3
  314. package/jest.config.js +2 -1
  315. package/overrides.json +152 -131
  316. package/package.json +27 -26
  317. package/{Libraries/Core → src/private/core}/setUpDOM.js +2 -2
  318. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +42 -0
  319. package/src/private/featureflags/ReactNativeFeatureFlags.js +140 -0
  320. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +84 -0
  321. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +92 -0
  322. package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
  323. package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
  324. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +26 -0
  325. package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
  326. package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
  327. package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
  328. package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
  329. package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
  330. package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
  331. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +139 -0
  332. package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
  333. package/src/private/specs/components/SwitchNativeComponent.js +61 -0
  334. package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
  335. package/src/private/specs/modules/NativeAccessibilityInfo.js +33 -0
  336. package/src/private/specs/modules/NativeAccessibilityInfoWin32.js +39 -0
  337. package/src/private/specs/modules/NativeAccessibilityManager.js +66 -0
  338. package/src/private/specs/modules/NativeActionSheetManager.js +54 -0
  339. package/src/private/specs/modules/NativeAlertManager.js +35 -0
  340. package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
  341. package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
  342. package/src/private/specs/modules/NativeAnimationsDebugModule.js +20 -0
  343. package/src/private/specs/modules/NativeAppState.js +33 -0
  344. package/src/private/specs/modules/NativeAppearance.js +36 -0
  345. package/src/private/specs/modules/NativeBlobModule.js +59 -0
  346. package/src/private/specs/modules/NativeBugReporting.js +20 -0
  347. package/src/private/specs/modules/NativeClipboard.js +21 -0
  348. package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
  349. package/src/private/specs/modules/NativeDevMenu.js +23 -0
  350. package/src/private/specs/modules/NativeDevSettings.js +33 -0
  351. package/src/private/specs/modules/NativeDevToolsSettingsManager.js +24 -0
  352. package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
  353. package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
  354. package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
  355. package/src/private/specs/modules/NativeExceptionsManager.js +103 -0
  356. package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
  357. package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
  358. package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
  359. package/src/private/specs/modules/NativeI18nManager.js +28 -0
  360. package/src/private/specs/modules/NativeImageEditor.js +52 -0
  361. package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
  362. package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
  363. package/src/private/specs/modules/NativeImageLoaderWin32.js +45 -0
  364. package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
  365. package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
  366. package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
  367. package/src/private/specs/modules/NativeIntersectionObserver.js +41 -0
  368. package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
  369. package/src/private/specs/modules/NativeJSCSamplingProfiler.js +19 -0
  370. package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
  371. package/src/private/specs/modules/NativeLinkingManager.js +27 -0
  372. package/src/private/specs/modules/NativeLogBox.js +20 -0
  373. package/src/private/specs/modules/NativeModalManager.js +21 -0
  374. package/src/private/specs/modules/NativeMutationObserver.js +58 -0
  375. package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
  376. package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
  377. package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
  378. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
  379. package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
  380. package/src/private/specs/modules/NativePlatformConstantsWin.js +37 -0
  381. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +107 -0
  382. package/src/private/specs/modules/NativeRedBox.js +20 -0
  383. package/src/private/specs/modules/NativeSampleTurboModule.js +53 -0
  384. package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
  385. package/src/private/specs/modules/NativeSettingsManager.js +25 -0
  386. package/src/private/specs/modules/NativeShareModule.js +23 -0
  387. package/src/private/specs/modules/NativeSoundManager.js +22 -0
  388. package/src/private/specs/modules/NativeSourceCode.js +36 -0
  389. package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
  390. package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
  391. package/src/private/specs/modules/NativeTiming.js +26 -0
  392. package/src/private/specs/modules/NativeToastAndroid.js +38 -0
  393. package/src/private/specs/modules/NativeUIManager.js +118 -0
  394. package/src/private/specs/modules/NativeVibration.js +24 -0
  395. package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
  396. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReactNativeElement.js +6 -6
  397. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyCharacterData.js +2 -2
  398. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyElement.js +5 -5
  399. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyNode.js +19 -10
  400. package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/DOMRectList.js +1 -1
  401. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +85 -0
  402. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +80 -0
  403. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +161 -0
  404. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.js +2 -2
  405. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.js +3 -2
  406. package/{Libraries/WebPerformance → src/private/webapis/performance}/Performance.js +2 -2
  407. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEventTiming.js +1 -1
  408. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceObserver.js +21 -2
  409. package/{Libraries/WebPerformance → src/private/webapis/performance}/RawPerformanceEntry.js +1 -1
  410. package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformanceObserver.js +9 -0
  411. package/src/private/webapis/performance/__tests__/EventCounts-test.js +116 -0
  412. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +82 -0
  413. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +108 -0
  414. package/src/private/webapis/performance/__tests__/Performance-test.js +117 -0
  415. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +208 -0
  416. package/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +161 -0
  417. package/{src → src-win}/Libraries/Components/Button/ButtonWin32.tsx +3 -3
  418. package/{src → src-win}/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +9 -10
  419. package/{src → src-win}/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
  420. package/{src → src-win}/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
  421. package/{src → src-win}/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
  422. package/{src → src-win}/Libraries/Text/Text.d.ts +5 -6
  423. package/{src → src-win}/Libraries/platform-types.d.ts +2 -3
  424. package/types/index.d.ts +1 -0
  425. package/types/modules/globals.d.ts +1 -0
  426. package/Libraries/Components/Button.flow.js +0 -265
  427. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -85
  428. package/Libraries/Components/Text/TextWin32.Props.d.ts +0 -63
  429. package/Libraries/Components/Text/TextWin32.Props.js +0 -3
  430. package/Libraries/Components/Text/TextWin32.Props.js.map +0 -1
  431. package/Libraries/Components/Text/TextWin32.d.ts +0 -6
  432. package/Libraries/Components/Text/TextWin32.js +0 -18
  433. package/Libraries/Components/Text/TextWin32.js.map +0 -1
  434. package/Libraries/Components/Touchable/Touchable.flow.js +0 -284
  435. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +0 -189
  436. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +0 -43
  437. package/Libraries/Image/Image.flow.js +0 -64
  438. package/Libraries/Inspector/DevtoolsOverlay.js +0 -223
  439. package/Libraries/Performance/QuickPerformanceLogger.js +0 -142
  440. package/src/Libraries/Components/Text/TextWin32.Props.ts +0 -82
  441. package/src/Libraries/Components/Text/TextWin32.tsx +0 -25
  442. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRect.js +0 -0
  443. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRectReadOnly.js +0 -0
  444. /package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyText.js +0 -0
  445. /package/{Libraries/DOM/Nodes/Utilities → src/private/webapis/dom/nodes/utilities}/Traversal.js +0 -0
  446. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/ArrayLikeUtils.js +0 -0
  447. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/HTMLCollection.js +0 -0
  448. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/NodeList.js +0 -0
  449. /package/{Libraries/WebPerformance → src/private/webapis/performance}/EventCounts.js +0 -0
  450. /package/{Libraries/WebPerformance → src/private/webapis/performance}/MemoryInfo.js +0 -0
  451. /package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntry.js +0 -0
  452. /package/{Libraries/WebPerformance → src/private/webapis/performance}/ReactNativeStartupTiming.js +0 -0
  453. /package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformance.js +0 -0
  454. /package/{src → src-win}/Libraries/Components/Button/ButtonWin32.Props.ts +0 -0
  455. /package/{src → src-win}/Libraries/Components/EnterString.win32.tsx +0 -0
  456. /package/{src → src-win}/Libraries/Components/TextInput/Tests/TextInputTest.tsx +0 -0
  457. /package/{src → src-win}/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +0 -0
  458. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Props.tsx +0 -0
  459. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Types.tsx +0 -0
  460. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.tsx +0 -0
  461. /package/{src → src-win}/Libraries/Components/View/ViewWin32.d.ts +0 -0
  462. /package/{src → src-win}/Libraries/Image/ImageTypes.ts +0 -0
  463. /package/{src → src-win}/Libraries/Image/Tests/ImageWin32Test.tsx +0 -0
  464. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest.png +0 -0
  465. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@1.5x.png +0 -0
  466. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@2x.png +0 -0
  467. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@3x.png +0 -0
  468. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest.png +0 -0
  469. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@1.5x.png +0 -0
  470. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@3x.png +0 -0
  471. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoin.tsx +0 -0
  472. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinPropTypes.ts +0 -0
  473. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinTypes.ts +0 -0
  474. /package/{src → src-win}/Libraries/Utilities/FocusManager.win32.d.ts +0 -0
  475. /package/{src → src-win}/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +0 -0
@@ -4,76 +4,10 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
+ * @flow strict-local
7
8
  * @format
8
- * @flow
9
9
  */
10
10
 
11
- import type {TurboModule} from '../TurboModule/RCTExport';
12
-
13
- import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
14
-
15
- type Permissions = {|
16
- alert: boolean,
17
- badge: boolean,
18
- sound: boolean,
19
- |};
20
-
21
- type Notification = {|
22
- +alertTitle?: ?string,
23
- // Actual type: string | number
24
- +fireDate?: ?number,
25
- +alertBody?: ?string,
26
- +alertAction?: ?string,
27
- +userInfo?: ?Object,
28
- +category?: ?string,
29
- // Actual type: 'year' | 'month' | 'week' | 'day' | 'hour' | 'minute'
30
- +repeatInterval?: ?string,
31
- +applicationIconBadgeNumber?: ?number,
32
- +isSilent?: ?boolean,
33
- +soundName?: ?string,
34
- |};
35
-
36
- export interface Spec extends TurboModule {
37
- +getConstants: () => {||};
38
- +onFinishRemoteNotification: (
39
- notificationId: string,
40
- /**
41
- * Type:
42
- * 'UIBackgroundFetchResultNewData' |
43
- * 'UIBackgroundFetchResultNoData' |
44
- * 'UIBackgroundFetchResultFailed'
45
- */
46
- fetchResult: string,
47
- ) => void;
48
- +setApplicationIconBadgeNumber: (num: number) => void;
49
- +getApplicationIconBadgeNumber: (callback: (num: number) => void) => void;
50
- +requestPermissions: (permission: {|
51
- +alert: boolean,
52
- +badge: boolean,
53
- +sound: boolean,
54
- |}) => Promise<Permissions>;
55
- +abandonPermissions: () => void;
56
- +checkPermissions: (callback: (permissions: Permissions) => void) => void;
57
- +presentLocalNotification: (notification: Notification) => void;
58
- +scheduleLocalNotification: (notification: Notification) => void;
59
- +cancelAllLocalNotifications: () => void;
60
- +cancelLocalNotifications: (userInfo: Object) => void;
61
- +getInitialNotification: () => Promise<?Notification>;
62
- +getScheduledLocalNotifications: (
63
- callback: (notification: Notification) => void,
64
- ) => void;
65
- +removeAllDeliveredNotifications: () => void;
66
- +removeDeliveredNotifications: (identifiers: Array<string>) => void;
67
- +getDeliveredNotifications: (
68
- callback: (notification: Array<Notification>) => void,
69
- ) => void;
70
- +getAuthorizationStatus: (
71
- callback: (authorizationStatus: number) => void,
72
- ) => void;
73
- +addListener: (eventType: string) => void;
74
- +removeListeners: (count: number) => void;
75
- }
76
-
77
- export default (TurboModuleRegistry.get<Spec>(
78
- 'PushNotificationManager',
79
- ): ?Spec);
11
+ export * from '../../src/private/specs/modules/NativePushNotificationManagerIOS';
12
+ import NativePushNotificationManagerIOS from '../../src/private/specs/modules/NativePushNotificationManagerIOS';
13
+ export default NativePushNotificationManagerIOS;
@@ -68,12 +68,16 @@ export type FetchResult = {
68
68
  export type PushNotificationEventName = $Keys<{
69
69
  /**
70
70
  * Fired when a remote notification is received. The handler will be invoked
71
- * with an instance of `PushNotificationIOS`.
71
+ * with an instance of `PushNotificationIOS`. This will handle notifications
72
+ * that arrive in the foreground or were tapped to open the app from the
73
+ * background.
72
74
  */
73
75
  notification: string,
74
76
  /**
75
77
  * Fired when a local notification is received. The handler will be invoked
76
- * with an instance of `PushNotificationIOS`.
78
+ * with an instance of `PushNotificationIOS`. This will handle notifications
79
+ * that arrive in the foreground or were tapped to open the app from the
80
+ * background.
77
81
  */
78
82
  localNotification: string,
79
83
  /**
@@ -83,8 +87,8 @@ export type PushNotificationEventName = $Keys<{
83
87
  register: string,
84
88
  /**
85
89
  * Fired when the user fails to register for remote notifications. Typically
86
- * occurs when APNS is having issues, or the device is a simulator. The
87
- * handler will be invoked with {message: string, code: number, details: any}.
90
+ * occurs due to APNS issues or if the device is a simulator. The handler
91
+ * will be invoked with {message: string, code: number, details: any}.
88
92
  */
89
93
  registrationError: string,
90
94
  ...
@@ -92,8 +96,7 @@ export type PushNotificationEventName = $Keys<{
92
96
 
93
97
  /**
94
98
  *
95
- * Handle push notifications for your app, including permission handling and
96
- * icon badge number.
99
+ * Handle notifications for your app, including scheduling and permissions.
97
100
  *
98
101
  * See https://reactnative.dev/docs/pushnotificationios
99
102
  */
@@ -116,7 +119,7 @@ class PushNotificationIOS {
116
119
  };
117
120
 
118
121
  /**
119
- * Schedules the localNotification for immediate presentation.
122
+ * Schedules a local notification for immediate presentation.
120
123
  *
121
124
  * See https://reactnative.dev/docs/pushnotificationios#presentlocalnotification
122
125
  */
@@ -129,7 +132,7 @@ class PushNotificationIOS {
129
132
  }
130
133
 
131
134
  /**
132
- * Schedules the localNotification for future presentation.
135
+ * Schedules a local notification for future presentation.
133
136
  *
134
137
  * See https://reactnative.dev/docs/pushnotificationios#schedulelocalnotification
135
138
  */
@@ -142,7 +145,7 @@ class PushNotificationIOS {
142
145
  }
143
146
 
144
147
  /**
145
- * Cancels all scheduled localNotifications.
148
+ * Cancels all scheduled local notifications.
146
149
  *
147
150
  * See https://reactnative.dev/docs/pushnotificationios#cancelalllocalnotifications
148
151
  */
@@ -155,7 +158,7 @@ class PushNotificationIOS {
155
158
  }
156
159
 
157
160
  /**
158
- * Remove all delivered notifications from Notification Center.
161
+ * Removes all delivered notifications from Notification Center.
159
162
  *
160
163
  * See https://reactnative.dev/docs/pushnotificationios#removealldeliverednotifications
161
164
  */
@@ -168,7 +171,8 @@ class PushNotificationIOS {
168
171
  }
169
172
 
170
173
  /**
171
- * Provides you with a list of the app’s notifications that are still displayed in Notification Center.
174
+ * Provides a list of the app’s notifications that are currently displayed
175
+ * in Notification Center.
172
176
  *
173
177
  * See https://reactnative.dev/docs/pushnotificationios#getdeliverednotifications
174
178
  */
@@ -183,7 +187,7 @@ class PushNotificationIOS {
183
187
  }
184
188
 
185
189
  /**
186
- * Removes the specified notifications from Notification Center
190
+ * Removes the specified notifications from Notification Center.
187
191
  *
188
192
  * See https://reactnative.dev/docs/pushnotificationios#removedeliverednotifications
189
193
  */
@@ -196,7 +200,7 @@ class PushNotificationIOS {
196
200
  }
197
201
 
198
202
  /**
199
- * Sets the badge number for the app icon on the home screen.
203
+ * Sets the badge number for the app icon on the Home Screen.
200
204
  *
201
205
  * See https://reactnative.dev/docs/pushnotificationios#setapplicationiconbadgenumber
202
206
  */
@@ -209,7 +213,7 @@ class PushNotificationIOS {
209
213
  }
210
214
 
211
215
  /**
212
- * Gets the current badge number for the app icon on the home screen.
216
+ * Gets the current badge number for the app icon on the Home Screen.
213
217
  *
214
218
  * See https://reactnative.dev/docs/pushnotificationios#getapplicationiconbadgenumber
215
219
  */
@@ -222,7 +226,8 @@ class PushNotificationIOS {
222
226
  }
223
227
 
224
228
  /**
225
- * Cancel local notifications.
229
+ * Cancels any scheduled local notifications which match the fields in the
230
+ * provided `userInfo`.
226
231
  *
227
232
  * See https://reactnative.dev/docs/pushnotificationios#cancellocalnotification
228
233
  */
@@ -235,7 +240,7 @@ class PushNotificationIOS {
235
240
  }
236
241
 
237
242
  /**
238
- * Gets the local notifications that are currently scheduled.
243
+ * Gets the list of local notifications that are currently scheduled.
239
244
  *
240
245
  * See https://reactnative.dev/docs/pushnotificationios#getscheduledlocalnotifications
241
246
  */
@@ -248,8 +253,8 @@ class PushNotificationIOS {
248
253
  }
249
254
 
250
255
  /**
251
- * Attaches a listener to remote or local notification events while the app
252
- * is running in the foreground or the background.
256
+ * Attaches a listener to notification events including local notifications,
257
+ * remote notifications, and notification registration results.
253
258
  *
254
259
  * See https://reactnative.dev/docs/pushnotificationios#addeventlistener
255
260
  */
@@ -303,10 +308,7 @@ class PushNotificationIOS {
303
308
  *
304
309
  * See https://reactnative.dev/docs/pushnotificationios#removeeventlistener
305
310
  */
306
- static removeEventListener(
307
- type: PushNotificationEventName,
308
- handler: Function,
309
- ): void {
311
+ static removeEventListener(type: PushNotificationEventName): void {
310
312
  invariant(
311
313
  type === 'notification' ||
312
314
  type === 'register' ||
@@ -323,10 +325,9 @@ class PushNotificationIOS {
323
325
  }
324
326
 
325
327
  /**
326
- * Requests notification permissions from iOS, prompting the user's
328
+ * Requests notification permissions from iOS, prompting the user with a
327
329
  * dialog box. By default, it will request all notification permissions, but
328
- * a subset of these can be requested by passing a map of requested
329
- * permissions.
330
+ * you can optionally specify which permissions to request.
330
331
  *
331
332
  * See https://reactnative.dev/docs/pushnotificationios#requestpermissions
332
333
  */
@@ -363,7 +364,8 @@ class PushNotificationIOS {
363
364
  }
364
365
 
365
366
  /**
366
- * Unregister for all remote notifications received via Apple Push Notification service.
367
+ * Unregister for all remote notifications received via Apple Push Notification
368
+ * service. This should be called in rare circumstances only.
367
369
  *
368
370
  * See https://reactnative.dev/docs/pushnotificationios#abandonpermissions
369
371
  */
@@ -376,8 +378,8 @@ class PushNotificationIOS {
376
378
  }
377
379
 
378
380
  /**
379
- * See what push permissions are currently enabled. `callback` will be
380
- * invoked with a `permissions` object.
381
+ * Check which push permissions are currently enabled. `callback` will be
382
+ * invoked with a `Permissions` object.
381
383
  *
382
384
  * See https://reactnative.dev/docs/pushnotificationios#checkpermissions
383
385
  */
@@ -409,7 +411,8 @@ class PushNotificationIOS {
409
411
  }
410
412
 
411
413
  /**
412
- * This method returns a promise that resolves to notification authorization status.
414
+ * This method returns a promise that resolves to the current notification
415
+ * authorization status. See UNAuthorizationStatus for possible values.
413
416
  */
414
417
  static getAuthorizationStatus(
415
418
  callback: (authorizationStatus: number) => void,
@@ -425,7 +428,7 @@ class PushNotificationIOS {
425
428
  /**
426
429
  * You will never need to instantiate `PushNotificationIOS` yourself.
427
430
  * Listening to the `notification` event and invoking
428
- * `getInitialNotification` is sufficient
431
+ * `getInitialNotification` is sufficient.
429
432
  *
430
433
  */
431
434
  constructor(nativeNotif: Object) {
@@ -464,7 +467,8 @@ class PushNotificationIOS {
464
467
 
465
468
  /**
466
469
  * This method is available for remote notifications that have been received via:
467
- * `application:didReceiveRemoteNotification:fetchCompletionHandler:`
470
+ * `application:didReceiveRemoteNotification:fetchCompletionHandler:`. See docs
471
+ * for more information.
468
472
  *
469
473
  * See https://reactnative.dev/docs/pushnotificationios#finish
470
474
  */
@@ -489,7 +493,7 @@ class PushNotificationIOS {
489
493
  }
490
494
 
491
495
  /**
492
- * An alias for `getAlert` to get the notification's main message string
496
+ * An alias for `getAlert` to get the notification's main message string.
493
497
  */
494
498
  getMessage(): ?string | ?Object {
495
499
  // alias because "alert" is an ambiguous name
@@ -497,7 +501,8 @@ class PushNotificationIOS {
497
501
  }
498
502
 
499
503
  /**
500
- * Gets the sound string from the `aps` object
504
+ * Gets the sound string from the `aps` object. This will be `null` for local
505
+ * notifications.
501
506
  *
502
507
  * See https://reactnative.dev/docs/pushnotificationios#getsound
503
508
  */
@@ -506,7 +511,7 @@ class PushNotificationIOS {
506
511
  }
507
512
 
508
513
  /**
509
- * Gets the category string from the `aps` object
514
+ * Gets the category string from the `aps` object.
510
515
  *
511
516
  * See https://reactnative.dev/docs/pushnotificationios#getcategory
512
517
  */
@@ -515,7 +520,8 @@ class PushNotificationIOS {
515
520
  }
516
521
 
517
522
  /**
518
- * Gets the notification's main message from the `aps` object
523
+ * Gets the notification's main message from the `aps` object. Also see the
524
+ * alias: `getMessage()`.
519
525
  *
520
526
  * See https://reactnative.dev/docs/pushnotificationios#getalert
521
527
  */
@@ -524,7 +530,7 @@ class PushNotificationIOS {
524
530
  }
525
531
 
526
532
  /**
527
- * Gets the content-available number from the `aps` object
533
+ * Gets the content-available number from the `aps` object.
528
534
  *
529
535
  * See https://reactnative.dev/docs/pushnotificationios#getcontentavailable
530
536
  */
@@ -533,7 +539,7 @@ class PushNotificationIOS {
533
539
  }
534
540
 
535
541
  /**
536
- * Gets the badge count number from the `aps` object
542
+ * Gets the badge count number from the `aps` object.
537
543
  *
538
544
  * See https://reactnative.dev/docs/pushnotificationios#getbadgecount
539
545
  */
@@ -542,7 +548,7 @@ class PushNotificationIOS {
542
548
  }
543
549
 
544
550
  /**
545
- * Gets the data object on the notif
551
+ * Gets the data object on the notification.
546
552
  *
547
553
  * See https://reactnative.dev/docs/pushnotificationios#getdata
548
554
  */
@@ -551,7 +557,7 @@ class PushNotificationIOS {
551
557
  }
552
558
 
553
559
  /**
554
- * Gets the thread ID on the notif
560
+ * Gets the thread ID on the notification.
555
561
  *
556
562
  * See https://reactnative.dev/docs/pushnotificationios#getthreadid
557
563
  */
@@ -0,0 +1,211 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict-local
8
+ * @format
9
+ * @oncall react_native
10
+ */
11
+
12
+ import type {
13
+ ReactDevToolsAgent,
14
+ ReactDevToolsGlobalHook,
15
+ } from '../Types/ReactDevToolsTypes';
16
+ import type {Props} from './AppContainer';
17
+
18
+ import ReactNativeStyleAttributes from '../Components/View/ReactNativeStyleAttributes';
19
+ import View from '../Components/View/View';
20
+ import DebuggingOverlay from '../Debugging/DebuggingOverlay';
21
+ import useSubscribeToDebuggingOverlayRegistry from '../Debugging/useSubscribeToDebuggingOverlayRegistry';
22
+ import RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';
23
+ import LogBoxNotificationContainer from '../LogBox/LogBoxNotificationContainer';
24
+ import StyleSheet from '../StyleSheet/StyleSheet';
25
+ import {RootTagContext, createRootTag} from './RootTag';
26
+ import * as React from 'react';
27
+
28
+ const {useEffect, useState, useCallback} = React;
29
+
30
+ const reactDevToolsHook: ReactDevToolsGlobalHook =
31
+ window.__REACT_DEVTOOLS_GLOBAL_HOOK__;
32
+
33
+ // Required for React DevTools to view / edit React Native styles in Flipper.
34
+ // Flipper doesn't inject these values when initializing DevTools.
35
+ if (reactDevToolsHook) {
36
+ reactDevToolsHook.resolveRNStyle = require('../StyleSheet/flattenStyle');
37
+ reactDevToolsHook.nativeStyleEditorValidAttributes = Object.keys(
38
+ ReactNativeStyleAttributes,
39
+ );
40
+ }
41
+
42
+ type InspectorDeferredProps = {
43
+ inspectedViewRef: InspectedViewRef,
44
+ onInspectedViewRerenderRequest: () => void,
45
+ reactDevToolsAgent?: ReactDevToolsAgent,
46
+ };
47
+
48
+ const InspectorDeferred = ({
49
+ inspectedViewRef,
50
+ onInspectedViewRerenderRequest,
51
+ reactDevToolsAgent,
52
+ }: InspectorDeferredProps) => {
53
+ // D39382967 adds a require cycle: InitializeCore -> AppContainer -> Inspector -> InspectorPanel -> ScrollView -> InitializeCore
54
+ // We can't remove it yet, fallback to dynamic require for now. This is the only reason why this logic is in a separate function.
55
+ const Inspector = require('../Inspector/Inspector');
56
+
57
+ return (
58
+ <Inspector
59
+ inspectedViewRef={inspectedViewRef}
60
+ onRequestRerenderApp={onInspectedViewRerenderRequest}
61
+ reactDevToolsAgent={reactDevToolsAgent}
62
+ />
63
+ );
64
+ };
65
+
66
+ type ReactDevToolsOverlayDeferredProps = {
67
+ inspectedViewRef: InspectedViewRef,
68
+ reactDevToolsAgent: ReactDevToolsAgent,
69
+ };
70
+
71
+ const ReactDevToolsOverlayDeferred = ({
72
+ inspectedViewRef,
73
+ reactDevToolsAgent,
74
+ }: ReactDevToolsOverlayDeferredProps) => {
75
+ const ReactDevToolsOverlay =
76
+ require('../Inspector/ReactDevToolsOverlay').default;
77
+
78
+ return (
79
+ <ReactDevToolsOverlay
80
+ inspectedViewRef={inspectedViewRef}
81
+ reactDevToolsAgent={reactDevToolsAgent}
82
+ />
83
+ );
84
+ };
85
+
86
+ const AppContainer = ({
87
+ children,
88
+ fabric,
89
+ initialProps,
90
+ internal_excludeInspector = false,
91
+ internal_excludeLogBox = false,
92
+ rootTag,
93
+ showArchitectureIndicator,
94
+ WrapperComponent,
95
+ }: Props): React.Node => {
96
+ const appContainerRootViewRef: AppContainerRootViewRef = React.useRef(null);
97
+ const innerViewRef: InspectedViewRef = React.useRef(null);
98
+ const debuggingOverlayRef: DebuggingOverlayRef = React.useRef(null);
99
+
100
+ useSubscribeToDebuggingOverlayRegistry(
101
+ appContainerRootViewRef,
102
+ debuggingOverlayRef,
103
+ );
104
+
105
+ const [key, setKey] = useState(0);
106
+ const [shouldRenderInspector, setShouldRenderInspector] = useState(false);
107
+ const [reactDevToolsAgent, setReactDevToolsAgent] =
108
+ useState<ReactDevToolsAgent | void>(reactDevToolsHook?.reactDevtoolsAgent);
109
+
110
+ useEffect(() => {
111
+ let inspectorSubscription = null;
112
+ if (!internal_excludeInspector) {
113
+ inspectorSubscription = RCTDeviceEventEmitter.addListener(
114
+ 'toggleElementInspector',
115
+ () => setShouldRenderInspector(value => !value),
116
+ );
117
+ }
118
+
119
+ let reactDevToolsAgentListener = null;
120
+ // If this is first render, subscribe to the event from React DevTools hook
121
+ if (reactDevToolsHook != null && reactDevToolsAgent == null) {
122
+ reactDevToolsAgentListener = setReactDevToolsAgent;
123
+ reactDevToolsHook.on?.('react-devtools', reactDevToolsAgentListener);
124
+ }
125
+
126
+ return () => {
127
+ inspectorSubscription?.remove();
128
+
129
+ if (
130
+ reactDevToolsHook?.off != null &&
131
+ reactDevToolsAgentListener != null
132
+ ) {
133
+ reactDevToolsHook.off('react-devtools', reactDevToolsAgentListener);
134
+ }
135
+ };
136
+ // eslint-disable-next-line react-hooks/exhaustive-deps
137
+ }, []);
138
+
139
+ let innerView: React.Node = (
140
+ <View
141
+ collapsable={reactDevToolsAgent == null && !shouldRenderInspector}
142
+ pointerEvents="box-none"
143
+ key={key}
144
+ style={styles.container}
145
+ ref={innerViewRef}>
146
+ {children}
147
+ </View>
148
+ );
149
+
150
+ if (WrapperComponent != null) {
151
+ innerView = (
152
+ <WrapperComponent
153
+ initialProps={initialProps}
154
+ fabric={fabric === true}
155
+ showArchitectureIndicator={showArchitectureIndicator === true}>
156
+ {innerView}
157
+ </WrapperComponent>
158
+ );
159
+ }
160
+
161
+ const onInspectedViewRerenderRequest = useCallback(
162
+ () => setKey(k => k + 1),
163
+ [],
164
+ );
165
+
166
+ return (
167
+ <RootTagContext.Provider value={createRootTag(rootTag)}>
168
+ <View
169
+ ref={appContainerRootViewRef}
170
+ style={styles.container}
171
+ pointerEvents="box-none">
172
+ {innerView}
173
+
174
+ <DebuggingOverlay ref={debuggingOverlayRef} />
175
+
176
+ {reactDevToolsAgent != null && (
177
+ <ReactDevToolsOverlayDeferred
178
+ inspectedViewRef={innerViewRef}
179
+ reactDevToolsAgent={reactDevToolsAgent}
180
+ />
181
+ )}
182
+
183
+ {shouldRenderInspector && (
184
+ <InspectorDeferred
185
+ inspectedViewRef={innerViewRef}
186
+ onInspectedViewRerenderRequest={onInspectedViewRerenderRequest}
187
+ reactDevToolsAgent={reactDevToolsAgent}
188
+ />
189
+ )}
190
+
191
+ {!internal_excludeLogBox && <LogBoxNotificationContainer />}
192
+ </View>
193
+ </RootTagContext.Provider>
194
+ );
195
+ };
196
+
197
+ const styles = StyleSheet.create({
198
+ container: {flex: 1},
199
+ });
200
+
201
+ export type AppContainerRootViewRef = React.RefObject<React.ElementRef<
202
+ typeof View,
203
+ > | null>;
204
+ export type InspectedViewRef = React.RefObject<React.ElementRef<
205
+ typeof View,
206
+ > | null>;
207
+ export type DebuggingOverlayRef = React.RefObject<React.ElementRef<
208
+ typeof DebuggingOverlay,
209
+ > | null>;
210
+
211
+ export default AppContainer;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict-local
8
+ * @format
9
+ * @oncall react_native
10
+ */
11
+
12
+ import type {Props} from './AppContainer';
13
+
14
+ import View from '../Components/View/View';
15
+ import StyleSheet from '../StyleSheet/StyleSheet';
16
+ import {RootTagContext, createRootTag} from './RootTag';
17
+ import * as React from 'react';
18
+
19
+ const AppContainer = ({
20
+ children,
21
+ fabric,
22
+ initialProps,
23
+ rootTag,
24
+ showArchitectureIndicator,
25
+ WrapperComponent,
26
+ }: Props): React.Node => {
27
+ let innerView = children;
28
+
29
+ if (WrapperComponent != null) {
30
+ innerView = (
31
+ <WrapperComponent
32
+ initialProps={initialProps}
33
+ fabric={fabric === true}
34
+ showArchitectureIndicator={showArchitectureIndicator === true}>
35
+ {innerView}
36
+ </WrapperComponent>
37
+ );
38
+ }
39
+
40
+ return (
41
+ <RootTagContext.Provider value={createRootTag(rootTag)}>
42
+ <View style={styles.root} pointerEvents="box-none">
43
+ {innerView}
44
+ </View>
45
+ </RootTagContext.Provider>
46
+ );
47
+ };
48
+
49
+ const styles = StyleSheet.create({
50
+ root: {flex: 1},
51
+ });
52
+
53
+ export default AppContainer;