@office-iss/react-native-win32 0.68.0 → 0.69.0-preview.1

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 (180) hide show
  1. package/.flowconfig +1 -3
  2. package/CHANGELOG.json +356 -32
  3. package/CHANGELOG.md +150 -19
  4. package/IntegrationTests/BUCK +4 -1
  5. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -0
  6. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  7. package/Libraries/Alert/Alert.win32.js +1 -1
  8. package/Libraries/Animated/AnimatedImplementation.js +1 -1
  9. package/Libraries/Animated/NativeAnimatedHelper.js +55 -9
  10. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  11. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  12. package/Libraries/Animated/animations/TimingAnimation.js +6 -11
  13. package/Libraries/Animated/createAnimatedComponent.js +2 -2
  14. package/Libraries/Animated/nodes/AnimatedColor.js +95 -29
  15. package/Libraries/Animated/nodes/AnimatedInterpolation.js +19 -22
  16. package/Libraries/Animated/nodes/AnimatedNode.js +2 -2
  17. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  18. package/Libraries/AppState/AppState.js +1 -1
  19. package/Libraries/Blob/URL.js +7 -1
  20. package/Libraries/Components/Button.js +3 -0
  21. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +5 -0
  22. package/Libraries/Components/Pressable/Pressable.js +3 -3
  23. package/Libraries/Components/Pressable/Pressable.win32.js +3 -3
  24. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +47 -38
  25. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +15 -7
  26. package/Libraries/Components/ScrollView/ScrollView.js +1 -1
  27. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -3
  28. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -1
  29. package/Libraries/Components/Slider/Slider.js +0 -2
  30. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -1
  31. package/Libraries/Components/StatusBar/StatusBar.js +6 -1
  32. package/Libraries/Components/Switch/Switch.js +11 -1
  33. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +114 -109
  34. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +17 -9
  35. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +13 -5
  36. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +10 -0
  37. package/Libraries/Components/TextInput/TextInput.js +1 -8
  38. package/Libraries/Components/TextInput/TextInputState.js +10 -2
  39. package/Libraries/Components/TextInput/TextInputState.win32.js +10 -2
  40. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
  41. package/Libraries/Components/Touchable/TouchableBounce.js +1 -0
  42. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -0
  43. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -0
  44. package/Libraries/Components/Touchable/TouchableOpacity.js +7 -1
  45. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +3 -1
  46. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
  47. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -0
  48. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  49. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -0
  50. package/Libraries/Components/View/View.win32.js +33 -1
  51. package/Libraries/Components/View/ViewNativeComponent.js +68 -8
  52. package/Libraries/Components/View/ViewPropTypes.js +36 -4
  53. package/Libraries/Components/View/ViewPropTypes.win32.js +36 -4
  54. package/Libraries/Components/View/ViewWin32.Props.d.ts +1 -1
  55. package/Libraries/Components/View/ViewWin32.Props.js.map +1 -1
  56. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  57. package/Libraries/Core/ExceptionsManager.js +1 -1
  58. package/Libraries/Core/RawEventEmitter.js +38 -0
  59. package/Libraries/Core/ReactNativeVersion.js +2 -2
  60. package/Libraries/Core/polyfillPromise.js +32 -0
  61. package/Libraries/Core/setUpReactDevTools.js +3 -2
  62. package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
  63. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  64. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -3
  65. package/Libraries/Events/CustomEvent.js +32 -0
  66. package/Libraries/Events/EventPolyfill.js +239 -0
  67. package/Libraries/Image/Image.android.js +0 -6
  68. package/Libraries/Image/Image.ios.js +0 -6
  69. package/Libraries/Image/Image.win32.js +2 -8
  70. package/Libraries/Image/ImageViewNativeComponent.js +18 -3
  71. package/Libraries/Image/TextInlineImageNativeComponent.js +23 -15
  72. package/Libraries/Image/resolveAssetSource.win32.js +1 -1
  73. package/Libraries/Inspector/Inspector.js +2 -4
  74. package/Libraries/Inspector/Inspector.win32.js +7 -9
  75. package/Libraries/Interaction/BridgeSpyStallHandler.js +4 -3
  76. package/Libraries/Interaction/InteractionManager.js +1 -12
  77. package/Libraries/Interaction/TaskQueue.js +5 -4
  78. package/Libraries/LayoutAnimation/LayoutAnimation.js +13 -0
  79. package/Libraries/Linking/Linking.js +1 -1
  80. package/Libraries/Lists/FlatList.js +27 -6
  81. package/Libraries/Lists/VirtualizedList.js +71 -55
  82. package/Libraries/Lists/VirtualizedListContext.js +7 -3
  83. package/Libraries/Lists/VirtualizedSectionList.js +2 -2
  84. package/Libraries/Lists/__tests__/{FillRateHelper-test.windows.js → FillRateHelper-test.js} +2 -2
  85. package/Libraries/Lists/__tests__/{FlatList-test.windows.js → FlatList-test.js} +2 -2
  86. package/Libraries/Lists/__tests__/{SectionList-test.windows.js → SectionList-test.js} +14 -14
  87. package/Libraries/Lists/__tests__/{VirtualizeUtils-test.windows.js → VirtualizeUtils-test.js} +3 -3
  88. package/Libraries/Lists/__tests__/{VirtualizedList-test.windows.js → VirtualizedList-test.js} +92 -43
  89. package/Libraries/Lists/__tests__/{VirtualizedSectionList-test.windows.js → VirtualizedSectionList-test.js} +16 -14
  90. package/Libraries/LogBox/Data/LogBoxData.js +2 -2
  91. package/Libraries/LogBox/Data/LogBoxLog.js +1 -1
  92. package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
  93. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  94. package/Libraries/LogBox/LogBox.js +2 -21
  95. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -0
  96. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +2 -1
  97. package/Libraries/NativeComponent/BaseViewConfig.android.js +295 -0
  98. package/Libraries/NativeComponent/BaseViewConfig.ios.js +333 -0
  99. package/Libraries/NativeComponent/BaseViewConfig.win32.js +334 -0
  100. package/Libraries/NativeComponent/NativeComponentRegistry.js +0 -2
  101. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +24 -0
  102. package/Libraries/NativeComponent/StaticViewConfigValidator.js +7 -42
  103. package/Libraries/NativeComponent/ViewConfig.js +4 -4
  104. package/Libraries/NativeComponent/ViewConfigIgnore.js +54 -0
  105. package/Libraries/Network/FormData.js +7 -1
  106. package/Libraries/Network/RCTNetworking.win32.js +1 -1
  107. package/Libraries/Pressability/Pressability.js +115 -46
  108. package/Libraries/Pressability/Pressability.win32.js +174 -69
  109. package/Libraries/Pressability/PressabilityDebug.js +5 -9
  110. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  111. package/Libraries/ReactNative/AppContainer.js +1 -1
  112. package/Libraries/ReactNative/{DummyUIManager.js → BridgelessUIManager.js} +62 -40
  113. package/Libraries/ReactNative/PaperUIManager.win32.js +5 -5
  114. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +39 -0
  115. package/Libraries/ReactNative/UIManager.js +2 -3
  116. package/Libraries/ReactNative/renderApplication.js +4 -0
  117. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +8 -0
  118. package/Libraries/Renderer/implementations/ReactFabric-dev.js +5908 -4906
  119. package/Libraries/Renderer/implementations/ReactFabric-prod.js +2100 -1918
  120. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +2567 -2352
  121. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5610 -4844
  122. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1710 -1556
  123. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1830 -1639
  124. package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
  125. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -1
  126. package/Libraries/StyleSheet/EdgeInsetsPropType.js +4 -1
  127. package/Libraries/StyleSheet/StyleSheetTypes.js +59 -66
  128. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  129. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
  130. package/Libraries/StyleSheet/private/_TransformStyle.js +53 -0
  131. package/Libraries/Text/Text.js +13 -7
  132. package/Libraries/Text/TextNativeComponent.js +2 -0
  133. package/Libraries/Text/TextNativeComponent.win32.js +2 -0
  134. package/Libraries/Text/TextProps.js +10 -0
  135. package/Libraries/Types/CoreEventTypes.js +13 -1
  136. package/Libraries/Types/CoreEventTypes.win32.js +26 -1
  137. package/Libraries/Utilities/Appearance.js +0 -8
  138. package/Libraries/Utilities/HMRClient.js +1 -1
  139. package/Libraries/Utilities/ReactNativeTestTools.js +1 -0
  140. package/Libraries/Utilities/codegenNativeComponent.js +17 -6
  141. package/Libraries/Utilities/stringifySafe.js +4 -1
  142. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +3 -3
  143. package/Libraries/WebSocket/WebSocket.js +1 -1
  144. package/Libraries/vendor/emitter/_EmitterSubscription.js +1 -1
  145. package/Libraries/vendor/emitter/_EventEmitter.js +1 -1
  146. package/Libraries/vendor/emitter/_EventSubscription.js +1 -1
  147. package/index.js +30 -25
  148. package/index.win32.js +30 -25
  149. package/jest/preprocessor.js +24 -107
  150. package/jest/preprocessor_DO_NOT_USE.js +122 -0
  151. package/metro.config.js +3 -47
  152. package/overrides.json +39 -46
  153. package/package.json +30 -29
  154. package/rntypes/index.d.ts +19 -7
  155. package/src/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +1 -1
  156. package/src/Libraries/Components/Touchable/TouchableWin32.Props.tsx +3 -1
  157. package/src/Libraries/Components/View/ViewWin32.Props.ts +1 -0
  158. package/src/Libraries/Lists/__tests__/__snapshots__/FlatList-test.js.snap +427 -0
  159. package/src/Libraries/Lists/__tests__/__snapshots__/SectionList-test.js.snap +391 -0
  160. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizeUtils-test.js.snap +3 -0
  161. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap +4565 -0
  162. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedSectionList-test.js.snap +1153 -0
  163. package/src/rntypes/index.d.ts +19 -7
  164. package/typings-index.js +5 -1
  165. package/typings-index.js.map +1 -1
  166. package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -44
  167. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -45
  168. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
  169. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.js +0 -45
  170. package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -360
  171. package/Libraries/Components/View/ReactNativeViewViewConfig.win32.js +0 -401
  172. package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -83
  173. package/Libraries/ReactNative/UIManagerInjection.js +0 -15
  174. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -24527
  175. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -8309
  176. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -8961
  177. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -24948
  178. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -8400
  179. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -9049
  180. package/flow/Promise.js +0 -47
@@ -22,7 +22,7 @@ import type {
22
22
  } from '../View/ViewAccessibility';
23
23
  import {PressabilityDebugView} from '../../Pressability/PressabilityDebug';
24
24
  import usePressability from '../../Pressability/usePressability';
25
- import {normalizeRect, type RectOrSize} from '../../StyleSheet/Rect';
25
+ import {type RectOrSize} from '../../StyleSheet/Rect';
26
26
  import type {
27
27
  LayoutEvent,
28
28
  MouseEvent,
@@ -49,6 +49,7 @@ type Props = $ReadOnly<{|
49
49
  accessibilityActions?: ?$ReadOnlyArray<AccessibilityActionInfo>,
50
50
  accessibilityElementsHidden?: ?boolean,
51
51
  accessibilityHint?: ?Stringish,
52
+ accessibilityLanguage?: ?Stringish,
52
53
  accessibilityIgnoresInvertColors?: ?boolean,
53
54
  accessibilityLabel?: ?Stringish,
54
55
  accessibilityLiveRegion?: ?('none' | 'polite' | 'assertive'),
@@ -227,6 +228,7 @@ function Pressable(props: Props, forwardedRef): React.Node {
227
228
  delayLongPress,
228
229
  disabled,
229
230
  focusable,
231
+ hitSlop,
230
232
  onHoverIn,
231
233
  onHoverOut,
232
234
  onLongPress,
@@ -269,8 +271,6 @@ function Pressable(props: Props, forwardedRef): React.Node {
269
271
 
270
272
  const [pressed, setPressed] = usePressState(testOnly_pressed === true);
271
273
 
272
- const hitSlop = normalizeRect(props.hitSlop);
273
-
274
274
  const accessibilityState =
275
275
  disabled != null
276
276
  ? {...props.accessibilityState, disabled}
@@ -9,46 +9,55 @@
9
9
  */
10
10
 
11
11
  import type {ScrollViewNativeProps as Props} from './ScrollViewNativeComponentType';
12
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
12
+ import type {
13
+ HostComponent,
14
+ PartialViewConfig,
15
+ } from '../../Renderer/shims/ReactNativeTypes';
13
16
  import * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';
14
17
 
18
+ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
19
+ uiViewClassName: 'AndroidHorizontalScrollView',
20
+ bubblingEventTypes: {},
21
+ directEventTypes: {},
22
+ validAttributes: {
23
+ decelerationRate: true,
24
+ disableIntervalMomentum: true,
25
+ endFillColor: {process: require('../../StyleSheet/processColor')},
26
+ fadingEdgeLength: true,
27
+ nestedScrollEnabled: true,
28
+ overScrollMode: true,
29
+ pagingEnabled: true,
30
+ persistentScrollbar: true,
31
+ scrollEnabled: true,
32
+ scrollPerfTag: true,
33
+ sendMomentumEvents: true,
34
+ showsHorizontalScrollIndicator: true,
35
+ snapToAlignment: true,
36
+ snapToEnd: true,
37
+ snapToInterval: true,
38
+ snapToStart: true,
39
+ snapToOffsets: true,
40
+ contentOffset: true,
41
+ borderBottomLeftRadius: true,
42
+ borderBottomRightRadius: true,
43
+ borderRadius: true,
44
+ borderStyle: true,
45
+ borderRightColor: {process: require('../../StyleSheet/processColor')},
46
+ borderColor: {process: require('../../StyleSheet/processColor')},
47
+ borderBottomColor: {process: require('../../StyleSheet/processColor')},
48
+ borderTopLeftRadius: true,
49
+ borderTopColor: {process: require('../../StyleSheet/processColor')},
50
+ removeClippedSubviews: true,
51
+ borderTopRightRadius: true,
52
+ borderLeftColor: {process: require('../../StyleSheet/processColor')},
53
+ pointerEvents: true,
54
+ },
55
+ };
56
+
15
57
  const AndroidHorizontalScrollViewNativeComponent: HostComponent<Props> =
16
- NativeComponentRegistry.get<Props>('AndroidHorizontalScrollView', () => ({
17
- uiViewClassName: 'AndroidHorizontalScrollView',
18
- bubblingEventTypes: {},
19
- directEventTypes: {},
20
- validAttributes: {
21
- decelerationRate: true,
22
- disableIntervalMomentum: true,
23
- endFillColor: {process: require('../../StyleSheet/processColor')},
24
- fadingEdgeLength: true,
25
- nestedScrollEnabled: true,
26
- overScrollMode: true,
27
- pagingEnabled: true,
28
- persistentScrollbar: true,
29
- scrollEnabled: true,
30
- scrollPerfTag: true,
31
- sendMomentumEvents: true,
32
- showsHorizontalScrollIndicator: true,
33
- snapToAlignment: true,
34
- snapToEnd: true,
35
- snapToInterval: true,
36
- snapToStart: true,
37
- snapToOffsets: true,
38
- contentOffset: true,
39
- borderBottomLeftRadius: true,
40
- borderBottomRightRadius: true,
41
- borderRadius: true,
42
- borderStyle: true,
43
- borderRightColor: {process: require('../../StyleSheet/processColor')},
44
- borderColor: {process: require('../../StyleSheet/processColor')},
45
- borderBottomColor: {process: require('../../StyleSheet/processColor')},
46
- borderTopLeftRadius: true,
47
- borderTopColor: {process: require('../../StyleSheet/processColor')},
48
- removeClippedSubviews: true,
49
- borderTopRightRadius: true,
50
- borderLeftColor: {process: require('../../StyleSheet/processColor')},
51
- },
52
- }));
58
+ NativeComponentRegistry.get<Props>(
59
+ 'AndroidHorizontalScrollView',
60
+ () => __INTERNAL_VIEW_CONFIG,
61
+ );
53
62
 
54
63
  export default AndroidHorizontalScrollViewNativeComponent;
@@ -8,16 +8,24 @@
8
8
  * @flow
9
9
  */
10
10
 
11
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
11
+ import type {
12
+ HostComponent,
13
+ PartialViewConfig,
14
+ } from '../../Renderer/shims/ReactNativeTypes';
12
15
  import * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';
13
16
  import type {ViewProps as Props} from '../View/ViewPropTypes';
14
17
 
18
+ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
19
+ uiViewClassName: 'RCTScrollContentView',
20
+ bubblingEventTypes: {},
21
+ directEventTypes: {},
22
+ validAttributes: {},
23
+ };
24
+
15
25
  const ScrollContentViewNativeComponent: HostComponent<Props> =
16
- NativeComponentRegistry.get<Props>('RCTScrollContentView', () => ({
17
- uiViewClassName: 'RCTScrollContentView',
18
- bubblingEventTypes: {},
19
- directEventTypes: {},
20
- validAttributes: {},
21
- }));
26
+ NativeComponentRegistry.get<Props>(
27
+ 'RCTScrollContentView',
28
+ () => __INTERNAL_VIEW_CONFIG,
29
+ );
22
30
 
23
31
  export default ScrollContentViewNativeComponent;
@@ -675,7 +675,7 @@ type State = {|
675
675
 
676
676
  const IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;
677
677
 
678
- type ScrollViewComponentStatics = $ReadOnly<{|
678
+ export type ScrollViewComponentStatics = $ReadOnly<{|
679
679
  Context: typeof ScrollViewContext,
680
680
  |}>;
681
681
 
@@ -9,11 +9,15 @@
9
9
  */
10
10
 
11
11
  import type {ScrollViewNativeProps as Props} from './ScrollViewNativeComponentType';
12
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
12
+ import type {
13
+ HostComponent,
14
+ PartialViewConfig,
15
+ } from '../../Renderer/shims/ReactNativeTypes';
13
16
  import * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';
17
+ import {ConditionallyIgnoredEventHandlers} from '../../NativeComponent/ViewConfigIgnore';
14
18
  import Platform from '../../Utilities/Platform';
15
19
 
16
- const RCTScrollViewViewConfig =
20
+ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig =
17
21
  Platform.OS === 'android'
18
22
  ? {
19
23
  uiViewClassName: 'RCTScrollView',
@@ -70,6 +74,7 @@ const RCTScrollViewViewConfig =
70
74
  removeClippedSubviews: true,
71
75
  borderTopRightRadius: true,
72
76
  borderLeftColor: {process: require('../../StyleSheet/processColor')},
77
+ pointerEvents: true,
73
78
  },
74
79
  }
75
80
  : {
@@ -138,13 +143,21 @@ const RCTScrollViewViewConfig =
138
143
  snapToOffsets: true,
139
144
  snapToStart: true,
140
145
  zoomScale: true,
146
+ ...ConditionallyIgnoredEventHandlers({
147
+ onScrollBeginDrag: true,
148
+ onMomentumScrollEnd: true,
149
+ onScrollEndDrag: true,
150
+ onMomentumScrollBegin: true,
151
+ onScrollToTop: true,
152
+ onScroll: true,
153
+ }),
141
154
  },
142
155
  };
143
156
 
144
157
  const ScrollViewNativeComponent: HostComponent<Props> =
145
158
  NativeComponentRegistry.get<Props>(
146
159
  'RCTScrollView',
147
- () => RCTScrollViewViewConfig,
160
+ () => __INTERNAL_VIEW_CONFIG,
148
161
  );
149
162
 
150
163
  export default ScrollViewNativeComponent;
@@ -170,7 +170,9 @@ class ScrollViewStickyHeader extends React.Component<Props, State> {
170
170
 
171
171
  this.props.onLayout(event);
172
172
  const child = React.Children.only(this.props.children);
173
- if (child.props.onLayout) {
173
+ if (child.props.onCellLayout) {
174
+ child.props.onCellLayout(event, child.props.cellKey, child.props.index);
175
+ } else if (child.props.onLayout) {
174
176
  child.props.onLayout(event);
175
177
  }
176
178
  };
@@ -228,7 +228,6 @@ const Slider = (
228
228
  }
229
229
  : null;
230
230
 
231
- const onChangeEvent = onValueChangeEvent;
232
231
  const onSlidingCompleteEvent = onSlidingComplete
233
232
  ? (event: Event) => {
234
233
  onSlidingComplete(event.nativeEvent.value);
@@ -250,7 +249,6 @@ const Slider = (
250
249
  disabled={disabled}
251
250
  maximumValue={maximumValue}
252
251
  minimumValue={minimumValue}
253
- onChange={onChangeEvent}
254
252
  onResponderTerminationRequest={() => false}
255
253
  onSlidingComplete={onSlidingCompleteEvent}
256
254
  onStartShouldSetResponder={() => true}
@@ -47,7 +47,6 @@ type NativeProps = $ReadOnly<{|
47
47
  value?: WithDefault<Double, 0>,
48
48
 
49
49
  // Events
50
- onChange?: ?BubblingEventHandler<Event>,
51
50
  onValueChange?: ?BubblingEventHandler<Event>,
52
51
  onSlidingComplete?: ?DirectEventHandler<Event>,
53
52
  |}>;
@@ -471,7 +471,12 @@ class StatusBar extends React.Component<Props> {
471
471
  if (!oldProps || oldProps.hidden.value !== mergedProps.hidden.value) {
472
472
  NativeStatusBarManagerAndroid.setHidden(mergedProps.hidden.value);
473
473
  }
474
- if (!oldProps || oldProps.translucent !== mergedProps.translucent) {
474
+ // Activities are not translucent by default, so always set if true.
475
+ if (
476
+ !oldProps ||
477
+ oldProps.translucent !== mergedProps.translucent ||
478
+ mergedProps.translucent
479
+ ) {
475
480
  NativeStatusBarManagerAndroid.setTranslucent(mergedProps.translucent);
476
481
  }
477
482
  }
@@ -185,8 +185,18 @@ const SwitchWithForwardedRef: React.AbstractComponent<
185
185
  }, [value, native]);
186
186
 
187
187
  if (Platform.OS === 'android') {
188
+ const {accessibilityState} = restProps;
189
+ const _disabled =
190
+ disabled != null ? disabled : accessibilityState?.disabled;
191
+
192
+ const _accessibilityState =
193
+ _disabled !== accessibilityState?.disabled
194
+ ? {...accessibilityState, disabled: _disabled}
195
+ : accessibilityState;
196
+
188
197
  const platformProps = {
189
- enabled: disabled !== true,
198
+ accessibilityState: _accessibilityState,
199
+ enabled: _disabled !== true,
190
200
  on: value === true,
191
201
  style,
192
202
  thumbTintColor: thumbColor,
@@ -17,7 +17,10 @@ import type {
17
17
  Int32,
18
18
  WithDefault,
19
19
  } from '../../Types/CodegenTypes';
20
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
20
+ import type {
21
+ HostComponent,
22
+ PartialViewConfig,
23
+ } from '../../Renderer/shims/ReactNativeTypes';
21
24
  import type {
22
25
  TextStyleProp,
23
26
  ViewStyleProp,
@@ -593,123 +596,125 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
593
596
  supportedCommands: ['focus', 'blur', 'setTextAndSelection'],
594
597
  });
595
598
 
596
- let AndroidTextInputNativeComponent = NativeComponentRegistry.get<NativeProps>(
597
- 'AndroidTextInput',
598
- () => ({
599
- uiViewClassName: 'AndroidTextInput',
600
- bubblingEventTypes: {
601
- topBlur: {
602
- phasedRegistrationNames: {
603
- bubbled: 'onBlur',
604
- captured: 'onBlurCapture',
605
- },
606
- },
607
- topEndEditing: {
608
- phasedRegistrationNames: {
609
- bubbled: 'onEndEditing',
610
- captured: 'onEndEditingCapture',
611
- },
599
+ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
600
+ uiViewClassName: 'AndroidTextInput',
601
+ bubblingEventTypes: {
602
+ topBlur: {
603
+ phasedRegistrationNames: {
604
+ bubbled: 'onBlur',
605
+ captured: 'onBlurCapture',
612
606
  },
613
- topFocus: {
614
- phasedRegistrationNames: {
615
- bubbled: 'onFocus',
616
- captured: 'onFocusCapture',
617
- },
618
- },
619
- topKeyPress: {
620
- phasedRegistrationNames: {
621
- bubbled: 'onKeyPress',
622
- captured: 'onKeyPressCapture',
623
- },
607
+ },
608
+ topEndEditing: {
609
+ phasedRegistrationNames: {
610
+ bubbled: 'onEndEditing',
611
+ captured: 'onEndEditingCapture',
624
612
  },
625
- topSubmitEditing: {
626
- phasedRegistrationNames: {
627
- bubbled: 'onSubmitEditing',
628
- captured: 'onSubmitEditingCapture',
629
- },
613
+ },
614
+ topFocus: {
615
+ phasedRegistrationNames: {
616
+ bubbled: 'onFocus',
617
+ captured: 'onFocusCapture',
630
618
  },
631
- topTextInput: {
632
- phasedRegistrationNames: {
633
- bubbled: 'onTextInput',
634
- captured: 'onTextInputCapture',
635
- },
619
+ },
620
+ topKeyPress: {
621
+ phasedRegistrationNames: {
622
+ bubbled: 'onKeyPress',
623
+ captured: 'onKeyPressCapture',
636
624
  },
637
625
  },
638
- directEventTypes: {
639
- topScroll: {
640
- registrationName: 'onScroll',
626
+ topSubmitEditing: {
627
+ phasedRegistrationNames: {
628
+ bubbled: 'onSubmitEditing',
629
+ captured: 'onSubmitEditingCapture',
641
630
  },
642
631
  },
643
- validAttributes: {
644
- maxFontSizeMultiplier: true,
645
- adjustsFontSizeToFit: true,
646
- minimumFontScale: true,
647
- autoFocus: true,
648
- placeholder: true,
649
- inlineImagePadding: true,
650
- contextMenuHidden: true,
651
- textShadowColor: {process: require('../../StyleSheet/processColor')},
652
- maxLength: true,
653
- selectTextOnFocus: true,
654
- textShadowRadius: true,
655
- underlineColorAndroid: {
656
- process: require('../../StyleSheet/processColor'),
632
+ topTextInput: {
633
+ phasedRegistrationNames: {
634
+ bubbled: 'onTextInput',
635
+ captured: 'onTextInputCapture',
657
636
  },
658
- textDecorationLine: true,
659
- blurOnSubmit: true,
660
- textAlignVertical: true,
661
- fontStyle: true,
662
- textShadowOffset: true,
663
- selectionColor: {process: require('../../StyleSheet/processColor')},
664
- selection: true,
665
- placeholderTextColor: {process: require('../../StyleSheet/processColor')},
666
- importantForAutofill: true,
667
- lineHeight: true,
668
- textTransform: true,
669
- returnKeyType: true,
670
- keyboardType: true,
671
- multiline: true,
672
- color: {process: require('../../StyleSheet/processColor')},
673
- autoComplete: true,
674
- numberOfLines: true,
675
- letterSpacing: true,
676
- returnKeyLabel: true,
677
- fontSize: true,
678
- onKeyPress: true,
679
- cursorColor: {process: require('../../StyleSheet/processColor')},
680
- text: true,
681
- showSoftInputOnFocus: true,
682
- textAlign: true,
683
- autoCapitalize: true,
684
- autoCorrect: true,
685
- caretHidden: true,
686
- secureTextEntry: true,
687
- textBreakStrategy: true,
688
- onScroll: true,
689
- onContentSizeChange: true,
690
- disableFullscreenUI: true,
691
- includeFontPadding: true,
692
- fontWeight: true,
693
- fontFamily: true,
694
- allowFontScaling: true,
695
- onSelectionChange: true,
696
- mostRecentEventCount: true,
697
- inlineImageLeft: true,
698
- editable: true,
699
- fontVariant: true,
700
- borderBottomRightRadius: true,
701
- borderBottomColor: {process: require('../../StyleSheet/processColor')},
702
- borderRadius: true,
703
- borderRightColor: {process: require('../../StyleSheet/processColor')},
704
- borderColor: {process: require('../../StyleSheet/processColor')},
705
- borderTopRightRadius: true,
706
- borderStyle: true,
707
- borderBottomLeftRadius: true,
708
- borderLeftColor: {process: require('../../StyleSheet/processColor')},
709
- borderTopLeftRadius: true,
710
- borderTopColor: {process: require('../../StyleSheet/processColor')},
711
637
  },
712
- }),
638
+ },
639
+ directEventTypes: {
640
+ topScroll: {
641
+ registrationName: 'onScroll',
642
+ },
643
+ },
644
+ validAttributes: {
645
+ maxFontSizeMultiplier: true,
646
+ adjustsFontSizeToFit: true,
647
+ minimumFontScale: true,
648
+ autoFocus: true,
649
+ placeholder: true,
650
+ inlineImagePadding: true,
651
+ contextMenuHidden: true,
652
+ textShadowColor: {process: require('../../StyleSheet/processColor')},
653
+ maxLength: true,
654
+ selectTextOnFocus: true,
655
+ textShadowRadius: true,
656
+ underlineColorAndroid: {
657
+ process: require('../../StyleSheet/processColor'),
658
+ },
659
+ textDecorationLine: true,
660
+ blurOnSubmit: true,
661
+ textAlignVertical: true,
662
+ fontStyle: true,
663
+ textShadowOffset: true,
664
+ selectionColor: {process: require('../../StyleSheet/processColor')},
665
+ selection: true,
666
+ placeholderTextColor: {process: require('../../StyleSheet/processColor')},
667
+ importantForAutofill: true,
668
+ lineHeight: true,
669
+ textTransform: true,
670
+ returnKeyType: true,
671
+ keyboardType: true,
672
+ multiline: true,
673
+ color: {process: require('../../StyleSheet/processColor')},
674
+ autoComplete: true,
675
+ numberOfLines: true,
676
+ letterSpacing: true,
677
+ returnKeyLabel: true,
678
+ fontSize: true,
679
+ onKeyPress: true,
680
+ cursorColor: {process: require('../../StyleSheet/processColor')},
681
+ text: true,
682
+ showSoftInputOnFocus: true,
683
+ textAlign: true,
684
+ autoCapitalize: true,
685
+ autoCorrect: true,
686
+ caretHidden: true,
687
+ secureTextEntry: true,
688
+ textBreakStrategy: true,
689
+ onScroll: true,
690
+ onContentSizeChange: true,
691
+ disableFullscreenUI: true,
692
+ includeFontPadding: true,
693
+ fontWeight: true,
694
+ fontFamily: true,
695
+ allowFontScaling: true,
696
+ onSelectionChange: true,
697
+ mostRecentEventCount: true,
698
+ inlineImageLeft: true,
699
+ editable: true,
700
+ fontVariant: true,
701
+ borderBottomRightRadius: true,
702
+ borderBottomColor: {process: require('../../StyleSheet/processColor')},
703
+ borderRadius: true,
704
+ borderRightColor: {process: require('../../StyleSheet/processColor')},
705
+ borderColor: {process: require('../../StyleSheet/processColor')},
706
+ borderTopRightRadius: true,
707
+ borderStyle: true,
708
+ borderBottomLeftRadius: true,
709
+ borderLeftColor: {process: require('../../StyleSheet/processColor')},
710
+ borderTopLeftRadius: true,
711
+ borderTopColor: {process: require('../../StyleSheet/processColor')},
712
+ },
713
+ };
714
+
715
+ let AndroidTextInputNativeComponent = NativeComponentRegistry.get<NativeProps>(
716
+ 'AndroidTextInput',
717
+ () => __INTERNAL_VIEW_CONFIG,
713
718
  );
714
719
 
715
720
  // flowlint-next-line unclear-type:off
@@ -8,7 +8,10 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
11
+ import type {
12
+ HostComponent,
13
+ PartialViewConfig,
14
+ } from '../../Renderer/shims/ReactNativeTypes';
12
15
  import codegenNativeCommands from '../../Utilities/codegenNativeCommands';
13
16
  import type {TextInputNativeCommands} from './TextInputNativeCommands';
14
17
  import RCTTextInputViewConfig from './RCTTextInputViewConfig';
@@ -22,15 +25,20 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
22
25
  supportedCommands: ['focus', 'blur', 'setTextAndSelection'],
23
26
  });
24
27
 
28
+ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
29
+ uiViewClassName: 'RCTMultilineTextInputView',
30
+ ...RCTTextInputViewConfig,
31
+ validAttributes: {
32
+ ...RCTTextInputViewConfig.validAttributes,
33
+ dataDetectorTypes: true,
34
+ },
35
+ };
36
+
25
37
  const MultilineTextInputNativeComponent: HostComponent<mixed> =
26
- NativeComponentRegistry.get<mixed>('RCTMultilineTextInputView', () => ({
27
- uiViewClassName: 'RCTMultilineTextInputView',
28
- ...RCTTextInputViewConfig,
29
- validAttributes: {
30
- ...RCTTextInputViewConfig.validAttributes,
31
- dataDetectorTypes: true,
32
- },
33
- }));
38
+ NativeComponentRegistry.get<mixed>(
39
+ 'RCTMultilineTextInputView',
40
+ () => __INTERNAL_VIEW_CONFIG,
41
+ );
34
42
 
35
43
  // flowlint-next-line unclear-type:off
36
44
  export default ((MultilineTextInputNativeComponent: any): HostComponent<mixed>);
@@ -8,7 +8,10 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
11
+ import type {
12
+ HostComponent,
13
+ PartialViewConfig,
14
+ } from '../../Renderer/shims/ReactNativeTypes';
12
15
  import codegenNativeCommands from '../../Utilities/codegenNativeCommands';
13
16
  import type {TextInputNativeCommands} from './TextInputNativeCommands';
14
17
  import RCTTextInputViewConfig from './RCTTextInputViewConfig';
@@ -22,11 +25,16 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
22
25
  supportedCommands: ['focus', 'blur', 'setTextAndSelection'],
23
26
  });
24
27
 
28
+ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
29
+ uiViewClassName: 'RCTSinglelineTextInputView',
30
+ ...RCTTextInputViewConfig,
31
+ };
32
+
25
33
  const SinglelineTextInputNativeComponent: HostComponent<mixed> =
26
- NativeComponentRegistry.get<mixed>('RCTSinglelineTextInputView', () => ({
27
- uiViewClassName: 'RCTSinglelineTextInputView',
28
- ...RCTTextInputViewConfig,
29
- }));
34
+ NativeComponentRegistry.get<mixed>(
35
+ 'RCTSinglelineTextInputView',
36
+ () => __INTERNAL_VIEW_CONFIG,
37
+ );
30
38
 
31
39
  // flowlint-next-line unclear-type:off
32
40
  export default ((SinglelineTextInputNativeComponent: any): HostComponent<mixed>);
@@ -9,6 +9,7 @@
9
9
  */
10
10
 
11
11
  import type {PartialViewConfig} from '../../Renderer/shims/ReactNativeTypes';
12
+ import {ConditionallyIgnoredEventHandlers} from '../../NativeComponent/ViewConfigIgnore';
12
13
 
13
14
  type PartialViewConfigWithoutName = $Rest<
14
15
  PartialViewConfig,
@@ -147,6 +148,15 @@ const RCTTextInputViewConfig = {
147
148
  clearTextOnFocus: true,
148
149
  showSoftInputOnFocus: true,
149
150
  autoFocus: true,
151
+ ...ConditionallyIgnoredEventHandlers({
152
+ onChange: true,
153
+ onSelectionChange: true,
154
+ onContentSizeChange: true,
155
+ onScroll: true,
156
+ onChangeSync: true,
157
+ onKeyPressSync: true,
158
+ onTextInput: true,
159
+ }),
150
160
  },
151
161
  };
152
162
 
@@ -1341,13 +1341,6 @@ const ExportedForwardRef: React.AbstractComponent<
1341
1341
  );
1342
1342
  });
1343
1343
 
1344
- /**
1345
- * Switch to `deprecated-react-native-prop-types` for compatibility with future
1346
- * releases. This is deprecated and will be removed in the future.
1347
- */
1348
- ExportedForwardRef.propTypes =
1349
- require('deprecated-react-native-prop-types').TextInputPropTypes;
1350
-
1351
1344
  // $FlowFixMe[prop-missing]
1352
1345
  ExportedForwardRef.State = {
1353
1346
  currentlyFocusedInput: TextInputState.currentlyFocusedInput,
@@ -1357,7 +1350,7 @@ ExportedForwardRef.State = {
1357
1350
  blurTextInput: TextInputState.blurTextInput,
1358
1351
  };
1359
1352
 
1360
- type TextInputComponentStatics = $ReadOnly<{|
1353
+ export type TextInputComponentStatics = $ReadOnly<{|
1361
1354
  State: $ReadOnly<{|
1362
1355
  currentlyFocusedInput: typeof TextInputState.currentlyFocusedInput,
1363
1356
  currentlyFocusedField: typeof TextInputState.currentlyFocusedField,