@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
@@ -1,48 +0,0 @@
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 {ScrollViewNativeProps} from '../../../Libraries/Components/ScrollView/ScrollViewNativeComponentType';
13
- import type {HostComponent} from '../../../Libraries/Renderer/shims/ReactNativeTypes';
14
-
15
- import * as React from 'react';
16
- import {useImperativeHandle, useRef, useState} from 'react';
17
-
18
- export type TScrollViewNativeComponentInstance = React.ElementRef<
19
- HostComponent<ScrollViewNativeProps>,
20
- >;
21
-
22
- export type TScrollViewNativeImperativeHandle = {
23
- componentRef: React.RefObject<TScrollViewNativeComponentInstance | null>,
24
- unstable_setEnableSyncOnScroll: (enabled: true) => void,
25
- };
26
-
27
- /**
28
- * Hook used by `HScrollViewNativeComponent` and `VScrollViewNativeComponent`
29
- * to make an implementation of `unstable_setEnableSyncOnScroll` available that
30
- * does not require updating all `ScrollView` children.
31
- */
32
- export default function useSyncOnScroll(
33
- inputRef: ?React.RefSetter<TScrollViewNativeImperativeHandle | null>,
34
- ): [React.RefSetter<TScrollViewNativeComponentInstance | null>, true | void] {
35
- const componentRef = useRef<TScrollViewNativeComponentInstance | null>(null);
36
- const [enableSyncOnScroll, setEnableSyncOnScroll] = useState<true | void>();
37
-
38
- useImperativeHandle<TScrollViewNativeImperativeHandle>(inputRef, () => {
39
- return {
40
- componentRef,
41
- unstable_setEnableSyncOnScroll(enabled: true): void {
42
- setEnableSyncOnScroll(enabled);
43
- },
44
- };
45
- }, []);
46
-
47
- return [componentRef, enableSyncOnScroll];
48
- }
@@ -1,61 +0,0 @@
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
8
- * @format
9
- */
10
-
11
- import type {TurboModule} from '../../../../../Libraries/TurboModule/RCTExport';
12
-
13
- import * as TurboModuleRegistry from '../../../../../Libraries/TurboModule/TurboModuleRegistry';
14
-
15
- export type RawPerformanceEntryType = number;
16
-
17
- export type RawPerformanceEntry = {|
18
- name: string,
19
- entryType: RawPerformanceEntryType,
20
- startTime: number,
21
- duration: number,
22
- // For "event" entries only:
23
- processingStart?: number,
24
- processingEnd?: number,
25
- interactionId?: number,
26
- |};
27
-
28
- export type GetPendingEntriesResult = {|
29
- entries: $ReadOnlyArray<RawPerformanceEntry>,
30
- droppedEntriesCount: number,
31
- |};
32
-
33
- export interface Spec extends TurboModule {
34
- +startReporting: (entryType: RawPerformanceEntryType) => void;
35
- +stopReporting: (entryType: RawPerformanceEntryType) => void;
36
- +setIsBuffered: (
37
- entryTypes: $ReadOnlyArray<RawPerformanceEntryType>,
38
- isBuffered: boolean,
39
- ) => void;
40
- +popPendingEntries: () => GetPendingEntriesResult;
41
- +setOnPerformanceEntryCallback: (callback?: () => void) => void;
42
- +logRawEntry: (entry: RawPerformanceEntry) => void;
43
- +getEventCounts: () => $ReadOnlyArray<[string, number]>;
44
- +setDurationThreshold: (
45
- entryType: RawPerformanceEntryType,
46
- durationThreshold: number,
47
- ) => void;
48
- +clearEntries: (
49
- entryType?: RawPerformanceEntryType,
50
- entryName?: string,
51
- ) => void;
52
- +getEntries: (
53
- entryType?: RawPerformanceEntryType,
54
- entryName?: string,
55
- ) => $ReadOnlyArray<RawPerformanceEntry>;
56
- +getSupportedPerformanceEntryTypes: () => $ReadOnlyArray<RawPerformanceEntryType>;
57
- }
58
-
59
- export default (TurboModuleRegistry.get<Spec>(
60
- 'NativePerformanceObserverCxx',
61
- ): ?Spec);
@@ -1,67 +0,0 @@
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
8
- * @format
9
- */
10
-
11
- import type {
12
- NativeMemoryInfo,
13
- ReactNativeStartupTiming,
14
- Spec as NativePerformance,
15
- } from '../NativePerformance';
16
-
17
- import {RawPerformanceEntryTypeValues} from '../../RawPerformanceEntry';
18
- import NativePerformanceObserver from '../NativePerformanceObserver';
19
-
20
- const marks: Map<string, number> = new Map();
21
-
22
- const NativePerformanceMock: NativePerformance = {
23
- mark: (name: string, startTime: number): void => {
24
- NativePerformanceObserver?.logRawEntry({
25
- name,
26
- entryType: RawPerformanceEntryTypeValues.MARK,
27
- startTime,
28
- duration: 0,
29
- });
30
- marks.set(name, startTime);
31
- },
32
-
33
- measure: (
34
- name: string,
35
- startTime: number,
36
- endTime: number,
37
- duration?: number,
38
- startMark?: string,
39
- endMark?: string,
40
- ): void => {
41
- const start = startMark != null ? marks.get(startMark) ?? 0 : startTime;
42
- const end = endMark != null ? marks.get(endMark) ?? 0 : endTime;
43
- NativePerformanceObserver?.logRawEntry({
44
- name,
45
- entryType: RawPerformanceEntryTypeValues.MEASURE,
46
- startTime: start,
47
- duration: duration ?? (end ? end - start : 0),
48
- });
49
- },
50
-
51
- getSimpleMemoryInfo: (): NativeMemoryInfo => {
52
- return {};
53
- },
54
-
55
- getReactNativeStartupTiming: (): ReactNativeStartupTiming => {
56
- return {
57
- startTime: 0,
58
- endTime: 0,
59
- executeJavaScriptBundleEntryPointStart: 0,
60
- executeJavaScriptBundleEntryPointEnd: 0,
61
- initializeRuntimeStart: 0,
62
- initializeRuntimeEnd: 0,
63
- };
64
- },
65
- };
66
-
67
- export default NativePerformanceMock;
@@ -1,127 +0,0 @@
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
8
- * @format
9
- */
10
-
11
- import type {
12
- GetPendingEntriesResult,
13
- RawPerformanceEntry,
14
- RawPerformanceEntryType,
15
- Spec as NativePerformanceObserver,
16
- } from '../NativePerformanceObserver';
17
-
18
- import {RawPerformanceEntryTypeValues} from '../../RawPerformanceEntry';
19
-
20
- const reportingType: Set<RawPerformanceEntryType> = new Set();
21
- const isAlwaysLogged: Set<RawPerformanceEntryType> = new Set();
22
- const eventCounts: Map<string, number> = new Map();
23
- const durationThresholds: Map<RawPerformanceEntryType, number> = new Map();
24
- let entries: Array<RawPerformanceEntry> = [];
25
- let onPerformanceEntryCallback: ?() => void;
26
-
27
- const NativePerformanceObserverMock: NativePerformanceObserver = {
28
- startReporting: (entryType: RawPerformanceEntryType) => {
29
- reportingType.add(entryType);
30
- },
31
-
32
- stopReporting: (entryType: RawPerformanceEntryType) => {
33
- reportingType.delete(entryType);
34
- durationThresholds.delete(entryType);
35
- },
36
-
37
- setIsBuffered: (
38
- entryTypes: $ReadOnlyArray<RawPerformanceEntryType>,
39
- isBuffered: boolean,
40
- ) => {
41
- for (const entryType of entryTypes) {
42
- if (isBuffered) {
43
- isAlwaysLogged.add(entryType);
44
- } else {
45
- isAlwaysLogged.delete(entryType);
46
- }
47
- }
48
- },
49
-
50
- popPendingEntries: (): GetPendingEntriesResult => {
51
- const res = entries;
52
- entries = [];
53
- return {
54
- droppedEntriesCount: 0,
55
- entries: res,
56
- };
57
- },
58
-
59
- setOnPerformanceEntryCallback: (callback?: () => void) => {
60
- onPerformanceEntryCallback = callback;
61
- },
62
-
63
- logRawEntry: (entry: RawPerformanceEntry) => {
64
- if (
65
- reportingType.has(entry.entryType) ||
66
- isAlwaysLogged.has(entry.entryType)
67
- ) {
68
- const durationThreshold = durationThresholds.get(entry.entryType);
69
- if (
70
- durationThreshold !== undefined &&
71
- entry.duration < durationThreshold
72
- ) {
73
- return;
74
- }
75
- entries.push(entry);
76
- // $FlowFixMe[incompatible-call]
77
- global.queueMicrotask(() => {
78
- // We want to emulate the way it's done in native (i.e. async/batched)
79
- onPerformanceEntryCallback?.();
80
- });
81
- }
82
- if (entry.entryType === RawPerformanceEntryTypeValues.EVENT) {
83
- eventCounts.set(entry.name, (eventCounts.get(entry.name) ?? 0) + 1);
84
- }
85
- },
86
-
87
- getEventCounts: (): $ReadOnlyArray<[string, number]> => {
88
- return Array.from(eventCounts.entries());
89
- },
90
-
91
- setDurationThreshold: (
92
- entryType: RawPerformanceEntryType,
93
- durationThreshold: number,
94
- ) => {
95
- durationThresholds.set(entryType, durationThreshold);
96
- },
97
-
98
- clearEntries: (entryType?: RawPerformanceEntryType, entryName?: string) => {
99
- entries = entries.filter(
100
- e =>
101
- (entryType != null && e.entryType !== entryType) ||
102
- (entryName != null && e.name !== entryName),
103
- );
104
- },
105
-
106
- getEntries: (
107
- entryType?: RawPerformanceEntryType,
108
- entryName?: string,
109
- ): $ReadOnlyArray<RawPerformanceEntry> => {
110
- return entries.filter(
111
- e =>
112
- (entryType == null || e.entryType === entryType) &&
113
- (entryName == null || e.name === entryName),
114
- );
115
- },
116
-
117
- getSupportedPerformanceEntryTypes:
118
- (): $ReadOnlyArray<RawPerformanceEntryType> => {
119
- return [
120
- RawPerformanceEntryTypeValues.MARK,
121
- RawPerformanceEntryTypeValues.MEASURE,
122
- RawPerformanceEntryTypeValues.EVENT,
123
- ];
124
- },
125
- };
126
-
127
- export default NativePerformanceObserverMock;
@@ -1,59 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @format
8
- */
9
-
10
- /**
11
- * These are types for things that are present for New Architecture enabled apps
12
- * which is currently considered experimental.
13
- *
14
- * To load the types declared here in an actual project, there are three ways.
15
- *
16
- * 1. If your `tsconfig.json` already has a `"types"` array in the `"compilerOptions"` section,
17
- * is to add `"react-native/types/experimental"` to the `"types"` array.
18
- *
19
- * 2. Alternatively, a specific import syntax can to be used from a typescript file.
20
- * This module does not exist in reality, which is why the {} is important:
21
- *
22
- * ```ts
23
- * import {} from 'react-native/types/experimental'
24
- * ```
25
- *
26
- * 3. It is also possible to include it through a triple-slash reference:
27
- *
28
- * ```ts
29
- * /// <reference types="react-native/types/experimental" />
30
- * ```
31
- *
32
- * Either the import or the reference only needs to appear once, anywhere in the project.
33
- */
34
-
35
- import {
36
- GradientValue,
37
- BlendMode,
38
- } from 'react-native/Libraries/StyleSheet/StyleSheetTypes';
39
-
40
- export {};
41
-
42
- declare module '.' {
43
- export interface ViewProps {
44
- /**
45
- * Contols whether this view, and its transitive children, are laid in a way
46
- * consistent with web browsers ('strict'), or consistent with existing
47
- * React Native code which may rely on incorrect behavior ('classic').
48
- */
49
- experimental_layoutConformance?: 'strict' | 'classic' | undefined;
50
- }
51
-
52
- export interface ViewStyle {
53
- experimental_mixBlendMode?: BlendMode | undefined;
54
- experimental_backgroundImage?:
55
- | ReadonlyArray<GradientValue>
56
- | string
57
- | undefined;
58
- }
59
- }