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

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 (127) hide show
  1. package/.flowconfig +1 -1
  2. package/CHANGELOG.json +16 -1
  3. package/CHANGELOG.md +12 -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/Components/AccessibilityInfo/legacySendAccessibilityEvent.js +17 -0
  13. package/Libraries/Components/Button.js +1 -1
  14. package/Libraries/Components/Button.win32.js +1 -1
  15. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -3
  16. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +15 -0
  17. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +6 -66
  18. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +18 -0
  19. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +71 -0
  20. package/Libraries/Components/Keyboard/Keyboard.js +4 -2
  21. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +6 -3
  22. package/Libraries/Components/Pressable/Pressable.js +2 -0
  23. package/Libraries/Components/Pressable/Pressable.win32.js +2 -0
  24. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +12 -2
  25. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  26. package/Libraries/Components/ScrollView/ScrollView.js +128 -116
  27. package/Libraries/Components/StaticRenderer.js +1 -1
  28. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +1 -1
  29. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -4
  30. package/Libraries/Components/TextInput/TextInput.flow.js +35 -43
  31. package/Libraries/Components/TextInput/TextInput.flow.win32.js +1184 -0
  32. package/Libraries/Components/TextInput/TextInput.js +65 -1005
  33. package/Libraries/Components/TextInput/TextInput.win32.js +67 -1037
  34. package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +13 -0
  35. package/Libraries/Components/ToastAndroid/ToastAndroid.js +4 -32
  36. package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +109 -0
  37. package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +4 -32
  38. package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +45 -0
  39. package/Libraries/Components/Touchable/Touchable.js +5 -5
  40. package/Libraries/Components/Touchable/Touchable.win32.js +5 -5
  41. package/Libraries/Components/Touchable/TouchableBounce.js +12 -6
  42. package/Libraries/Components/Touchable/TouchableHighlight.js +9 -6
  43. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +4 -4
  44. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +4 -4
  45. package/Libraries/Components/Touchable/TouchableOpacity.js +11 -5
  46. package/Libraries/Components/View/ViewAccessibility.js +7 -0
  47. package/Libraries/Components/View/ViewAccessibility.win32.js +7 -0
  48. package/Libraries/Components/View/ViewPropTypes.js +1 -1
  49. package/Libraries/Components/View/ViewPropTypes.win32.js +1 -1
  50. package/Libraries/Core/ReactNativeVersion.js +1 -1
  51. package/Libraries/EventEmitter/NativeEventEmitter.js +4 -1
  52. package/Libraries/Image/Image.js +17 -0
  53. package/Libraries/Image/Image.js.flow +2 -2
  54. package/Libraries/Image/ImageInjection.js +1 -1
  55. package/Libraries/Image/ImageProps.js +5 -4
  56. package/Libraries/Image/ImageTypes.flow.js +1 -1
  57. package/Libraries/Lists/FlatList.js +1 -1
  58. package/Libraries/Lists/SectionList.js +1 -1
  59. package/Libraries/Lists/SectionListModern.js +2 -1
  60. package/Libraries/LogBox/LogBoxNotificationContainer.js +1 -1
  61. package/Libraries/Modal/Modal.js +3 -3
  62. package/Libraries/NativeComponent/BaseViewConfig.js +17 -0
  63. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +2 -2
  64. package/Libraries/Network/RCTNetworking.js +17 -0
  65. package/Libraries/Network/XMLHttpRequest.js +781 -10
  66. package/Libraries/NewAppScreen/components/DebugInstructions.js +1 -1
  67. package/Libraries/NewAppScreen/components/Header.js +1 -1
  68. package/Libraries/NewAppScreen/components/HermesBadge.js +1 -1
  69. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +3 -3
  70. package/Libraries/NewAppScreen/components/ReloadInstructions.js +1 -1
  71. package/Libraries/Performance/Systrace.js +7 -7
  72. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -2
  73. package/Libraries/Settings/Settings.js +13 -19
  74. package/Libraries/Settings/Settings.win32.js +19 -20
  75. package/Libraries/Settings/SettingsFallback.js +33 -0
  76. package/Libraries/StyleSheet/PlatformColorValueTypes.js +15 -0
  77. package/Libraries/StyleSheet/Rect.js +1 -0
  78. package/Libraries/StyleSheet/StyleSheet.js.flow +3 -3
  79. package/Libraries/StyleSheet/StyleSheetTypes.js +28 -30
  80. package/Libraries/StyleSheet/flattenStyle.js +7 -1
  81. package/Libraries/Text/Text.js +3 -3
  82. package/Libraries/Text/Text.win32.js +3 -3
  83. package/Libraries/Text/TextProps.js +1 -1
  84. package/Libraries/Text/TextProps.win32.js +1 -1
  85. package/Libraries/Utilities/Appearance.js +2 -0
  86. package/Libraries/Utilities/BackHandler.js +17 -0
  87. package/Libraries/Utilities/Platform.js +17 -0
  88. package/Libraries/Utilities/PlatformTypes.js +2 -0
  89. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  90. package/Libraries/WebSocket/WebSocket.js +313 -8
  91. package/flow/global.js +0 -2
  92. package/index.win32.js +5 -5
  93. package/overrides.json +23 -17
  94. package/package.json +12 -12
  95. package/src/private/animated/NativeAnimatedHelper.js +1 -1
  96. package/src/private/animated/NativeAnimatedHelper.win32.js +1 -1
  97. package/src/private/animated/createAnimatedPropsHook.js +2 -27
  98. package/src/private/components/{SafeAreaView_INTERNAL_DO_NOT_USE.js → safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js} +6 -6
  99. package/src/private/components/{HScrollViewNativeComponents.js → scrollview/HScrollViewNativeComponents.js} +8 -8
  100. package/src/private/components/scrollview/VScrollViewNativeComponents.js +25 -0
  101. package/src/private/featureflags/ReactNativeFeatureFlags.js +21 -32
  102. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -6
  103. package/src/private/inspector/BorderBox.js +1 -1
  104. package/src/private/inspector/BoxInspector.js +1 -1
  105. package/src/private/inspector/ElementBox.js +1 -1
  106. package/src/private/inspector/ElementProperties.js +1 -1
  107. package/src/private/inspector/Inspector.js +2 -2
  108. package/src/private/inspector/InspectorOverlay.js +1 -1
  109. package/src/private/inspector/InspectorPanel.js +1 -1
  110. package/src/private/inspector/NetworkOverlay.js +1 -1
  111. package/src/private/inspector/PerformanceOverlay.js +1 -1
  112. package/src/private/inspector/StyleInspector.js +1 -1
  113. package/src/private/types/HostComponent.js +1 -1
  114. package/src/private/types/HostInstance.js +10 -2
  115. package/src/private/webapis/performance/Performance.js +1 -3
  116. package/Libraries/Blob/FileReader_new.js +0 -231
  117. package/Libraries/Blob/FileReader_old.js +0 -186
  118. package/Libraries/Events/CustomEvent.js +0 -32
  119. package/Libraries/Events/EventPolyfill.js +0 -239
  120. package/Libraries/Network/XMLHttpRequest_new.js +0 -794
  121. package/Libraries/Network/XMLHttpRequest_old.js +0 -701
  122. package/Libraries/WebSocket/WebSocketEvent.js +0 -30
  123. package/Libraries/WebSocket/WebSocket_new.js +0 -325
  124. package/Libraries/WebSocket/WebSocket_old.js +0 -297
  125. package/Libraries/WebSocket/__mocks__/event-target-shim.js +0 -27
  126. package/src/private/components/VScrollViewNativeComponents.js +0 -25
  127. package/src/types/third_party/event-target-shim.d.ts +0 -392
@@ -0,0 +1,13 @@
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
+ * @flow strict-local
9
+ */
10
+
11
+ import ToastAndroidFallback from './ToastAndroidFallback';
12
+
13
+ export default ToastAndroidFallback;
@@ -8,38 +8,10 @@
8
8
  * @flow strict-local
9
9
  */
10
10
 
11
- 'use strict';
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".
12
14
 
13
- const ToastAndroid = {
14
- // Dummy fallback toast duration constants
15
- SHORT: (0: number),
16
- LONG: (0: number),
17
- // Dummy fallback toast gravity constants
18
- TOP: (0: number),
19
- BOTTOM: (0: number),
20
- CENTER: (0: number),
21
-
22
- show: function (message: string, duration: number): void {
23
- console.warn('ToastAndroid is not supported on this platform.');
24
- },
25
-
26
- showWithGravity: function (
27
- message: string,
28
- duration: number,
29
- gravity: number,
30
- ): void {
31
- console.warn('ToastAndroid is not supported on this platform.');
32
- },
33
-
34
- showWithGravityAndOffset: function (
35
- message: string,
36
- duration: number,
37
- gravity: number,
38
- xOffset: number,
39
- yOffset: number,
40
- ): void {
41
- console.warn('ToastAndroid is not supported on this platform.');
42
- },
43
- };
15
+ import ToastAndroid from './ToastAndroid';
44
16
 
45
17
  export default ToastAndroid;
@@ -0,0 +1,109 @@
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
+ * @flow strict-local
9
+ */
10
+
11
+ /**
12
+ * This exposes the native ToastAndroid module as a JS module. This has a function 'show'
13
+ * which takes the following parameters:
14
+ *
15
+ * 1. String message: A string with the text to toast
16
+ * 2. int duration: The duration of the toast. May be ToastAndroid.SHORT or ToastAndroid.LONG
17
+ *
18
+ * There is also a function `showWithGravity` to specify the layout gravity. May be
19
+ * ToastAndroid.TOP, ToastAndroid.BOTTOM, ToastAndroid.CENTER
20
+ *
21
+ * **Note**: Starting from Android API level 30 (Android R) or higher, for apps targeting
22
+ * that API level, setting toast gravity is a no-op for text toasts.
23
+ * This means that in many cases `TOP`, `BOTTOM`, `CENTER`, or offsets may not have
24
+ * any visible effect on actual toast positioning.
25
+ *
26
+ * Reference: https://developer.android.com/reference/android/widget/Toast#setGravity(int,%20int,%20int)
27
+ */
28
+ declare const ToastAndroid: {
29
+ /**
30
+ * Indicates a short duration on the screen.
31
+ *
32
+ * Value: 2000 milliseconds (2 seconds).
33
+ */
34
+ SHORT: number,
35
+
36
+ /**
37
+ * Indicates a long duration on the screen.
38
+ *
39
+ * Value: 3500 milliseconds (3.5 seconds).
40
+ */
41
+ LONG: number,
42
+
43
+ /**
44
+ * Indicates that the toast message should appear at the top of the screen.
45
+ *
46
+ * **Note**: On Android R or later, this may not have any visible effect.
47
+ */
48
+ TOP: number,
49
+
50
+ /**
51
+ * Indicates that the toast message should appear at the bottom of the screen.
52
+ *
53
+ * **Note**: On Android R or later, this may not have any visible effect.
54
+ */
55
+ BOTTOM: number,
56
+
57
+ /**
58
+ * Indicates that the toast message should appear at the center of the screen.
59
+ *
60
+ * **Note**: On Android R or later, this may not have any visible effect.
61
+ */
62
+ CENTER: number,
63
+
64
+ /**
65
+ * Display a toast message for a specified duration.
66
+ *
67
+ * @param message A string with the text to toast.
68
+ * @param duration The duration of the toast–either ToastAndroid.SHORT or ToastAndroid.LONG
69
+ */
70
+ show: (message: string, duration: number) => void,
71
+
72
+ /**
73
+ * Display a toast message for a specified duration with a given gravity.
74
+ *
75
+ * @param message A string with the text to display in the toast.
76
+ * @param duration The duration of the toast.
77
+ * May be `ToastAndroid.SHORT` or `ToastAndroid.LONG`.
78
+ * @param gravity Positioning on the screen, e.g.,
79
+ * `ToastAndroid.TOP`, `ToastAndroid.BOTTOM`, or `ToastAndroid.CENTER`.
80
+ *
81
+ * **Note**: On Android R (API 30) or later (when targeting API 30+), this setting may
82
+ * not have any effect on text toast placement due to `setGravity` becoming a no-op.
83
+ */
84
+ showWithGravity: (message: string, duration: number, gravity: number) => void,
85
+
86
+ /**
87
+ * Display a toast message for a specified duration with a given gravity and custom offsets.
88
+ *
89
+ * @param message A string with the text to display in the toast.
90
+ * @param duration The duration of the toast.
91
+ * May be `ToastAndroid.SHORT` or `ToastAndroid.LONG`.
92
+ * @param gravity Positioning on the screen, e.g.,
93
+ * `ToastAndroid.TOP`, `ToastAndroid.BOTTOM`, or `ToastAndroid.CENTER`.
94
+ * @param xOffset Horizontal offset from the given gravity.
95
+ * @param yOffset Vertical offset from the given gravity.
96
+ *
97
+ * **Note**: On Android R (API 30) or later (when targeting API 30+), setting gravity
98
+ * and offsets may not visibly affect the placement of text toasts.
99
+ */
100
+ showWithGravityAndOffset: (
101
+ message: string,
102
+ duration: number,
103
+ gravity: number,
104
+ xOffset: number,
105
+ yOffset: number,
106
+ ) => void,
107
+ };
108
+
109
+ export default ToastAndroid;
@@ -8,38 +8,10 @@
8
8
  * @flow strict-local
9
9
  */
10
10
 
11
- 'use strict';
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".
12
14
 
13
- const ToastAndroid = {
14
- // Dummy fallback toast duration constants
15
- SHORT: (0: number),
16
- LONG: (0: number),
17
- // Dummy fallback toast gravity constants
18
- TOP: (0: number),
19
- BOTTOM: (0: number),
20
- CENTER: (0: number),
21
-
22
- show: function (message: string, duration: number): void {
23
- console.warn('ToastAndroid is not supported on this platform.');
24
- },
25
-
26
- showWithGravity: function (
27
- message: string,
28
- duration: number,
29
- gravity: number,
30
- ): void {
31
- console.warn('ToastAndroid is not supported on this platform.');
32
- },
33
-
34
- showWithGravityAndOffset: function (
35
- message: string,
36
- duration: number,
37
- gravity: number,
38
- xOffset: number,
39
- yOffset: number,
40
- ): void {
41
- console.warn('ToastAndroid is not supported on this platform.');
42
- },
43
- };
15
+ import ToastAndroid from './ToastAndroid';
44
16
 
45
17
  export default ToastAndroid;
@@ -0,0 +1,45 @@
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
+ * @flow strict-local
9
+ */
10
+
11
+ 'use strict';
12
+
13
+ const ToastAndroid = {
14
+ // Dummy fallback toast duration constants
15
+ SHORT: (0: number),
16
+ LONG: (0: number),
17
+ // Dummy fallback toast gravity constants
18
+ TOP: (0: number),
19
+ BOTTOM: (0: number),
20
+ CENTER: (0: number),
21
+
22
+ show: function (message: string, duration: number): void {
23
+ console.warn('ToastAndroid is not supported on this platform.');
24
+ },
25
+
26
+ showWithGravity: function (
27
+ message: string,
28
+ duration: number,
29
+ gravity: number,
30
+ ): void {
31
+ console.warn('ToastAndroid is not supported on this platform.');
32
+ },
33
+
34
+ showWithGravityAndOffset: function (
35
+ message: string,
36
+ duration: number,
37
+ gravity: number,
38
+ xOffset: number,
39
+ yOffset: number,
40
+ ): void {
41
+ console.warn('ToastAndroid is not supported on this platform.');
42
+ },
43
+ };
44
+
45
+ export default ToastAndroid;
@@ -144,7 +144,7 @@ const States = {
144
144
  ERROR: 'ERROR',
145
145
  };
146
146
 
147
- type State =
147
+ type TouchableState =
148
148
  | typeof States.NOT_RESPONDER
149
149
  | typeof States.RESPONDER_INACTIVE_PRESS_IN
150
150
  | typeof States.RESPONDER_INACTIVE_PRESS_OUT
@@ -397,7 +397,7 @@ const TouchableMixinImpl = {
397
397
  */
398
398
  touchableGetInitialState: function (): {
399
399
  touchable: {
400
- touchState: ?State,
400
+ touchState: ?TouchableState,
401
401
  responderID: ?GestureResponderEvent['currentTarget'],
402
402
  },
403
403
  } {
@@ -806,7 +806,7 @@ const TouchableMixinImpl = {
806
806
  this.longPressDelayTimeout = null;
807
807
  },
808
808
 
809
- _isHighlight: function (state: State): boolean {
809
+ _isHighlight: function (state: TouchableState): boolean {
810
810
  return (
811
811
  state === States.RESPONDER_ACTIVE_PRESS_IN ||
812
812
  state === States.RESPONDER_ACTIVE_LONG_PRESS_IN
@@ -849,8 +849,8 @@ const TouchableMixinImpl = {
849
849
  /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by
850
850
  * Flow's LTI update could not be added via codemod */
851
851
  _performSideEffectsForTransition: function (
852
- curState: State,
853
- nextState: State,
852
+ curState: TouchableState,
853
+ nextState: TouchableState,
854
854
  signal: Signal,
855
855
  e: GestureResponderEvent,
856
856
  ) {
@@ -149,7 +149,7 @@ const States = {
149
149
  ERROR: 'ERROR',
150
150
  };
151
151
 
152
- type State =
152
+ type TouchableState =
153
153
  | typeof States.NOT_RESPONDER
154
154
  | typeof States.RESPONDER_INACTIVE_PRESS_IN
155
155
  | typeof States.RESPONDER_INACTIVE_PRESS_OUT
@@ -402,7 +402,7 @@ const TouchableMixinImpl = {
402
402
  */
403
403
  touchableGetInitialState: function (): {
404
404
  touchable: {
405
- touchState: ?State,
405
+ touchState: ?TouchableState,
406
406
  responderID: ?GestureResponderEvent['currentTarget'],
407
407
  },
408
408
  } {
@@ -811,7 +811,7 @@ const TouchableMixinImpl = {
811
811
  this.longPressDelayTimeout = null;
812
812
  },
813
813
 
814
- _isHighlight: function (state: State): boolean {
814
+ _isHighlight: function (state: TouchableState): boolean {
815
815
  return (
816
816
  state === States.RESPONDER_ACTIVE_PRESS_IN ||
817
817
  state === States.RESPONDER_ACTIVE_LONG_PRESS_IN
@@ -854,8 +854,8 @@ const TouchableMixinImpl = {
854
854
  /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by
855
855
  * Flow's LTI update could not be added via codemod */
856
856
  _performSideEffectsForTransition: function (
857
- curState: State,
858
- nextState: State,
857
+ curState: TouchableState,
858
+ nextState: TouchableState,
859
859
  signal: Signal,
860
860
  e: GestureResponderEvent,
861
861
  ) {
@@ -19,7 +19,7 @@ import {PressabilityDebugView} from '../../Pressability/PressabilityDebug';
19
19
  import Platform from '../../Utilities/Platform';
20
20
  import * as React from 'react';
21
21
 
22
- type Props = $ReadOnly<{
22
+ type TouchableBounceProps = $ReadOnly<{
23
23
  ...React.ElementConfig<TouchableWithoutFeedback>,
24
24
 
25
25
  onPressAnimationComplete?: ?() => void,
@@ -31,13 +31,16 @@ type Props = $ReadOnly<{
31
31
  hostRef: React.RefSetter<React.ElementRef<typeof Animated.View>>,
32
32
  }>;
33
33
 
34
- type State = $ReadOnly<{
34
+ type TouchableBounceState = $ReadOnly<{
35
35
  pressability: Pressability,
36
36
  scale: Animated.Value,
37
37
  }>;
38
38
 
39
- class TouchableBounce extends React.Component<Props, State> {
40
- state: State = {
39
+ class TouchableBounce extends React.Component<
40
+ TouchableBounceProps,
41
+ TouchableBounceState,
42
+ > {
43
+ state: TouchableBounceState = {
41
44
  pressability: new Pressability(this._createPressabilityConfig()),
42
45
  scale: new Animated.Value(1),
43
46
  };
@@ -201,7 +204,10 @@ class TouchableBounce extends React.Component<Props, State> {
201
204
  );
202
205
  }
203
206
 
204
- componentDidUpdate(prevProps: Props, prevState: State) {
207
+ componentDidUpdate(
208
+ prevProps: TouchableBounceProps,
209
+ prevState: TouchableBounceState,
210
+ ) {
205
211
  this.state.pressability.configure(this._createPressabilityConfig());
206
212
  }
207
213
 
@@ -219,5 +225,5 @@ export default (React.forwardRef((props, hostRef: React.RefSetter<mixed>) => (
219
225
  <TouchableBounce {...props} hostRef={hostRef} />
220
226
  )): component(
221
227
  ref: React.RefSetter<mixed>,
222
- ...props: $ReadOnly<$Diff<Props, {hostRef: mixed}>>
228
+ ...props: $ReadOnly<Omit<TouchableBounceProps, 'hostRef'>>
223
229
  ));
@@ -55,7 +55,7 @@ type TouchableHighlightBaseProps = $ReadOnly<{
55
55
  onHideUnderlay?: ?() => void,
56
56
  testOnly_pressed?: ?boolean,
57
57
 
58
- hostRef: React.RefSetter<React.ElementRef<typeof View>>,
58
+ hostRef?: React.RefSetter<React.ElementRef<typeof View>>,
59
59
  }>;
60
60
 
61
61
  export type TouchableHighlightProps = $ReadOnly<{
@@ -70,7 +70,7 @@ type ExtraStyles = $ReadOnly<{
70
70
  underlay: ViewStyleProp,
71
71
  }>;
72
72
 
73
- type State = $ReadOnly<{
73
+ type TouchableHighlightState = $ReadOnly<{
74
74
  pressability: Pressability,
75
75
  extraStyles: ?ExtraStyles,
76
76
  }>;
@@ -173,12 +173,12 @@ type State = $ReadOnly<{
173
173
  */
174
174
  class TouchableHighlightImpl extends React.Component<
175
175
  TouchableHighlightProps,
176
- State,
176
+ TouchableHighlightState,
177
177
  > {
178
178
  _hideTimeout: ?TimeoutID;
179
179
  _isMounted: boolean = false;
180
180
 
181
- state: State = {
181
+ state: TouchableHighlightState = {
182
182
  pressability: new Pressability(this._createPressabilityConfig()),
183
183
  extraStyles:
184
184
  this.props.testOnly_pressed === true ? this._createExtraStyles() : null,
@@ -389,7 +389,10 @@ class TouchableHighlightImpl extends React.Component<
389
389
  this.state.pressability.configure(this._createPressabilityConfig());
390
390
  }
391
391
 
392
- componentDidUpdate(prevProps: TouchableHighlightProps, prevState: State) {
392
+ componentDidUpdate(
393
+ prevProps: TouchableHighlightProps,
394
+ prevState: TouchableHighlightState,
395
+ ) {
393
396
  this.state.pressability.configure(this._createPressabilityConfig());
394
397
  }
395
398
 
@@ -404,7 +407,7 @@ class TouchableHighlightImpl extends React.Component<
404
407
 
405
408
  const TouchableHighlight: component(
406
409
  ref?: React.RefSetter<React.ElementRef<typeof View>>,
407
- ...props: $ReadOnly<$Diff<TouchableHighlightProps, {+hostRef: mixed}>>
410
+ ...props: $ReadOnly<Omit<TouchableHighlightProps, 'hostRef'>>
408
411
  ) = React.forwardRef((props, hostRef) => (
409
412
  <TouchableHighlightImpl {...props} hostRef={hostRef} />
410
413
  ));
@@ -112,7 +112,7 @@ export type TouchableNativeFeedbackProps = $ReadOnly<{
112
112
  useForeground?: ?boolean,
113
113
  }>;
114
114
 
115
- type State = $ReadOnly<{
115
+ type TouchableNativeFeedbackState = $ReadOnly<{
116
116
  pressability: Pressability,
117
117
  }>;
118
118
 
@@ -128,7 +128,7 @@ type State = $ReadOnly<{
128
128
  */
129
129
  class TouchableNativeFeedback extends React.Component<
130
130
  TouchableNativeFeedbackProps,
131
- State,
131
+ TouchableNativeFeedbackState,
132
132
  > {
133
133
  /**
134
134
  * Creates an object that represents android theme's default background for
@@ -204,7 +204,7 @@ class TouchableNativeFeedback extends React.Component<
204
204
  static canUseNativeForeground: () => boolean = () =>
205
205
  Platform.OS === 'android';
206
206
 
207
- state: State = {
207
+ state: TouchableNativeFeedbackState = {
208
208
  pressability: new Pressability(this._createPressabilityConfig()),
209
209
  };
210
210
 
@@ -383,7 +383,7 @@ class TouchableNativeFeedback extends React.Component<
383
383
 
384
384
  componentDidUpdate(
385
385
  prevProps: TouchableNativeFeedbackProps,
386
- prevState: State,
386
+ prevState: TouchableNativeFeedbackState,
387
387
  ) {
388
388
  this.state.pressability.configure(this._createPressabilityConfig());
389
389
  }
@@ -111,7 +111,7 @@ export type TouchableNativeFeedbackProps = $ReadOnly<{
111
111
  tooltip?: string, // Win32
112
112
  }>;
113
113
 
114
- type State = $ReadOnly<{
114
+ type TouchableNativeFeedbackState = $ReadOnly<{
115
115
  pressability: Pressability,
116
116
  }>;
117
117
 
@@ -127,7 +127,7 @@ type State = $ReadOnly<{
127
127
  */
128
128
  class TouchableNativeFeedback extends React.Component<
129
129
  TouchableNativeFeedbackProps,
130
- State,
130
+ TouchableNativeFeedbackState,
131
131
  > {
132
132
  /**
133
133
  * Creates an object that represents android theme's default background for
@@ -203,7 +203,7 @@ class TouchableNativeFeedback extends React.Component<
203
203
  static canUseNativeForeground: () => boolean = () =>
204
204
  Platform.OS === 'android';
205
205
 
206
- state: State = {
206
+ state: TouchableNativeFeedbackState = {
207
207
  pressability: new Pressability(this._createPressabilityConfig()),
208
208
  };
209
209
 
@@ -285,7 +285,7 @@ class TouchableNativeFeedback extends React.Component<
285
285
 
286
286
  componentDidUpdate(
287
287
  prevProps: TouchableNativeFeedbackProps,
288
- prevState: State,
288
+ prevState: TouchableNativeFeedbackState,
289
289
  ) {
290
290
  this.state.pressability.configure(this._createPressabilityConfig());
291
291
  }
@@ -71,7 +71,7 @@ type TouchableOpacityBaseProps = $ReadOnly<{
71
71
  * Defaults to 0.2
72
72
  */
73
73
  activeOpacity?: ?number,
74
- style?: ?ViewStyleProp,
74
+ style?: ?Animated.WithAnimatedValue<ViewStyleProp>,
75
75
 
76
76
  hostRef?: ?React.RefSetter<React.ElementRef<typeof Animated.View>>,
77
77
  }>;
@@ -82,7 +82,7 @@ export type TouchableOpacityProps = $ReadOnly<{
82
82
  ...TouchableOpacityBaseProps,
83
83
  }>;
84
84
 
85
- type State = $ReadOnly<{
85
+ type TouchableOpacityState = $ReadOnly<{
86
86
  anim: Animated.Value,
87
87
  pressability: Pressability,
88
88
  }>;
@@ -171,8 +171,11 @@ type State = $ReadOnly<{
171
171
  * ```
172
172
  *
173
173
  */
174
- class TouchableOpacity extends React.Component<TouchableOpacityProps, State> {
175
- state: State = {
174
+ class TouchableOpacity extends React.Component<
175
+ TouchableOpacityProps,
176
+ TouchableOpacityState,
177
+ > {
178
+ state: TouchableOpacityState = {
176
179
  anim: new Animated.Value(this._getChildStyleOpacityWithDefault()),
177
180
  pressability: new Pressability(this._createPressabilityConfig()),
178
181
  };
@@ -345,7 +348,10 @@ class TouchableOpacity extends React.Component<TouchableOpacityProps, State> {
345
348
  );
346
349
  }
347
350
 
348
- componentDidUpdate(prevProps: TouchableOpacityProps, prevState: State) {
351
+ componentDidUpdate(
352
+ prevProps: TouchableOpacityProps,
353
+ prevState: TouchableOpacityState,
354
+ ) {
349
355
  this.state.pressability.configure(this._createPressabilityConfig());
350
356
  if (
351
357
  this.props.disabled !== prevProps.disabled ||
@@ -358,6 +358,13 @@ export type AccessibilityProps = $ReadOnly<{
358
358
  */
359
359
  'aria-label'?: ?Stringish,
360
360
 
361
+ /**
362
+ * Defines the order in which descendant elements receive accessibility focus.
363
+ * The elements in the array represent nativeID values for the respective
364
+ * descendant elements.
365
+ */
366
+ experimental_accessibilityOrder?: ?Array<string>,
367
+
361
368
  /**
362
369
  * Indicates to accessibility services to treat UI component like a specific role.
363
370
  */
@@ -371,6 +371,13 @@ export type AccessibilityProps = $ReadOnly<{
371
371
  */
372
372
  'aria-label'?: ?Stringish,
373
373
 
374
+ /**
375
+ * Defines the order in which descendant elements receive accessibility focus.
376
+ * The elements in the array represent nativeID values for the respective
377
+ * descendant elements.
378
+ */
379
+ experimental_accessibilityOrder?: ?Array<string>,
380
+
374
381
  /**
375
382
  * Indicates to accessibility services to treat UI component like a specific role.
376
383
  */
@@ -26,7 +26,7 @@ import type {
26
26
  AccessibilityProps,
27
27
  } from './ViewAccessibility';
28
28
 
29
- import React from 'react';
29
+ import * as React from 'react';
30
30
 
31
31
  export type ViewLayout = LayoutRectangle;
32
32
  export type ViewLayoutEvent = LayoutChangeEvent;
@@ -27,7 +27,7 @@ import type {
27
27
  AccessibilityProps,
28
28
  } from './ViewAccessibility';
29
29
 
30
- import React from 'react';
30
+ import * as React from 'react';
31
31
 
32
32
  export type ViewLayout = LayoutRectangle;
33
33
  export type ViewLayoutEvent = LayoutChangeEvent;
@@ -17,5 +17,5 @@ export const version: $ReadOnly<{
17
17
  major: 0,
18
18
  minor: 80,
19
19
  patch: 0,
20
- prerelease: 'nightly-20250331-398ac1f71',
20
+ prerelease: 'nightly-20250414-70cdf12c4',
21
21
  };
@@ -24,7 +24,10 @@ interface NativeModule {
24
24
  removeListeners(count: number): void;
25
25
  }
26
26
 
27
- export type {EventSubscription};
27
+ /** @deprecated Use `EventSubscription` instead. */
28
+ type EmitterSubscription = EventSubscription;
29
+
30
+ export type {EventSubscription, EmitterSubscription};
28
31
  /** @deprecated Use `EventSubscription` instead. */
29
32
  export type NativeEventSubscription = EventSubscription;
30
33
 
@@ -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 Image from './Image';
16
+
17
+ export default Image;
@@ -8,7 +8,7 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {Image} from './ImageTypes.flow';
11
+ import type {ImageType} from './ImageTypes.flow';
12
12
 
13
13
  export type {
14
14
  ImageProgressEventIOS,
@@ -24,4 +24,4 @@ export type {
24
24
 
25
25
  export type {ImageResolvedAssetSource, ImageSize} from './ImageTypes.flow';
26
26
 
27
- declare export default Image;
27
+ declare export default ImageType;
@@ -11,7 +11,7 @@
11
11
  import type {
12
12
  AbstractImageAndroid,
13
13
  AbstractImageIOS,
14
- Image as ImageComponent,
14
+ ImageType as ImageComponent,
15
15
  } from './ImageTypes.flow';
16
16
 
17
17
  import useMergeRefs from '../Utilities/useMergeRefs';