@office-iss/react-native-win32 0.0.0-canary.291 → 0.0.0-canary.293

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 (191) hide show
  1. package/.flowconfig +1 -1
  2. package/CHANGELOG.json +43 -1
  3. package/CHANGELOG.md +22 -4
  4. package/Libraries/Alert/RCTAlertManager.js +17 -0
  5. package/Libraries/Animated/AnimatedEvent.js +4 -3
  6. package/Libraries/Animated/AnimatedExports.js.flow +2 -0
  7. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  8. package/Libraries/Animated/components/AnimatedScrollView.js +48 -43
  9. package/Libraries/Animated/nodes/AnimatedValue.js +2 -1
  10. package/Libraries/BatchedBridge/MessageQueue.js +2 -2
  11. package/Libraries/Blob/FileReader.js +219 -8
  12. package/Libraries/Blob/URL.js +13 -1
  13. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js +17 -0
  14. package/Libraries/Components/Button.js +1 -1
  15. package/Libraries/Components/Button.win32.js +1 -1
  16. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -3
  17. package/Libraries/{Utilities/__mocks__/GlobalPerformanceLogger.js → Components/DrawerAndroid/DrawerLayoutAndroid.ios.js} +3 -4
  18. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +6 -66
  19. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +18 -0
  20. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +71 -0
  21. package/Libraries/Components/Keyboard/Keyboard.js +4 -2
  22. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +6 -3
  23. package/Libraries/Components/Pressable/Pressable.js +6 -1
  24. package/Libraries/Components/Pressable/Pressable.win32.js +6 -1
  25. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +12 -2
  26. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  27. package/Libraries/Components/ScrollView/ScrollView.d.ts +1 -1
  28. package/Libraries/Components/ScrollView/ScrollView.js +128 -116
  29. package/Libraries/Components/StaticRenderer.js +1 -1
  30. package/Libraries/Components/Switch/Switch.js +7 -3
  31. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +2 -1
  32. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -4
  33. package/Libraries/Components/TextInput/TextInput.flow.js +59 -42
  34. package/Libraries/Components/TextInput/TextInput.flow.win32.js +1208 -0
  35. package/Libraries/Components/TextInput/TextInput.js +67 -1005
  36. package/Libraries/Components/TextInput/TextInput.win32.js +69 -1037
  37. package/Libraries/{Blob/__mocks__/BlobModule.js → Components/ToastAndroid/ToastAndroid.ios.js} +3 -6
  38. package/Libraries/Components/ToastAndroid/ToastAndroid.js +4 -32
  39. package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +109 -0
  40. package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +4 -32
  41. package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +45 -0
  42. package/Libraries/Components/Touchable/Touchable.js +5 -5
  43. package/Libraries/Components/Touchable/Touchable.win32.js +5 -5
  44. package/Libraries/Components/Touchable/TouchableBounce.js +12 -6
  45. package/Libraries/Components/Touchable/TouchableHighlight.js +9 -6
  46. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +4 -4
  47. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +4 -4
  48. package/Libraries/Components/Touchable/TouchableOpacity.js +11 -5
  49. package/Libraries/Components/View/View.js +18 -21
  50. package/Libraries/Components/View/View.win32.js +21 -24
  51. package/Libraries/Components/View/ViewAccessibility.js +7 -0
  52. package/Libraries/Components/View/ViewAccessibility.win32.js +7 -0
  53. package/Libraries/Components/View/ViewPropTypes.js +1 -1
  54. package/Libraries/Components/View/ViewPropTypes.win32.js +1 -1
  55. package/Libraries/Core/ReactNativeVersion.js +1 -1
  56. package/Libraries/Core/setUpReactDevTools.js +5 -5
  57. package/Libraries/EventEmitter/NativeEventEmitter.js +4 -1
  58. package/Libraries/Image/Image.js +17 -0
  59. package/Libraries/Image/Image.js.flow +2 -2
  60. package/Libraries/Image/ImageInjection.js +1 -1
  61. package/Libraries/Image/ImageProps.js +5 -5
  62. package/Libraries/Image/ImageSource.js +3 -1
  63. package/Libraries/Image/ImageSourceUtils.js +4 -2
  64. package/Libraries/Image/ImageTypes.flow.js +1 -1
  65. package/Libraries/Lists/FlatList.d.ts +2 -2
  66. package/Libraries/Lists/FlatList.js +1 -1
  67. package/Libraries/Lists/SectionList.js +1 -1
  68. package/Libraries/Lists/SectionListModern.js +3 -3
  69. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  70. package/Libraries/LogBox/LogBoxNotificationContainer.js +1 -1
  71. package/Libraries/Modal/Modal.js +3 -3
  72. package/Libraries/NativeComponent/BaseViewConfig.js +17 -0
  73. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +2 -2
  74. package/Libraries/NativeModules/specs/NativeDevMenu.js +2 -2
  75. package/Libraries/Network/RCTNetworking.js +17 -0
  76. package/Libraries/Network/XMLHttpRequest.js +781 -10
  77. package/Libraries/NewAppScreen/components/DebugInstructions.js +1 -1
  78. package/Libraries/NewAppScreen/components/Header.js +1 -1
  79. package/Libraries/NewAppScreen/components/HermesBadge.js +1 -1
  80. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +3 -3
  81. package/Libraries/NewAppScreen/components/ReloadInstructions.js +1 -1
  82. package/Libraries/Performance/Systrace.js +7 -7
  83. package/Libraries/ReactNative/AppContainer-dev.js +3 -2
  84. package/Libraries/ReactNative/RendererImplementation.js +6 -5
  85. package/Libraries/ReactNative/renderApplication.js +9 -0
  86. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -2
  87. package/Libraries/Renderer/implementations/ReactFabric-dev.js +4840 -4748
  88. package/Libraries/Renderer/implementations/ReactFabric-prod.js +4947 -4829
  89. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3998 -3888
  90. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5005 -4948
  91. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +2744 -2652
  92. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +5020 -4933
  93. package/Libraries/Renderer/shims/ReactFabric.js +3 -1
  94. package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
  95. package/Libraries/Renderer/shims/ReactNative.js +3 -1
  96. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
  97. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
  98. package/Libraries/Settings/Settings.js +13 -19
  99. package/Libraries/Settings/Settings.win32.js +19 -20
  100. package/Libraries/Settings/SettingsFallback.js +33 -0
  101. package/Libraries/StyleSheet/PlatformColorValueTypes.js +15 -0
  102. package/Libraries/StyleSheet/Rect.js +1 -0
  103. package/Libraries/StyleSheet/StyleSheet.js.flow +3 -3
  104. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
  105. package/Libraries/StyleSheet/StyleSheetTypes.js +75 -33
  106. package/Libraries/StyleSheet/flattenStyle.js +7 -1
  107. package/Libraries/StyleSheet/processBackgroundImage.js +670 -214
  108. package/Libraries/Text/Text.js +3 -3
  109. package/Libraries/Text/Text.win32.js +3 -3
  110. package/Libraries/Text/TextNativeComponent.js +0 -4
  111. package/Libraries/Text/TextNativeComponent.win32.js +0 -4
  112. package/Libraries/Text/TextProps.js +1 -1
  113. package/Libraries/Text/TextProps.win32.js +1 -1
  114. package/Libraries/Utilities/Appearance.js +2 -0
  115. package/Libraries/Utilities/BackHandler.js +17 -0
  116. package/Libraries/Utilities/Platform.js +17 -0
  117. package/Libraries/Utilities/PlatformTypes.js +2 -0
  118. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  119. package/Libraries/WebSocket/WebSocket.js +313 -8
  120. package/flow/global.js +0 -2
  121. package/index.js +1 -288
  122. package/index.win32.js +8 -297
  123. package/overrides.json +29 -23
  124. package/package.json +16 -16
  125. package/src/private/animated/NativeAnimatedHelper.js +1 -1
  126. package/src/private/animated/NativeAnimatedHelper.win32.js +1 -1
  127. package/src/private/animated/createAnimatedPropsHook.js +2 -27
  128. package/src/private/components/{SafeAreaView_INTERNAL_DO_NOT_USE.js → safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js} +6 -6
  129. package/src/private/components/{HScrollViewNativeComponents.js → scrollview/HScrollViewNativeComponents.js} +8 -8
  130. package/src/private/components/scrollview/VScrollViewNativeComponents.js +25 -0
  131. package/src/private/{devmenu → devsupport/devmenu}/DevMenu.js +1 -1
  132. package/src/private/{inspector → devsupport/devmenu/elementinspector}/BorderBox.js +3 -3
  133. package/src/private/{inspector → devsupport/devmenu/elementinspector}/BoxInspector.js +6 -5
  134. package/src/private/{inspector → devsupport/devmenu/elementinspector}/ElementBox.js +8 -6
  135. package/src/private/{inspector → devsupport/devmenu/elementinspector}/ElementProperties.js +11 -10
  136. package/src/private/{inspector → devsupport/devmenu/elementinspector}/Inspector.js +14 -12
  137. package/src/private/{inspector → devsupport/devmenu/elementinspector}/InspectorOverlay.js +5 -4
  138. package/src/private/{inspector → devsupport/devmenu/elementinspector}/InspectorPanel.js +9 -8
  139. package/src/private/{inspector → devsupport/devmenu/elementinspector}/NetworkOverlay.js +10 -9
  140. package/src/private/{inspector → devsupport/devmenu/elementinspector}/ReactDevToolsOverlay.js +7 -7
  141. package/src/private/{inspector → devsupport/devmenu/elementinspector}/StyleInspector.js +7 -6
  142. package/src/private/{inspector → devsupport/devmenu/elementinspector}/XHRInterceptor.js +2 -2
  143. package/src/private/{inspector → devsupport/devmenu/elementinspector}/getInspectorDataForViewAtPoint.js +2 -2
  144. package/src/private/{inspector → devsupport/devmenu/elementinspector}/resolveBoxStyle.js +1 -1
  145. package/src/private/{inspector → devsupport/devmenu/perfmonitor}/PerformanceOverlay.js +6 -5
  146. package/src/private/{specs_DEPRECATED/modules → devsupport/devmenu/specs}/NativeDevMenu.js +2 -2
  147. package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.android.js +1 -1
  148. package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.ios.js +1 -1
  149. package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.win32.js +1 -1
  150. package/src/private/{debugging → devsupport/rndevtools}/setUpFuseboxReactDevToolsDispatcher.js +1 -1
  151. package/src/private/{fusebox → devsupport/rndevtools}/specs/NativeReactDevToolsRuntimeSettingsModule.js +2 -2
  152. package/src/private/{specs_DEPRECATED/modules → devsupport/rndevtools/specs}/NativeReactDevToolsSettingsManager.js +2 -2
  153. package/src/private/featureflags/ReactNativeFeatureFlags.js +37 -43
  154. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +8 -8
  155. package/src/private/renderer/errorhandling/ErrorHandlers.js +2 -2
  156. package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +3 -0
  157. package/src/private/types/HostComponent.js +1 -1
  158. package/src/private/types/HostInstance.js +12 -4
  159. package/src/private/webapis/performance/Performance.js +1 -3
  160. package/types/index.d.ts +1 -1
  161. package/types/public/ReactNativeTypes.d.ts +2 -2
  162. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestConfig.js +0 -38
  163. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestModule.js +0 -22
  164. package/Libraries/Blob/FileReader_new.js +0 -231
  165. package/Libraries/Blob/FileReader_old.js +0 -186
  166. package/Libraries/Blob/__mocks__/FileReaderModule.js +0 -20
  167. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +0 -32
  168. package/Libraries/Core/__mocks__/ErrorUtils.js +0 -33
  169. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -19
  170. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +0 -49
  171. package/Libraries/Events/CustomEvent.js +0 -32
  172. package/Libraries/Events/EventPolyfill.js +0 -239
  173. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +0 -118
  174. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +0 -134
  175. package/Libraries/Network/XMLHttpRequest_new.js +0 -794
  176. package/Libraries/Network/XMLHttpRequest_old.js +0 -701
  177. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +0 -58
  178. package/Libraries/Utilities/__mocks__/BackHandler.js +0 -45
  179. package/Libraries/Utilities/__mocks__/PixelRatio.js +0 -25
  180. package/Libraries/WebSocket/WebSocketEvent.js +0 -30
  181. package/Libraries/WebSocket/WebSocket_new.js +0 -325
  182. package/Libraries/WebSocket/WebSocket_old.js +0 -297
  183. package/Libraries/WebSocket/__mocks__/event-target-shim.js +0 -27
  184. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +0 -30
  185. package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +0 -81
  186. package/jest/__tests__/setup-test.js +0 -18
  187. package/src/private/components/VScrollViewNativeComponents.js +0 -25
  188. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +0 -267
  189. package/src/types/third_party/event-target-shim.d.ts +0 -392
  190. /package/src/private/{devmenu → devsupport/devmenu}/DevMenu.d.ts +0 -0
  191. /package/src/private/{debugging → devsupport/rndevtools}/FuseboxSessionObserver.js +0 -0
package/.flowconfig CHANGED
@@ -167,4 +167,4 @@ untyped-import
167
167
  untyped-type-import
168
168
 
169
169
  [version]
170
- ^0.266.1
170
+ ^0.268.0
package/CHANGELOG.json CHANGED
@@ -2,7 +2,49 @@
2
2
  "name": "@office-iss/react-native-win32",
3
3
  "entries": [
4
4
  {
5
- "date": "Sat, 21 Jun 2025 05:21:33 GMT",
5
+ "date": "Thu, 17 Jul 2025 05:25:18 GMT",
6
+ "version": "0.0.0-canary.293",
7
+ "tag": "@office-iss/react-native-win32_v0.0.0-canary.293",
8
+ "comments": {
9
+ "prerelease": [
10
+ {
11
+ "author": "10109130+sharath2727@users.noreply.github.com",
12
+ "package": "@office-iss/react-native-win32",
13
+ "commit": "b4ad43a0d79d39aae1c1ecf91d3a0089c0e334ec",
14
+ "comment": "Integrate RN Nightly Build 0.80.0-nightly-20250428-9efcdc091"
15
+ },
16
+ {
17
+ "author": "beachball",
18
+ "package": "@office-iss/react-native-win32",
19
+ "comment": "Bump @rnw-scripts/just-task to v2.3.54",
20
+ "commit": "not available"
21
+ },
22
+ {
23
+ "author": "beachball",
24
+ "package": "@office-iss/react-native-win32",
25
+ "comment": "Bump react-native-platform-override to v1.9.56",
26
+ "commit": "not available"
27
+ }
28
+ ]
29
+ }
30
+ },
31
+ {
32
+ "date": "Thu, 03 Jul 2025 05:24:24 GMT",
33
+ "version": "0.0.0-canary.292",
34
+ "tag": "@office-iss/react-native-win32_v0.0.0-canary.292",
35
+ "comments": {
36
+ "prerelease": [
37
+ {
38
+ "author": "satkh@microsoft.com",
39
+ "package": "@office-iss/react-native-win32",
40
+ "commit": "96e291820b36af670c743a204b4cb4103a012ce2",
41
+ "comment": "intergrate rn 0.80.0-nightly-20250414-70cdf12c4"
42
+ }
43
+ ]
44
+ }
45
+ },
46
+ {
47
+ "date": "Sat, 21 Jun 2025 05:21:48 GMT",
6
48
  "version": "0.0.0-canary.291",
7
49
  "tag": "@office-iss/react-native-win32_v0.0.0-canary.291",
8
50
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,17 +1,35 @@
1
1
  # Change Log - @office-iss/react-native-win32
2
2
 
3
- <!-- This log was last generated on Sat, 21 Jun 2025 05:21:33 GMT and should not be manually modified. -->
3
+ <!-- This log was last generated on Thu, 17 Jul 2025 05:25:18 GMT and should not be manually modified. -->
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
- ## 0.0.0-canary.291
7
+ ## 0.0.0-canary.293
8
8
 
9
- Sat, 21 Jun 2025 05:21:33 GMT
9
+ Thu, 17 Jul 2025 05:25:18 GMT
10
10
 
11
11
  ### Changes
12
12
 
13
- - Remove usage of Animated in LogBox (30809111+acoates-ms@users.noreply.github.com)
13
+ - Integrate RN Nightly Build 0.80.0-nightly-20250428-9efcdc091 (10109130+sharath2727@users.noreply.github.com)
14
+ - Bump @rnw-scripts/just-task to v2.3.54
15
+ - Bump react-native-platform-override to v1.9.56
14
16
 
17
+ ## 0.0.0-canary.292
18
+
19
+ Thu, 03 Jul 2025 05:24:24 GMT
20
+
21
+ ### Changes
22
+
23
+ - intergrate rn 0.80.0-nightly-20250414-70cdf12c4 (satkh@microsoft.com)
24
+
25
+ ## 0.0.0-canary.291
26
+
27
+ Sat, 21 Jun 2025 05:21:48 GMT
28
+
29
+ ### Changes
30
+
31
+ - Remove usage of Animated in LogBox (30809111+acoates-ms@users.noreply.github.com)
32
+
15
33
  ## 0.0.0-canary.290
16
34
 
17
35
  Fri, 20 Jun 2025 05:21:53 GMT
@@ -0,0 +1,17 @@
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
+ */
10
+
11
+ // NOTE: This file supports backwards compatibility of subpath (deep) imports
12
+ // from 'react-native' with platform-specific extensions. It can be deleted
13
+ // once we remove the "./*" mapping from package.json "exports".
14
+
15
+ import RCTAlertManager from './RCTAlertManager';
16
+
17
+ export default RCTAlertManager;
@@ -10,6 +10,7 @@
10
10
 
11
11
  'use strict';
12
12
 
13
+ import type {NativeSyntheticEvent} from '../Types/CoreEventTypes';
13
14
  import type {PlatformConfig} from './AnimatedPlatformConfig';
14
15
 
15
16
  import NativeAnimatedHelper from '../../src/private/animated/NativeAnimatedHelper';
@@ -22,8 +23,8 @@ export type Mapping =
22
23
  | {[key: string]: Mapping, ...}
23
24
  | AnimatedValue
24
25
  | AnimatedValueXY;
25
- export type EventConfig = {
26
- listener?: ?Function,
26
+ export type EventConfig<T> = {
27
+ listener?: ?(NativeSyntheticEvent<T>) => mixed,
27
28
  useNativeDriver: boolean,
28
29
  platformConfig?: PlatformConfig,
29
30
  };
@@ -150,7 +151,7 @@ export class AnimatedEvent {
150
151
  __isNative: boolean;
151
152
  __platformConfig: ?PlatformConfig;
152
153
 
153
- constructor(argMapping: $ReadOnlyArray<?Mapping>, config: EventConfig) {
154
+ constructor(argMapping: $ReadOnlyArray<?Mapping>, config: EventConfig<any>) {
154
155
  this._argMapping = argMapping;
155
156
 
156
157
  if (config == null) {
@@ -37,6 +37,8 @@ export type {default as AnimatedDivision} from './nodes/AnimatedDivision';
37
37
  export type {default as AnimatedModulo} from './nodes/AnimatedModulo';
38
38
  export type {default as AnimatedMultiplication} from './nodes/AnimatedMultiplication';
39
39
  export type {default as AnimatedSubtraction} from './nodes/AnimatedSubtraction';
40
+ export type {WithAnimatedValue} from './createAnimatedComponent';
41
+ export type {AnimatedComponentType as AnimatedComponent} from './createAnimatedComponent';
40
42
 
41
43
  export const add = AnimatedImplementation.add;
42
44
  export const attachNativeEvent = AnimatedImplementation.attachNativeEvent;
@@ -540,9 +540,9 @@ function unforkEvent(
540
540
  }
541
541
  }
542
542
 
543
- const event = function (
543
+ const event = function <T>(
544
544
  argMapping: $ReadOnlyArray<?Mapping>,
545
- config: EventConfig,
545
+ config: EventConfig<T>,
546
546
  ): any {
547
547
  const animatedEvent = new AnimatedEvent(argMapping, config);
548
548
  if (animatedEvent.__isNative) {
@@ -23,49 +23,51 @@ import useAnimatedProps from '../useAnimatedProps';
23
23
  import * as React from 'react';
24
24
  import {useMemo} from 'react';
25
25
 
26
- type Props = React.ElementConfig<typeof ScrollView>;
27
- type Instance = React.ElementRef<typeof ScrollView>;
26
+ type AnimatedScrollViewProps = React.ElementConfig<typeof ScrollView>;
27
+ type AnimatedScrollViewInstance = React.ElementRef<typeof ScrollView>;
28
28
 
29
29
  /**
30
30
  * @see https://github.com/facebook/react-native/commit/b8c8562
31
31
  */
32
- const AnimatedScrollView: AnimatedComponentType<Props, Instance> =
33
- React.forwardRef(
34
- function AnimatedScrollViewWithOrWithoutInvertedRefreshControl(
35
- props,
36
- forwardedRef,
32
+ const AnimatedScrollView: AnimatedComponentType<
33
+ AnimatedScrollViewProps,
34
+ AnimatedScrollViewInstance,
35
+ > = React.forwardRef(
36
+ function AnimatedScrollViewWithOrWithoutInvertedRefreshControl(
37
+ props,
38
+ forwardedRef,
39
+ ) {
40
+ // (Android only) When a ScrollView has a RefreshControl and
41
+ // any `style` property set with an Animated.Value, the CSS
42
+ // gets incorrectly applied twice. This is because ScrollView
43
+ // swaps the parent/child relationship of itself and the
44
+ // RefreshControl component (see ScrollView.js for more details).
45
+ if (
46
+ Platform.OS === 'android' &&
47
+ props.refreshControl != null &&
48
+ props.style != null
37
49
  ) {
38
- // (Android only) When a ScrollView has a RefreshControl and
39
- // any `style` property set with an Animated.Value, the CSS
40
- // gets incorrectly applied twice. This is because ScrollView
41
- // swaps the parent/child relationship of itself and the
42
- // RefreshControl component (see ScrollView.js for more details).
43
- if (
44
- Platform.OS === 'android' &&
45
- props.refreshControl != null &&
46
- props.style != null
47
- ) {
48
- return (
49
- // $FlowFixMe - It should return an Animated ScrollView but it returns a ScrollView with Animated props applied.
50
- <AnimatedScrollViewWithInvertedRefreshControl
51
- scrollEventThrottle={0.0001}
52
- {...props}
53
- ref={forwardedRef}
54
- // $FlowFixMe[incompatible-type]
55
- refreshControl={props.refreshControl}
56
- />
57
- );
58
- } else {
59
- return (
60
- <AnimatedScrollViewWithoutInvertedRefreshControl
61
- scrollEventThrottle={0.0001}
62
- {...props}
63
- ref={forwardedRef}
64
- />
65
- );
66
- }
67
- },
68
- );
50
+ return (
51
+ // $FlowFixMe - It should return an Animated ScrollView but it returns a ScrollView with Animated props applied.
52
+ <AnimatedScrollViewWithInvertedRefreshControl
53
+ scrollEventThrottle={0.0001}
54
+ {...props}
55
+ ref={forwardedRef}
56
+ // $FlowFixMe[incompatible-type]
57
+ refreshControl={props.refreshControl}
58
+ />
59
+ );
60
+ } else {
61
+ return (
62
+ <AnimatedScrollViewWithoutInvertedRefreshControl
63
+ scrollEventThrottle={0.0001}
64
+ {...props}
65
+ ref={forwardedRef}
66
+ />
67
+ );
68
+ }
69
+ },
70
+ );
69
71
 
70
72
  const AnimatedScrollViewWithInvertedRefreshControl = React.forwardRef(
71
73
  // $FlowFixMe[incompatible-call]
@@ -76,8 +78,8 @@ const AnimatedScrollViewWithInvertedRefreshControl = React.forwardRef(
76
78
  refreshControl: ExactReactElement_DEPRECATED<any>,
77
79
  },
78
80
  forwardedRef:
79
- | {current: Instance | null, ...}
80
- | ((Instance | null) => mixed),
81
+ | {current: AnimatedScrollViewInstance | null, ...}
82
+ | ((AnimatedScrollViewInstance | null) => mixed),
81
83
  ) {
82
84
  // Split `props` into the animate-able props for the parent (RefreshControl)
83
85
  // and child (ScrollView).
@@ -107,10 +109,13 @@ const AnimatedScrollViewWithInvertedRefreshControl = React.forwardRef(
107
109
 
108
110
  // Handle animated props on `NativeDirectionalScrollView`.
109
111
  const [scrollViewAnimatedProps, scrollViewRef] = useAnimatedProps<
110
- Props,
111
- Instance,
112
+ AnimatedScrollViewProps,
113
+ AnimatedScrollViewInstance,
112
114
  >(intermediatePropsForScrollView);
113
- const ref = useMergeRefs<Instance>(scrollViewRef, forwardedRef);
115
+ const ref = useMergeRefs<AnimatedScrollViewInstance>(
116
+ scrollViewRef,
117
+ forwardedRef,
118
+ );
114
119
 
115
120
  return (
116
121
  // $FlowFixMe[incompatible-use] Investigate useAnimatedProps return value
@@ -10,7 +10,8 @@
10
10
 
11
11
  import type {EventSubscription} from '../../vendor/emitter/EventEmitter';
12
12
  import type {PlatformConfig} from '../AnimatedPlatformConfig';
13
- import type Animation, {EndCallback} from '../animations/Animation';
13
+ import type Animation from '../animations/Animation';
14
+ import type {EndCallback} from '../animations/Animation';
14
15
  import type {InterpolationConfigType} from './AnimatedInterpolation';
15
16
  import type AnimatedNode from './AnimatedNode';
16
17
  import type {AnimatedNodeConfig} from './AnimatedNode';
@@ -35,7 +35,7 @@ const PARAMS = 2;
35
35
  const MIN_TIME_BETWEEN_FLUSHES_MS = 5;
36
36
 
37
37
  // eslint-disable-next-line no-bitwise
38
- const TRACE_TAG_REACT_APPS = 1 << 17;
38
+ const TRACE_TAG_REACT = 1 << 13;
39
39
 
40
40
  const DEBUG_INFO_LIMIT = 32;
41
41
 
@@ -228,7 +228,7 @@ class MessageQueue {
228
228
  if (__DEV__) {
229
229
  global.nativeTraceBeginAsyncFlow &&
230
230
  global.nativeTraceBeginAsyncFlow(
231
- TRACE_TAG_REACT_APPS,
231
+ TRACE_TAG_REACT,
232
232
  'native',
233
233
  this._callID,
234
234
  );
@@ -8,13 +8,224 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import typeof FileReader from './FileReader_old';
11
+ import type {EventCallback} from '../../src/private/webapis/dom/events/EventTarget';
12
+ import type Blob from './Blob';
12
13
 
13
- // Use a global instead of a flag from ReactNativeFeatureFlags because this will
14
- // be read before apps have a chance to set overrides.
15
- const useBuiltInEventTarget = global.RN$useBuiltInEventTarget?.();
14
+ import Event from '../../src/private/webapis/dom/events/Event';
15
+ import {
16
+ getEventHandlerAttribute,
17
+ setEventHandlerAttribute,
18
+ } from '../../src/private/webapis/dom/events/EventHandlerAttributes';
19
+ import EventTarget from '../../src/private/webapis/dom/events/EventTarget';
20
+ import NativeFileReaderModule from './NativeFileReaderModule';
21
+ import {toByteArray} from 'base64-js';
16
22
 
17
- export default (useBuiltInEventTarget
18
- ? // $FlowExpectedError[incompatible-cast]
19
- require('./FileReader_new').default
20
- : require('./FileReader_old').default) as FileReader;
23
+ type ReadyState =
24
+ | 0 // EMPTY
25
+ | 1 // LOADING
26
+ | 2; // DONE
27
+
28
+ type ReaderResult = string | ArrayBuffer;
29
+
30
+ const EMPTY = 0;
31
+ const LOADING = 1;
32
+ const DONE = 2;
33
+
34
+ class FileReader extends EventTarget {
35
+ static EMPTY: number = EMPTY;
36
+ static LOADING: number = LOADING;
37
+ static DONE: number = DONE;
38
+
39
+ EMPTY: number = EMPTY;
40
+ LOADING: number = LOADING;
41
+ DONE: number = DONE;
42
+
43
+ _readyState: ReadyState;
44
+ _error: ?Error;
45
+ _result: ?ReaderResult;
46
+ _aborted: boolean = false;
47
+
48
+ constructor() {
49
+ super();
50
+ this._reset();
51
+ }
52
+
53
+ _reset(): void {
54
+ this._readyState = EMPTY;
55
+ this._error = null;
56
+ this._result = null;
57
+ }
58
+
59
+ _setReadyState(newState: ReadyState) {
60
+ this._readyState = newState;
61
+ this.dispatchEvent(new Event('readystatechange'));
62
+ if (newState === DONE) {
63
+ if (this._aborted) {
64
+ this.dispatchEvent(new Event('abort'));
65
+ } else if (this._error) {
66
+ this.dispatchEvent(new Event('error'));
67
+ } else {
68
+ this.dispatchEvent(new Event('load'));
69
+ }
70
+ this.dispatchEvent(new Event('loadend'));
71
+ }
72
+ }
73
+
74
+ readAsArrayBuffer(blob: ?Blob): void {
75
+ this._aborted = false;
76
+
77
+ if (blob == null) {
78
+ throw new TypeError(
79
+ "Failed to execute 'readAsArrayBuffer' on 'FileReader': parameter 1 is not of type 'Blob'",
80
+ );
81
+ }
82
+
83
+ NativeFileReaderModule.readAsDataURL(blob.data).then(
84
+ (text: string) => {
85
+ if (this._aborted) {
86
+ return;
87
+ }
88
+
89
+ const base64 = text.split(',')[1];
90
+ const typedArray = toByteArray(base64);
91
+
92
+ this._result = typedArray.buffer;
93
+ this._setReadyState(DONE);
94
+ },
95
+ error => {
96
+ if (this._aborted) {
97
+ return;
98
+ }
99
+ this._error = error;
100
+ this._setReadyState(DONE);
101
+ },
102
+ );
103
+ }
104
+
105
+ readAsDataURL(blob: ?Blob): void {
106
+ this._aborted = false;
107
+
108
+ if (blob == null) {
109
+ throw new TypeError(
110
+ "Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'",
111
+ );
112
+ }
113
+
114
+ NativeFileReaderModule.readAsDataURL(blob.data).then(
115
+ (text: string) => {
116
+ if (this._aborted) {
117
+ return;
118
+ }
119
+ this._result = text;
120
+ this._setReadyState(DONE);
121
+ },
122
+ error => {
123
+ if (this._aborted) {
124
+ return;
125
+ }
126
+ this._error = error;
127
+ this._setReadyState(DONE);
128
+ },
129
+ );
130
+ }
131
+
132
+ readAsText(blob: ?Blob, encoding: string = 'UTF-8'): void {
133
+ this._aborted = false;
134
+
135
+ if (blob == null) {
136
+ throw new TypeError(
137
+ "Failed to execute 'readAsText' on 'FileReader': parameter 1 is not of type 'Blob'",
138
+ );
139
+ }
140
+
141
+ NativeFileReaderModule.readAsText(blob.data, encoding).then(
142
+ (text: string) => {
143
+ if (this._aborted) {
144
+ return;
145
+ }
146
+ this._result = text;
147
+ this._setReadyState(DONE);
148
+ },
149
+ error => {
150
+ if (this._aborted) {
151
+ return;
152
+ }
153
+ this._error = error;
154
+ this._setReadyState(DONE);
155
+ },
156
+ );
157
+ }
158
+
159
+ abort() {
160
+ this._aborted = true;
161
+ // only call onreadystatechange if there is something to abort, as per spec
162
+ if (this._readyState !== EMPTY && this._readyState !== DONE) {
163
+ this._reset();
164
+ this._setReadyState(DONE);
165
+ }
166
+ // Reset again after, in case modified in handler
167
+ this._reset();
168
+ }
169
+
170
+ get readyState(): ReadyState {
171
+ return this._readyState;
172
+ }
173
+
174
+ get error(): ?Error {
175
+ return this._error;
176
+ }
177
+
178
+ get result(): ?ReaderResult {
179
+ return this._result;
180
+ }
181
+
182
+ get onabort(): EventCallback | null {
183
+ return getEventHandlerAttribute(this, 'abort');
184
+ }
185
+
186
+ set onabort(listener: ?EventCallback) {
187
+ setEventHandlerAttribute(this, 'abort', listener);
188
+ }
189
+
190
+ get onerror(): EventCallback | null {
191
+ return getEventHandlerAttribute(this, 'error');
192
+ }
193
+
194
+ set onerror(listener: ?EventCallback) {
195
+ setEventHandlerAttribute(this, 'error', listener);
196
+ }
197
+
198
+ get onload(): EventCallback | null {
199
+ return getEventHandlerAttribute(this, 'load');
200
+ }
201
+
202
+ set onload(listener: ?EventCallback) {
203
+ setEventHandlerAttribute(this, 'load', listener);
204
+ }
205
+
206
+ get onloadstart(): EventCallback | null {
207
+ return getEventHandlerAttribute(this, 'loadstart');
208
+ }
209
+
210
+ set onloadstart(listener: ?EventCallback) {
211
+ setEventHandlerAttribute(this, 'loadstart', listener);
212
+ }
213
+
214
+ get onloadend(): EventCallback | null {
215
+ return getEventHandlerAttribute(this, 'loadend');
216
+ }
217
+
218
+ set onloadend(listener: ?EventCallback) {
219
+ setEventHandlerAttribute(this, 'loadend', listener);
220
+ }
221
+
222
+ get onprogress(): EventCallback | null {
223
+ return getEventHandlerAttribute(this, 'progress');
224
+ }
225
+
226
+ set onprogress(listener: ?EventCallback) {
227
+ setEventHandlerAttribute(this, 'progress', listener);
228
+ }
229
+ }
230
+
231
+ export default FileReader;
@@ -81,7 +81,19 @@ export class URL {
81
81
  let baseUrl = null;
82
82
  if (!base || validateBaseUrl(url)) {
83
83
  this._url = url;
84
- if (!this._url.endsWith('/')) {
84
+ if (this._url.includes('#')) {
85
+ const split = this._url.split('#');
86
+ const beforeHash = split[0];
87
+ const website = beforeHash.split('://')[1];
88
+ if (!website.includes('/')) {
89
+ this._url = split.join('/#');
90
+ }
91
+ }
92
+
93
+ if (
94
+ !this._url.endsWith('/') &&
95
+ !(this._url.includes('?') || this._url.includes('#'))
96
+ ) {
85
97
  this._url += '/';
86
98
  }
87
99
  } else {
@@ -0,0 +1,17 @@
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
+ */
10
+
11
+ // NOTE: This file supports backwards compatibility of subpath (deep) imports
12
+ // from 'react-native' with platform-specific extensions. It can be deleted
13
+ // once we remove the "./*" mapping from package.json "exports".
14
+
15
+ import legacySendAccessibilityEvent from './legacySendAccessibilityEvent';
16
+
17
+ export default legacySendAccessibilityEvent;
@@ -38,7 +38,7 @@ export type ButtonProps = $ReadOnly<{
38
38
  Handler to be called when the user taps the button. The first function
39
39
  argument is an event in form of [GestureResponderEvent](pressevent).
40
40
  */
41
- onPress: (event?: GestureResponderEvent) => mixed,
41
+ onPress?: (event?: GestureResponderEvent) => mixed,
42
42
 
43
43
  /**
44
44
  If `true`, doesn't play system sound on touch.
@@ -39,7 +39,7 @@ export type ButtonProps = $ReadOnly<{
39
39
  Handler to be called when the user taps the button. The first function
40
40
  argument is an event in form of [GestureResponderEvent](pressevent).
41
41
  */
42
- onPress: (event?: GestureResponderEvent) => mixed,
42
+ onPress?: (event?: GestureResponderEvent) => mixed,
43
43
 
44
44
  /**
45
45
  If `true`, doesn't play system sound on touch.
@@ -13,8 +13,6 @@ import type {
13
13
  MeasureLayoutOnSuccessCallback,
14
14
  MeasureOnSuccessCallback,
15
15
  } from '../../../src/private/types/HostInstance';
16
- import type {AccessibilityRole} from '../../Components/View/ViewAccessibility';
17
- import typeof DrawerLayoutAndroidCommon from './DrawerLayoutAndroid.js';
18
16
  import type {
19
17
  DrawerLayoutAndroidMethods,
20
18
  DrawerLayoutAndroidProps,
@@ -305,4 +303,4 @@ const styles = StyleSheet.create({
305
303
  },
306
304
  });
307
305
 
308
- export default DrawerLayoutAndroid as $FlowFixMe as DrawerLayoutAndroidCommon;
306
+ export default DrawerLayoutAndroid as $FlowFixMe;
@@ -5,12 +5,11 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  * @format
8
+ * @flow strict-local
8
9
  */
9
10
 
10
11
  'use strict';
11
12
 
12
- const GlobalPerformanceLogger = jest
13
- .unmock('../createPerformanceLogger')
14
- .genMockFromModule('../GlobalPerformanceLogger').default;
13
+ import DrawerLayoutAndroidFallback from './DrawerLayoutAndroidFallback';
15
14
 
16
- export default GlobalPerformanceLogger;
15
+ export default DrawerLayoutAndroidFallback;