@office-iss/react-native-win32 0.81.2 → 0.82.0-preview.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/.flowconfig +3 -11
  2. package/CHANGELOG.json +118 -43
  3. package/CHANGELOG.md +45 -27
  4. package/IntegrationTests/IntegrationTestsApp.js +2 -2
  5. package/IntegrationTests/LayoutEventsTest.js +3 -3
  6. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -3
  7. package/Libraries/Alert/RCTAlertManager.android.js +4 -2
  8. package/Libraries/Animated/Animated.d.ts +2 -0
  9. package/Libraries/Animated/AnimatedEvent.js +1 -1
  10. package/Libraries/Animated/AnimatedExports.js.flow +1 -0
  11. package/Libraries/Animated/AnimatedImplementation.js +4 -2
  12. package/Libraries/Animated/AnimatedMock.js +1 -1
  13. package/Libraries/Animated/Easing.js +2 -0
  14. package/Libraries/Animated/NativeAnimatedAllowlist.js +1 -0
  15. package/Libraries/Animated/animations/Animation.js +19 -20
  16. package/Libraries/Animated/animations/TimingAnimation.js +2 -0
  17. package/Libraries/Animated/components/AnimatedScrollView.js +3 -2
  18. package/Libraries/Animated/components/AnimatedSectionList.js +1 -1
  19. package/Libraries/Animated/nodes/AnimatedColor.js +9 -9
  20. package/Libraries/Animated/nodes/AnimatedInterpolation.js +4 -4
  21. package/Libraries/Animated/nodes/AnimatedNode.js +14 -7
  22. package/Libraries/Animated/nodes/AnimatedObject.js +7 -7
  23. package/Libraries/Animated/nodes/AnimatedProps.js +32 -32
  24. package/Libraries/Animated/nodes/AnimatedStyle.js +23 -21
  25. package/Libraries/Animated/nodes/AnimatedTransform.js +6 -6
  26. package/Libraries/Animated/nodes/AnimatedValue.js +18 -26
  27. package/Libraries/AppState/AppState.js +8 -4
  28. package/Libraries/BatchedBridge/BatchedBridge.js +1 -0
  29. package/Libraries/BatchedBridge/MessageQueue.js +5 -0
  30. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  31. package/Libraries/Blob/BlobManager.js +1 -1
  32. package/Libraries/Blob/URLSearchParams.js +2 -0
  33. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -2
  34. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +2 -2
  35. package/Libraries/Components/Button.js +1 -1
  36. package/Libraries/Components/Button.win32.js +1 -1
  37. package/Libraries/Components/Pressable/Pressable.js +10 -1
  38. package/Libraries/Components/Pressable/Pressable.win32.js +9 -0
  39. package/Libraries/Components/Pressable/useAndroidRippleForView.js +2 -2
  40. package/Libraries/Components/ScrollView/ScrollView.js +13 -4
  41. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  42. package/Libraries/Components/StatusBar/StatusBar.js +2 -2
  43. package/Libraries/Components/Switch/Switch.js +1 -1
  44. package/Libraries/Components/TextInput/TextInput.flow.js +12 -5
  45. package/Libraries/Components/TextInput/TextInput.flow.win32.js +12 -5
  46. package/Libraries/Components/TextInput/TextInput.js +14 -5
  47. package/Libraries/Components/TextInput/TextInput.win32.js +15 -7
  48. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  49. package/Libraries/Components/TextInput/TextInputState.win32.js +1 -1
  50. package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +2 -3
  51. package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
  52. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  53. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  54. package/Libraries/Components/Touchable/TouchableOpacity.js +1 -1
  55. package/Libraries/Components/Touchable/TouchableWin32.js +1 -1
  56. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
  57. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
  58. package/Libraries/Components/View/View.js +81 -167
  59. package/Libraries/Components/View/View.win32.js +3 -1
  60. package/Libraries/Core/Devtools/loadBundleFromServer.js +1 -1
  61. package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +1 -1
  62. package/Libraries/Core/ExceptionsManager.js +4 -2
  63. package/Libraries/Core/ReactFiberErrorDialog.js +3 -3
  64. package/Libraries/Core/ReactNativeVersion.js +37 -10
  65. package/Libraries/Core/Timers/JSTimers.js +4 -1
  66. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  67. package/Libraries/Core/Timers/immediateShim.js +2 -1
  68. package/Libraries/Core/Timers/queueMicrotask.js +1 -0
  69. package/Libraries/Core/setUpPerformance.js +3 -4
  70. package/Libraries/Debugging/DebuggingOverlayRegistry.js +5 -3
  71. package/Libraries/Image/Image.android.js +327 -111
  72. package/Libraries/Image/Image.ios.js +6 -1
  73. package/Libraries/Image/Image.win32.js +6 -1
  74. package/Libraries/Image/ImageSourceUtils.js +8 -2
  75. package/Libraries/Image/assetPaths.js +1 -1
  76. package/Libraries/Image/resolveAssetSource.js +1 -1
  77. package/Libraries/Image/resolveAssetSource.win32.js +6 -7
  78. package/Libraries/Interaction/InteractionManager.js +118 -167
  79. package/Libraries/Interaction/PanResponder.js +7 -52
  80. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -0
  81. package/Libraries/Lists/FlatList.js +5 -6
  82. package/Libraries/LogBox/Data/LogBoxData.js +5 -2
  83. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  84. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +2 -2
  85. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -1
  86. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +1 -1
  87. package/Libraries/Modal/Modal.js +3 -3
  88. package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
  89. package/Libraries/NativeComponent/ViewConfig.js +2 -2
  90. package/Libraries/Network/RCTNetworking.android.js +1 -1
  91. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  92. package/Libraries/Network/RCTNetworking.win32.js +1 -1
  93. package/Libraries/Network/XMLHttpRequest.js +20 -5
  94. package/Libraries/Network/convertRequestBody.js +1 -1
  95. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +10 -9
  96. package/Libraries/Pressability/HoverState.js +2 -0
  97. package/Libraries/Pressability/HoverState.win32.js +2 -0
  98. package/Libraries/Pressability/Pressability.js +1 -1
  99. package/Libraries/Pressability/Pressability.win32.js +1 -1
  100. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
  101. package/Libraries/ReactNative/AppRegistryImpl.js +4 -2
  102. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -0
  103. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +3 -3
  104. package/Libraries/ReactNative/RendererImplementation.js +116 -116
  105. package/Libraries/ReactNative/UIManager.js +3 -3
  106. package/Libraries/ReactNative/renderApplication.js +1 -0
  107. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -1
  108. package/Libraries/Renderer/implementations/ReactFabric-dev.js +38 -35
  109. package/Libraries/Renderer/implementations/ReactFabric-prod.js +51 -22
  110. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +54 -24
  111. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +36 -33
  112. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +5 -5
  113. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +5 -5
  114. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
  115. package/Libraries/Share/Share.js +4 -0
  116. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
  117. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +2 -2
  118. package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +4 -0
  119. package/Libraries/StyleSheet/StyleSheet.d.ts +7 -22
  120. package/Libraries/StyleSheet/StyleSheetExports.js +2 -8
  121. package/Libraries/StyleSheet/StyleSheetExports.js.flow +11 -18
  122. package/Libraries/StyleSheet/flattenStyle.js +2 -2
  123. package/Libraries/StyleSheet/processAspectRatio.js +2 -0
  124. package/Libraries/StyleSheet/processFilter.js +5 -5
  125. package/Libraries/StyleSheet/splitLayoutProps.js +2 -2
  126. package/Libraries/Text/Text.js +534 -234
  127. package/Libraries/Text/Text.win32.js +647 -274
  128. package/Libraries/Text/TextNativeComponent.js +2 -2
  129. package/Libraries/Text/TextNativeComponent.win32.js +2 -2
  130. package/Libraries/Utilities/Appearance.d.ts +3 -5
  131. package/Libraries/Utilities/Appearance.js +5 -17
  132. package/Libraries/Utilities/HMRClient.js +2 -1
  133. package/Libraries/Utilities/Platform.android.js +3 -3
  134. package/Libraries/Utilities/Platform.d.ts +1 -0
  135. package/Libraries/Utilities/Platform.ios.js +1 -1
  136. package/Libraries/Utilities/Platform.win32.js +3 -3
  137. package/Libraries/Utilities/PlatformTypes.js +1 -1
  138. package/Libraries/Utilities/ReactNativeTestTools.js +12 -0
  139. package/Libraries/Utilities/SceneTracker.js +1 -1
  140. package/Libraries/Utilities/codegenNativeCommands.js +1 -1
  141. package/Libraries/Utilities/codegenNativeComponent.js +1 -1
  142. package/Libraries/Utilities/createPerformanceLogger.js +32 -0
  143. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +2 -0
  144. package/Libraries/Utilities/differ/pointsDiffer.js +1 -1
  145. package/Libraries/Utilities/useMergeRefs.js +1 -1
  146. package/Libraries/WebSocket/WebSocketInterceptor.js +2 -0
  147. package/Libraries/promiseRejectionTrackingOptions.js +17 -31
  148. package/Libraries/vendor/emitter/EventEmitter.js +1 -1
  149. package/flow/bom.js.flow +223 -1
  150. package/flow/prettier.js.flow +14 -0
  151. package/index.js +14 -2
  152. package/index.win32.js +16 -2
  153. package/jest/local-setup.js +2 -2
  154. package/jest/mock.js +1 -1
  155. package/jest/mockComponent.js +9 -9
  156. package/jest/mockNativeComponent.js +3 -2
  157. package/jest/mocks/Modal.js +1 -1
  158. package/jest/mocks/ScrollView.js +1 -1
  159. package/jest/mocks/ViewNativeComponent.js +1 -1
  160. package/jest/setup.js +23 -12
  161. package/overrides.json +23 -23
  162. package/package.json +28 -27
  163. package/saveAssetPlugin.js +2 -2
  164. package/src/private/animated/NativeAnimatedHelper.js +16 -5
  165. package/src/private/animated/NativeAnimatedHelper.win32.js +16 -5
  166. package/src/private/animated/createAnimatedPropsHook.js +11 -60
  167. package/src/private/animated/createAnimatedPropsMemoHook.js +8 -54
  168. package/src/private/components/virtualview/VirtualView.js +43 -12
  169. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +93 -0
  170. package/src/private/components/virtualview/VirtualViewNativeComponent.js +6 -0
  171. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +2 -2
  172. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -2
  173. package/src/private/featureflags/ReactNativeFeatureFlags.js +85 -52
  174. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +23 -4
  175. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +15 -6
  176. package/src/private/renderer/errorhandling/ErrorHandlers.js +3 -3
  177. package/src/private/setup/{setUpPerformanceObserver.js → setUpPerformanceModern.js} +43 -18
  178. package/src/private/specs_DEPRECATED/modules/NativeTiming.js +1 -0
  179. package/src/private/types/HostInstance.js +4 -1
  180. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +22 -2
  181. package/src/private/webapis/dom/nodes/ReactNativeElement.js +1 -1
  182. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +5 -3
  183. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +16 -13
  184. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +45 -22
  185. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  186. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +26 -192
  187. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +15 -12
  188. package/src/private/webapis/dom/oldstylecollections/NodeList.js +14 -11
  189. package/src/private/webapis/geometry/DOMRectList.js +2 -2
  190. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +19 -74
  191. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +0 -4
  192. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
  193. package/src/private/webapis/performance/EventTiming.js +40 -25
  194. package/src/private/webapis/performance/LongTasks.js +35 -2
  195. package/src/private/webapis/performance/Performance.js +347 -166
  196. package/src/private/webapis/performance/PerformanceEntry.js +40 -23
  197. package/src/private/webapis/performance/PerformanceObserver.js +37 -29
  198. package/src/private/webapis/performance/ReactNativeStartupTiming.js +3 -24
  199. package/src/private/webapis/performance/ResourceTiming.js +29 -18
  200. package/src/private/webapis/performance/UserTiming.js +92 -34
  201. package/src/private/webapis/performance/UserTimingExtensibility.js.flow +38 -0
  202. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +3 -4
  203. package/src/private/webapis/performance/internals/Utilities.js +9 -0
  204. package/src/private/webapis/performance/specs/NativePerformance.js +23 -23
  205. package/src/private/webapis/structuredClone/structuredClone.js +10 -10
  206. package/src-win/Libraries/Components/Touchable/TouchableWin32.tsx +1 -1
  207. package/Libraries/Interaction/InteractionManagerStub.js +0 -184
  208. package/Libraries/Interaction/TaskQueue.js +0 -183
  209. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -31
@@ -508,7 +508,7 @@ function InternalTextInput(props: TextInputProps): React.Node {
508
508
  [mostRecentEventCount, viewCommands],
509
509
  );
510
510
 
511
- // $FlowExpectedError[incompatible-call]
511
+ // $FlowExpectedError[incompatible-type]
512
512
  const ref = useMergeRefs<HostInstance>(setLocalRef, props.forwardedRef);
513
513
 
514
514
  const _onChange = (event: TextInputChangeEvent) => {
@@ -755,7 +755,7 @@ function InternalTextInput(props: TextInputProps): React.Node {
755
755
  if (typeof flattenedStyle?.fontWeight === 'number') {
756
756
  overrides = overrides || ({}: {...TextStyleInternal});
757
757
  overrides.fontWeight =
758
- // $FlowFixMe[incompatible-cast]
758
+ // $FlowFixMe[incompatible-type]
759
759
  (flattenedStyle.fontWeight.toString(): TextStyleInternal['fontWeight']);
760
760
  }
761
761
 
@@ -785,6 +785,9 @@ function InternalTextInput(props: TextInputProps): React.Node {
785
785
  flattenedStyle.paddingVertical == null &&
786
786
  flattenedStyle.paddingTop == null));
787
787
 
788
+ const _accessibilityElementsHidden =
789
+ props['aria-hidden'] ?? props.accessibilityElementsHidden;
790
+
788
791
  textInput = (
789
792
  <RCTTextInputView
790
793
  // Figure out imperative + forward refs.
@@ -793,8 +796,8 @@ function InternalTextInput(props: TextInputProps): React.Node {
793
796
  {...eventHandlers}
794
797
  acceptDragAndDropTypes={props.experimental_acceptDragAndDropTypes}
795
798
  accessibilityLabel={_accessibilityLabel}
796
- accessibilityErrorMessage={accessibilityErrorMessage}
797
799
  accessibilityState={_accessibilityState}
800
+ accessibilityElementsHidden={_accessibilityElementsHidden}
798
801
  accessible={accessible}
799
802
  submitBehavior={submitBehavior}
800
803
  caretHidden={caretHidden}
@@ -823,6 +826,10 @@ function InternalTextInput(props: TextInputProps): React.Node {
823
826
  const autoCapitalize = props.autoCapitalize || 'sentences';
824
827
  const _accessibilityLabelledBy =
825
828
  props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy;
829
+ const _importantForAccessibility =
830
+ props['aria-hidden'] === true
831
+ ? ('no-hide-descendants' as const)
832
+ : undefined;
826
833
  const placeholder = props.placeholder ?? '';
827
834
  let children = props.children;
828
835
  const childCount = React.Children.count(children);
@@ -858,9 +865,8 @@ function InternalTextInput(props: TextInputProps): React.Node {
858
865
  {...colorProps}
859
866
  {...eventHandlers}
860
867
  accessibilityLabel={_accessibilityLabel}
861
- accessibilityErrorMessage={accessibilityErrorMessage}
862
- accessibilityState={_accessibilityState}
863
868
  accessibilityLabelledBy={_accessibilityLabelledBy}
869
+ accessibilityState={_accessibilityState}
864
870
  accessible={accessible}
865
871
  acceptDragAndDropTypes={props.experimental_acceptDragAndDropTypes}
866
872
  autoCapitalize={autoCapitalize}
@@ -869,6 +875,7 @@ function InternalTextInput(props: TextInputProps): React.Node {
869
875
  children={children}
870
876
  disableFullscreenUI={props.disableFullscreenUI}
871
877
  focusable={tabIndex !== undefined ? !tabIndex : focusable}
878
+ importantForAccessibility={_importantForAccessibility}
872
879
  mostRecentEventCount={mostRecentEventCount}
873
880
  nativeID={id ?? props.nativeID}
874
881
  numberOfLines={props.rows ?? props.numberOfLines}
@@ -878,7 +885,7 @@ function InternalTextInput(props: TextInputProps): React.Node {
878
885
  /* $FlowFixMe[prop-missing] the types for AndroidTextInput don't match
879
886
  * up exactly with the props for TextInput. This will need to get fixed
880
887
  */
881
- /* $FlowFixMe[incompatible-type-arg] the types for AndroidTextInput
888
+ /* $FlowFixMe[incompatible-type] the types for AndroidTextInput
882
889
  * don't match up exactly with the props for TextInput. This will need
883
890
  * to get fixed */
884
891
  onScroll={_onScroll}
@@ -1056,7 +1063,8 @@ const TextInput: component(
1056
1063
  }
1057
1064
  autoComplete={
1058
1065
  Platform.OS === 'android'
1059
- ? // $FlowFixMe
1066
+ ? // $FlowFixMe[invalid-computed-prop]
1067
+ // $FlowFixMe[prop-missing]
1060
1068
  autoCompleteWebToAutoCompleteAndroidMap[autoComplete] ??
1061
1069
  autoComplete
1062
1070
  : undefined
@@ -88,7 +88,7 @@ function focusTextInput(textField: ?HostInstance) {
88
88
  if (textField != null) {
89
89
  const fieldCanBeFocused =
90
90
  currentlyFocusedInputRef !== textField &&
91
- // $FlowFixMe - `currentProps` is missing in `NativeMethods`
91
+ // $FlowFixMe[prop-missing] - `currentProps` is missing in `NativeMethods`
92
92
  textField.currentProps?.editable !== false;
93
93
 
94
94
  if (!fieldCanBeFocused) {
@@ -98,7 +98,7 @@ function focusTextInput(textField: ?HostInstance) {
98
98
  } else if (textField != null) {
99
99
  const fieldCanBeFocused =
100
100
  currentlyFocusedInputRef !== textField &&
101
- // $FlowFixMe - `currentProps` is missing in `NativeMethods`
101
+ // $FlowFixMe[prop-missing] - `currentProps` is missing in `NativeMethods`
102
102
  textField.currentProps?.editable !== false;
103
103
 
104
104
  if (!fieldCanBeFocused) {
@@ -9,8 +9,7 @@ import requireNativeComponent from '../../ReactNative/requireNativeComponent';
9
9
  import codegenNativeCommands from '../../Utilities/codegenNativeCommands';
10
10
  import type {TextInputNativeCommands} from './TextInputNativeCommands';
11
11
 
12
- // $FlowFixMe[incompatible-type-arg]
13
- type NativeType = HostComponent<mixed>;
12
+ type NativeType = HostComponent<{...}>;
14
13
 
15
14
  type NativeCommands = TextInputNativeCommands<NativeType>;
16
15
 
@@ -20,7 +19,7 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
20
19
 
21
20
  const WindowsTextInputComponent: NativeType =
22
21
  // $FlowFixMe[incompatible-call]
23
- requireNativeComponent<mixed>('RCTTextInput');
22
+ requireNativeComponent<{...}>('RCTTextInput');
24
23
 
25
24
  export default WindowsTextInputComponent;
26
25
  // [Windows]
@@ -138,7 +138,7 @@ class TouchableBounce extends React.Component<
138
138
  const accessibilityLiveRegion =
139
139
  this.props['aria-live'] === 'off'
140
140
  ? 'none'
141
- : this.props['aria-live'] ?? this.props.accessibilityLiveRegion;
141
+ : (this.props['aria-live'] ?? this.props.accessibilityLiveRegion);
142
142
  const _accessibilityState = {
143
143
  busy: this.props['aria-busy'] ?? this.props.accessibilityState?.busy,
144
144
  checked:
@@ -328,7 +328,7 @@ class TouchableHighlightImpl extends React.Component<
328
328
  const accessibilityLiveRegion =
329
329
  this.props['aria-live'] === 'off'
330
330
  ? 'none'
331
- : this.props['aria-live'] ?? this.props.accessibilityLiveRegion;
331
+ : (this.props['aria-live'] ?? this.props.accessibilityLiveRegion);
332
332
 
333
333
  const accessibilityLabel =
334
334
  this.props['aria-label'] ?? this.props.accessibilityLabel;
@@ -332,7 +332,7 @@ class TouchableNativeFeedback extends React.Component<
332
332
  const accessibilityLiveRegion =
333
333
  this.props['aria-live'] === 'off'
334
334
  ? 'none'
335
- : this.props['aria-live'] ?? this.props.accessibilityLiveRegion;
335
+ : (this.props['aria-live'] ?? this.props.accessibilityLiveRegion);
336
336
 
337
337
  const accessibilityLabel =
338
338
  this.props['aria-label'] ?? this.props.accessibilityLabel;
@@ -294,7 +294,7 @@ class TouchableOpacity extends React.Component<
294
294
  const accessibilityLiveRegion =
295
295
  this.props['aria-live'] === 'off'
296
296
  ? 'none'
297
- : this.props['aria-live'] ?? this.props.accessibilityLiveRegion;
297
+ : (this.props['aria-live'] ?? this.props.accessibilityLiveRegion);
298
298
 
299
299
  const accessibilityLabel =
300
300
  this.props['aria-label'] ?? this.props.accessibilityLabel;
@@ -18,7 +18,7 @@ const react_1 = __importDefault(require("react"));
18
18
  const react_native_1 = require("react-native");
19
19
  const BoundingDimensions = require('./BoundingDimensions');
20
20
  const Position = require('./Position');
21
- const { findNodeHandle } = require('../../ReactNative/RendererProxy');
21
+ const { findNodeHandle } = require('../../Renderer/shims/ReactNative');
22
22
  /**
23
23
  * Extracts a single touch, generally this is the active touch or touch that
24
24
  * has just ended
@@ -1 +1 @@
1
- {"version":3,"file":"TouchableWin32.js","sourceRoot":"","sources":["../../../src-win/Libraries/Components/Touchable/TouchableWin32.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * This is primarily a fork of React Native's Touchable Mixin.\n * It has been repurposed as it's own standalone control for win32,\n * as it needs to support a richer set of functionality on the desktop.\n * The touchable variants can be rewritten as wrappers around TouchableWin32\n * by passing the correct set of props down and managing state correctly.\n *\n * React Native's Touchable.js file (https://github.com/facebook/react-native/blob/master/Libraries/Components/Touchable/Touchable.js)\n * provides an overview over how touchables work and interact with the gesture responder system.\n */\n'use strict';\n\nimport React from 'react'\nimport { NativeSyntheticEvent, StyleProp, UIManager, ViewStyle, ViewWin32 } from 'react-native';\n\nimport { ITouchableWin32Props, ITouchableWin32State } from './TouchableWin32.Props';\nimport {\n IChildAsFunction,\n IDimensions,\n IPosition,\n IPressEvent,\n IPressInLocation,\n ISignal,\n IState,\n IStateConditions,\n ITransitions,\n} from './TouchableWin32.Types';\nimport { IKeyboardEvent } from '../View/ViewPropTypes';\n\nconst BoundingDimensions = require('./BoundingDimensions');\nconst Position = require('./Position');\n\nconst {findNodeHandle} = require('../../ReactNative/RendererProxy');\n\n/**\n * Extracts a single touch, generally this is the active touch or touch that\n * has just ended\n * @param e - a press event containing information about the native event\n */\nfunction extractSingleTouch(e: IPressEvent) {\n const nativeEvent = e.nativeEvent;\n const touches = nativeEvent.touches;\n const changedTouches = nativeEvent.changedTouches;\n const hasTouches = touches && touches.length > 0;\n const hasChangedTouches = changedTouches && changedTouches.length > 0;\n\n return !hasTouches && hasChangedTouches ? changedTouches[0] : hasTouches ? touches[0] : nativeEvent;\n}\n\n/** Quick lookup maps for a variety of conditions */\nconst baseStatesCondition: IStateConditions = {\n NOT_RESPONDER: false,\n RESPONDER_INACTIVE_PRESS_IN: false,\n RESPONDER_INACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_PRESS_IN: false,\n RESPONDER_ACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_LONG_PRESS_IN: false,\n RESPONDER_ACTIVE_LONG_PRESS_OUT: false,\n ERROR: false,\n};\n\nconst IsActive: IStateConditions = {\n ...baseStatesCondition,\n RESPONDER_ACTIVE_PRESS_OUT: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n};\n\nconst IsPressingIn: IStateConditions = {\n ...baseStatesCondition,\n RESPONDER_INACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true,\n};\n\nconst IsLongPressingIn: IStateConditions = {\n ...baseStatesCondition,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true,\n};\n\nconst transitions: ITransitions = {\n NOT_RESPONDER: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',\n RESPONDER_RELEASE: 'ERROR',\n RESPONDER_TERMINATED: 'ERROR',\n ENTER_PRESS_RECT: 'ERROR',\n LEAVE_PRESS_RECT: 'ERROR',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: 'RESPONDER_ACTIVE_PRESS_IN',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: 'RESPONDER_ACTIVE_PRESS_OUT',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n ERROR: {\n DELAY: 'NOT_RESPONDER',\n RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'NOT_RESPONDER',\n LEAVE_PRESS_RECT: 'NOT_RESPONDER',\n LONG_PRESS_DETECTED: 'NOT_RESPONDER',\n },\n};\n\n// Touchable maintains additional internal state to manage keypress interactions\n// This information is abstracted away when passed to children off the touchable\n// (function children) or styles. A keypressed state is equivalent to a normal\n// press state. If either a pointer, mouse, or special key (space/enter) is pressed\n// the touchable considers itself to be in a pressed state. Do note that key presses\n// will not invoke gesture responder hooks and are not subject to the passed in delays.\ninterface IInternalTouchableWin32State extends ITouchableWin32State {\n isKeyPressed: boolean;\n}\n\n/** Constants for integrating into UI Components */\nconst HIGHLIGHT_DELAY_MS = 130;\nconst PRESS_EXPAND_DIPS = 20; // Subject to change for win32 and desktop\nconst LONG_PRESS_THRESHOLD = 500;\nconst LONG_PRESS_DELAY_MS = LONG_PRESS_THRESHOLD - HIGHLIGHT_DELAY_MS;\nconst LONG_PRESS_ALLOWED_MOVEMENT = 10;\n\n/**\n * TouchableWin32 is a 'componentization' of the Touchable Mixin in React Native.\n * This means that instead of implementing components such as TouchableHighlight\n * via the mixin, they are merely implemented as wrappers around TouchableWin32,\n * forwarding the correct set of props. Additionally, TouchableWin32 supports hover\n * via onMouseEnter and onMouseLeave and focus/blur via onFocus/onBlur.\n * TouchableWin32 also allows for functions as child components (that use the internal\n * state of the touchable to conditionally render children) as well functions as styles\n * (that use internal state to conditionally calculate styles)\n */\nexport class TouchableWin32 extends React.Component<ITouchableWin32Props, IInternalTouchableWin32State> {\n private _longPressDelayTimeout: NodeJS.Timeout;\n private _touchableDelayTimeout: NodeJS.Timeout;\n private _pressOutDelayTimeout: NodeJS.Timeout;\n private _pressInLocation: IPressInLocation;\n private _touchState: IState;\n private _responderID: number;\n private _positionOnActivate: IPosition;\n private _dimensionsOnActivate: IDimensions;\n\n private readonly _internalRef: React.RefObject<ViewWin32>\n\n constructor(props) {\n super(props);\n\n this.state = {\n isKeyPressed: false,\n isPressed: false,\n isFocused: false,\n isHovered: false,\n };\n\n this._internalRef = React.createRef<ViewWin32>();\n }\n\n public componentWillUnmount() {\n this._touchableDelayTimeout && clearTimeout(this._touchableDelayTimeout);\n this._longPressDelayTimeout && clearTimeout(this._longPressDelayTimeout);\n this._pressOutDelayTimeout && clearTimeout(this._pressOutDelayTimeout);\n }\n\n public render() {\n const { children, style, renderStyle, ...rest } = this.props;\n\n // The React Native touchables generally clone the child component\n // to apply additional styles to it. This approach allows children\n // to be passed in as functions (to be invoked with the current state),\n // it is handy for manipulating children as a result of the interaction\n // state (e.g. text color). A similar approach is taken for style\n let child: React.ReactNode;\n if (children) {\n child = typeof children === 'function' ?\n (children as IChildAsFunction<ITouchableWin32State>)(this._deriveStateFromInternalState()) : children;\n\n // Continue to enforce single child constraint\n child = React.Children.only(child);\n }\n\n let computedStyle: StyleProp<ViewStyle>;\n if (renderStyle) {\n computedStyle = renderStyle(this._deriveStateFromInternalState());\n } else if (style) {\n computedStyle = style;\n }\n\n return (\n <ViewWin32\n // Forward most of the props\n {...rest}\n // Hooks into Gesture Responder System\n onStartShouldSetResponder={this._touchableHandleStartShouldSetResponder}\n onResponderTerminationRequest={this._touchableHandleResponderTerminationRequest}\n onResponderGrant={this._touchableHandleResponderGrant}\n onResponderMove={this._touchableHandleResponderMove}\n onResponderRelease={this._touchableHandleResponderRelease}\n onResponderTerminate={this._touchableHandleResponderTerminate}\n // Hover\n onMouseEnter={this._onMouseEnter}\n onMouseLeave={this._onMouseLeave}\n // Focus\n onFocus={this._onFocus}\n onBlur={this._onBlur}\n // Key press interactions\n onKeyDown={this._onKeyDown}\n onKeyUp={this._onKeyUp}\n // Ref\n ref={this._internalRef}\n // Style\n style={computedStyle}\n >\n {child}\n </ViewWin32>\n );\n }\n\n public focus = () => {\n this._internalRef.current.focus();\n }\n\n /**\n * The rejectResponderTermination prop provides a way to accept/reject termination requests\n */\n private readonly _touchableHandleResponderTerminationRequest = (): boolean => {\n return !this.props.rejectResponderTermination;\n };\n\n /**\n * Only reject an opportunity to become the responder on bubble if disabled\n */\n private readonly _touchableHandleStartShouldSetResponder = (): boolean => {\n return !this.props.disabled;\n };\n\n /** TODO: Long press cancel as a prop may be a good idea */\n private readonly _touchableLongPressCancelsPress = (): boolean => {\n return true;\n };\n\n /**\n * On responder being granted, state and local data need to be set\n */\n private readonly _touchableHandleResponderGrant = (e: IPressEvent): void => {\n const dispatchID = findNodeHandle(e.currentTarget);\n e.persist();\n\n this._pressOutDelayTimeout && clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n\n this._touchState = 'NOT_RESPONDER';\n this._responderID = dispatchID;\n\n this._receiveSignal('RESPONDER_GRANT', e);\n let delayMS: number = this.props.touchableGetHighlightDelayMS\n ? Math.max(this.props.touchableGetHighlightDelayMS(), 0)\n : HIGHLIGHT_DELAY_MS;\n delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;\n\n if (delayMS !== 0) {\n this._touchableDelayTimeout = setTimeout(this._handleDelay.bind(this, e), delayMS);\n } else {\n this._handleDelay(e);\n }\n\n let longDelayMS: number = this.props.touchableGetLongPressDelayMS\n ? Math.max(this.props.touchableGetLongPressDelayMS(), 10)\n : LONG_PRESS_DELAY_MS;\n longDelayMS = isNaN(longDelayMS) ? LONG_PRESS_DELAY_MS : longDelayMS;\n this._longPressDelayTimeout = setTimeout(this._handleLongDelay.bind(this, e), longDelayMS + delayMS);\n };\n\n /**\n * Handle responder release\n */\n private readonly _touchableHandleResponderRelease = (e: IPressEvent) => {\n this._pressInLocation = null;\n this._receiveSignal('RESPONDER_RELEASE', e);\n };\n\n /**\n * Handle responder terminate\n */\n private readonly _touchableHandleResponderTerminate = (e: IPressEvent) => {\n this._pressInLocation = null;\n this._receiveSignal('RESPONDER_TERMINATED', e);\n };\n\n /**\n * Handles move events\n */\n private readonly _touchableHandleResponderMove = (e: IPressEvent) => {\n if (!this._positionOnActivate) {\n return;\n }\n\n const positionOnActivate = this._positionOnActivate;\n const dimensionsOnActivate = this._dimensionsOnActivate;\n const pressRectOffset = this.props.touchableGetPressRectOffset\n ? this.props.touchableGetPressRectOffset()\n : {\n left: PRESS_EXPAND_DIPS,\n right: PRESS_EXPAND_DIPS,\n top: PRESS_EXPAND_DIPS,\n bottom: PRESS_EXPAND_DIPS,\n };\n\n let pressExpandLeft = pressRectOffset.left;\n let pressExpandTop = pressRectOffset.top;\n let pressExpandRight = pressRectOffset.right;\n let pressExpandBottom = pressRectOffset.bottom;\n\n // TODO implement touchableGetHitSlop natively\n const hitSlop = this.props.touchableGetHitSlop ? this.props.touchableGetHitSlop() : null;\n\n if (hitSlop) {\n pressExpandLeft += hitSlop.left || 0;\n pressExpandTop += hitSlop.top || 0;\n pressExpandRight += hitSlop.right || 0;\n pressExpandBottom += hitSlop.bottom || 0;\n }\n\n const touch = extractSingleTouch(e);\n const pageX = touch && touch.pageX;\n const pageY = touch && touch.pageY;\n\n if (this._pressInLocation) {\n const movedDistance = this._getDistanceBetweenPoints(pageX, pageY, this._pressInLocation.pageX, this._pressInLocation.pageY);\n if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {\n this._cancelLongPressDelayTimeout();\n }\n }\n\n const isTouchWithinActive =\n pageX > positionOnActivate.left - pressExpandLeft &&\n pageY > positionOnActivate.top - pressExpandTop &&\n pageX < positionOnActivate.left + dimensionsOnActivate.width + pressExpandRight &&\n pageY < positionOnActivate.top + dimensionsOnActivate.height + pressExpandBottom;\n if (isTouchWithinActive) {\n const prevState = this._touchState;\n this._receiveSignal('ENTER_PRESS_RECT', e);\n const currState = this._touchState;\n if (currState === 'RESPONDER_INACTIVE_PRESS_IN' && prevState !== 'RESPONDER_INACTIVE_PRESS_IN') {\n this._cancelLongPressDelayTimeout();\n }\n } else {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal('LEAVE_PRESS_RECT', e);\n }\n };\n\n /**\n * Used while performing side effects during state transitions,\n * to maintain proper bounding dimensions and positional information\n */\n private readonly _remeasureMetricsOnActivation = () => {\n const tag = this._responderID;\n if (tag === null) {\n return;\n }\n\n UIManager.measure(tag, this._handleQueryLayout);\n };\n\n /**\n * Callback into measure, see _remeasureMetricsOnActivation\n */\n private readonly _handleQueryLayout = (l: number, t: number, w: number, h: number, globalX: number, globalY: number) => {\n if (!l && !t && !w && !h && !globalX && !globalY) {\n return;\n }\n\n this._positionOnActivate = Position.getPooled(globalX, globalY);\n this._dimensionsOnActivate = BoundingDimensions.getPooled(w, h);\n };\n\n private readonly _handleDelay = (e: IPressEvent) => {\n this._touchableDelayTimeout = null;\n this._receiveSignal('DELAY', e);\n };\n\n private readonly _handleLongDelay = (e: IPressEvent) => {\n this._longPressDelayTimeout = null;\n const currState = this._touchState;\n\n if (currState !== 'RESPONDER_ACTIVE_PRESS_IN' && currState !== 'RESPONDER_ACTIVE_LONG_PRESS_IN') {\n const errorMessage =\n 'Attempted to transition from state ' +\n currState +\n ' to ' +\n 'RESPONDER_ACTIVE_LONG_PRESS_IN ' +\n 'which is not supported. This is most likely due to ' +\n 'Touchable.longPressDelayTimeout not being canceled.';\n console.error(errorMessage);\n } else {\n this._receiveSignal('LONG_PRESS_DETECTED', e);\n }\n };\n\n /**\n * Manages state transitions\n */\n private readonly _receiveSignal = (signal: ISignal, e: IPressEvent) => {\n const responderID = this._responderID;\n const currState = this._touchState;\n const nextState: IState = transitions[currState] ? transitions[currState][signal] : null;\n\n if (!nextState) {\n const errorMessage = 'Unrecognized signal ' + signal + ' or state ' + currState + ' for Touchable responder ' + responderID + '.';\n throw new Error(errorMessage);\n }\n if (nextState === 'ERROR') {\n const errorMessage = 'Touchable cannot transition from ' + currState + ' to ' + signal + ' for responder ' + responderID + '.';\n throw new Error(errorMessage);\n }\n\n if (currState !== nextState) {\n this._performSideEffectsForTransition(currState, nextState, signal, e);\n this._touchState = nextState;\n }\n };\n\n private readonly _cancelLongPressDelayTimeout = () => {\n this._longPressDelayTimeout && clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n };\n\n private readonly _isHighlight = (state: IState) => {\n return state === 'RESPONDER_ACTIVE_PRESS_IN' || state === 'RESPONDER_ACTIVE_LONG_PRESS_IN';\n };\n\n private readonly _savePressInLocation = (e: IPressEvent) => {\n const touch = extractSingleTouch(e);\n const pageX = touch && touch.pageX;\n const pageY = touch && touch.pageY;\n const locationX = touch && touch.locationX;\n const locationY = touch && touch.locationY;\n this._pressInLocation = { pageX, pageY, locationX, locationY };\n };\n\n private readonly _getDistanceBetweenPoints = (aX: number, aY: number, bX: number, bY: number): number => {\n const deltaX = aX - bX;\n const deltaY = aY - bY;\n return Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n };\n\n /**\n * Any highlighting/visual effects is done here,\n * This is also where press callbacks are invoked from\n */\n // Existing high cyclomatic complexity\n \n private readonly _performSideEffectsForTransition = (currState: IState, nextState: IState, signal: ISignal, e: IPressEvent) => {\n const currIsHighlight = this._isHighlight(currState);\n const newIsHighlight = this._isHighlight(nextState);\n\n const isFinalSignal = signal === 'RESPONDER_TERMINATED' || signal === 'RESPONDER_RELEASE';\n\n if (isFinalSignal) {\n this._cancelLongPressDelayTimeout();\n }\n\n const isInitialTransition = currState === 'NOT_RESPONDER' && nextState === 'RESPONDER_INACTIVE_PRESS_IN';\n\n const isActiveTransition = !IsActive[currState] && IsActive[nextState];\n if (isInitialTransition || isActiveTransition) {\n this._remeasureMetricsOnActivation();\n }\n\n if (IsPressingIn[currState] && signal === 'LONG_PRESS_DETECTED') {\n this.props.touchableHandleLongPress && this.props.touchableHandleLongPress(e);\n }\n\n if (newIsHighlight && !currIsHighlight) {\n this._startHighlight(e);\n } else if (!newIsHighlight && currIsHighlight) {\n this._endHighlight(e);\n }\n\n if (IsPressingIn[currState] && signal === 'RESPONDER_RELEASE') {\n const hasLongPressHandler = !!this.props.onLongPress;\n const pressIsLongButStillCallOnPress = IsLongPressingIn[currState] && (!hasLongPressHandler || this._touchableLongPressCancelsPress);\n const shouldInvokePress = !IsLongPressingIn[currState] || pressIsLongButStillCallOnPress;\n\n if (shouldInvokePress && this.props.touchableHandlePress) {\n if (!newIsHighlight && !currIsHighlight) {\n // we never highlighted because of delay, but we should highlight now\n this._startHighlight(e);\n this._endHighlight(e);\n }\n\n this.props.touchableHandlePress(e);\n }\n }\n\n this._touchableDelayTimeout && clearTimeout(this._touchableDelayTimeout);\n this._touchableDelayTimeout = null;\n };\n\n private readonly _startHighlight = (e: IPressEvent) => {\n this._savePressInLocation(e);\n this.setState({ isPressed: true });\n this.props.touchableHandleActivePressIn && this.props.touchableHandleActivePressIn(e);\n };\n\n private readonly _endHighlight = (e: IPressEvent) => {\n function _handler() {\n this.props.touchableHandleActivePressOut(e);\n }\n\n this.setState({ isPressed: false });\n if (this.props.touchableHandleActivePressOut) {\n if (this.props.touchableGetPressOutDelayMS && this.props.touchableGetPressOutDelayMS()) {\n this._pressOutDelayTimeout = setTimeout(_handler.bind(this), this.props.touchableGetPressOutDelayMS());\n } else {\n this.props.touchableHandleActivePressOut(e);\n }\n }\n };\n\n private readonly _onMouseEnter = (mouseEvent) => {\n this.setState({ isHovered: true });\n this.props.onMouseEnter && this.props.onMouseEnter(mouseEvent);\n };\n\n private readonly _onMouseLeave = (mouseEvent) => {\n this.setState({ isHovered: false });\n this.props.onMouseLeave && this.props.onMouseLeave(mouseEvent);\n };\n\n private readonly _onFocus = (ev: NativeSyntheticEvent<{}>) => {\n this.setState({ isFocused: true });\n this.props.onFocus && this.props.onFocus(ev);\n };\n\n private readonly _onBlur = (ev: NativeSyntheticEvent<{}>) => {\n this.setState({ isFocused: false });\n this.props.onBlur && this.props.onBlur(ev);\n };\n\n private readonly _onKeyDown = (ev: IKeyboardEvent) => {\n if (this._filterOnKey(ev)) {\n this.setState({ isKeyPressed: true });\n this.props.touchableHandleKeyPressDown && this.props.touchableHandleKeyPressDown(ev);\n }\n\n this.props.onKeyDown && this.props.onKeyDown(ev);\n };\n\n private readonly _onKeyUp = (ev: IKeyboardEvent) => {\n if (this._filterOnKey(ev)) {\n this.setState({ isKeyPressed: false });\n this.props.touchableHandleKeyPress && this.props.touchableHandleKeyPress(ev);\n }\n\n this.props.onKeyUp && this.props.onKeyUp(ev);\n };\n\n private readonly _deriveStateFromInternalState = (): ITouchableWin32State => {\n return {\n isPressed: this.state.isPressed || this.state.isKeyPressed,\n isHovered: this.state.isHovered,\n isFocused: this.state.isFocused,\n };\n }\n\n private readonly _filterOnKey = (ev: IKeyboardEvent): boolean => {\n if (this.props.filterKeys) {\n return this.props.filterKeys(ev.nativeEvent.key);\n }\n\n // Otherwise fall back to handling space and enter only\n return ev.nativeEvent.key === ' ' || ev.nativeEvent.key === 'Enter';\n }\n}\n"]}
1
+ {"version":3,"file":"TouchableWin32.js","sourceRoot":"","sources":["../../../src-win/Libraries/Components/Touchable/TouchableWin32.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * This is primarily a fork of React Native's Touchable Mixin.\n * It has been repurposed as it's own standalone control for win32,\n * as it needs to support a richer set of functionality on the desktop.\n * The touchable variants can be rewritten as wrappers around TouchableWin32\n * by passing the correct set of props down and managing state correctly.\n *\n * React Native's Touchable.js file (https://github.com/facebook/react-native/blob/master/Libraries/Components/Touchable/Touchable.js)\n * provides an overview over how touchables work and interact with the gesture responder system.\n */\n'use strict';\n\nimport React from 'react'\nimport { NativeSyntheticEvent, StyleProp, UIManager, ViewStyle, ViewWin32 } from 'react-native';\n\nimport { ITouchableWin32Props, ITouchableWin32State } from './TouchableWin32.Props';\nimport {\n IChildAsFunction,\n IDimensions,\n IPosition,\n IPressEvent,\n IPressInLocation,\n ISignal,\n IState,\n IStateConditions,\n ITransitions,\n} from './TouchableWin32.Types';\nimport { IKeyboardEvent } from '../View/ViewPropTypes';\n\nconst BoundingDimensions = require('./BoundingDimensions');\nconst Position = require('./Position');\n\nconst {findNodeHandle} = require('../../Renderer/shims/ReactNative');\n\n/**\n * Extracts a single touch, generally this is the active touch or touch that\n * has just ended\n * @param e - a press event containing information about the native event\n */\nfunction extractSingleTouch(e: IPressEvent) {\n const nativeEvent = e.nativeEvent;\n const touches = nativeEvent.touches;\n const changedTouches = nativeEvent.changedTouches;\n const hasTouches = touches && touches.length > 0;\n const hasChangedTouches = changedTouches && changedTouches.length > 0;\n\n return !hasTouches && hasChangedTouches ? changedTouches[0] : hasTouches ? touches[0] : nativeEvent;\n}\n\n/** Quick lookup maps for a variety of conditions */\nconst baseStatesCondition: IStateConditions = {\n NOT_RESPONDER: false,\n RESPONDER_INACTIVE_PRESS_IN: false,\n RESPONDER_INACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_PRESS_IN: false,\n RESPONDER_ACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_LONG_PRESS_IN: false,\n RESPONDER_ACTIVE_LONG_PRESS_OUT: false,\n ERROR: false,\n};\n\nconst IsActive: IStateConditions = {\n ...baseStatesCondition,\n RESPONDER_ACTIVE_PRESS_OUT: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n};\n\nconst IsPressingIn: IStateConditions = {\n ...baseStatesCondition,\n RESPONDER_INACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true,\n};\n\nconst IsLongPressingIn: IStateConditions = {\n ...baseStatesCondition,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true,\n};\n\nconst transitions: ITransitions = {\n NOT_RESPONDER: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',\n RESPONDER_RELEASE: 'ERROR',\n RESPONDER_TERMINATED: 'ERROR',\n ENTER_PRESS_RECT: 'ERROR',\n LEAVE_PRESS_RECT: 'ERROR',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: 'RESPONDER_ACTIVE_PRESS_IN',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: 'RESPONDER_ACTIVE_PRESS_OUT',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n ERROR: {\n DELAY: 'NOT_RESPONDER',\n RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'NOT_RESPONDER',\n LEAVE_PRESS_RECT: 'NOT_RESPONDER',\n LONG_PRESS_DETECTED: 'NOT_RESPONDER',\n },\n};\n\n// Touchable maintains additional internal state to manage keypress interactions\n// This information is abstracted away when passed to children off the touchable\n// (function children) or styles. A keypressed state is equivalent to a normal\n// press state. If either a pointer, mouse, or special key (space/enter) is pressed\n// the touchable considers itself to be in a pressed state. Do note that key presses\n// will not invoke gesture responder hooks and are not subject to the passed in delays.\ninterface IInternalTouchableWin32State extends ITouchableWin32State {\n isKeyPressed: boolean;\n}\n\n/** Constants for integrating into UI Components */\nconst HIGHLIGHT_DELAY_MS = 130;\nconst PRESS_EXPAND_DIPS = 20; // Subject to change for win32 and desktop\nconst LONG_PRESS_THRESHOLD = 500;\nconst LONG_PRESS_DELAY_MS = LONG_PRESS_THRESHOLD - HIGHLIGHT_DELAY_MS;\nconst LONG_PRESS_ALLOWED_MOVEMENT = 10;\n\n/**\n * TouchableWin32 is a 'componentization' of the Touchable Mixin in React Native.\n * This means that instead of implementing components such as TouchableHighlight\n * via the mixin, they are merely implemented as wrappers around TouchableWin32,\n * forwarding the correct set of props. Additionally, TouchableWin32 supports hover\n * via onMouseEnter and onMouseLeave and focus/blur via onFocus/onBlur.\n * TouchableWin32 also allows for functions as child components (that use the internal\n * state of the touchable to conditionally render children) as well functions as styles\n * (that use internal state to conditionally calculate styles)\n */\nexport class TouchableWin32 extends React.Component<ITouchableWin32Props, IInternalTouchableWin32State> {\n private _longPressDelayTimeout: NodeJS.Timeout;\n private _touchableDelayTimeout: NodeJS.Timeout;\n private _pressOutDelayTimeout: NodeJS.Timeout;\n private _pressInLocation: IPressInLocation;\n private _touchState: IState;\n private _responderID: number;\n private _positionOnActivate: IPosition;\n private _dimensionsOnActivate: IDimensions;\n\n private readonly _internalRef: React.RefObject<ViewWin32>\n\n constructor(props) {\n super(props);\n\n this.state = {\n isKeyPressed: false,\n isPressed: false,\n isFocused: false,\n isHovered: false,\n };\n\n this._internalRef = React.createRef<ViewWin32>();\n }\n\n public componentWillUnmount() {\n this._touchableDelayTimeout && clearTimeout(this._touchableDelayTimeout);\n this._longPressDelayTimeout && clearTimeout(this._longPressDelayTimeout);\n this._pressOutDelayTimeout && clearTimeout(this._pressOutDelayTimeout);\n }\n\n public render() {\n const { children, style, renderStyle, ...rest } = this.props;\n\n // The React Native touchables generally clone the child component\n // to apply additional styles to it. This approach allows children\n // to be passed in as functions (to be invoked with the current state),\n // it is handy for manipulating children as a result of the interaction\n // state (e.g. text color). A similar approach is taken for style\n let child: React.ReactNode;\n if (children) {\n child = typeof children === 'function' ?\n (children as IChildAsFunction<ITouchableWin32State>)(this._deriveStateFromInternalState()) : children;\n\n // Continue to enforce single child constraint\n child = React.Children.only(child);\n }\n\n let computedStyle: StyleProp<ViewStyle>;\n if (renderStyle) {\n computedStyle = renderStyle(this._deriveStateFromInternalState());\n } else if (style) {\n computedStyle = style;\n }\n\n return (\n <ViewWin32\n // Forward most of the props\n {...rest}\n // Hooks into Gesture Responder System\n onStartShouldSetResponder={this._touchableHandleStartShouldSetResponder}\n onResponderTerminationRequest={this._touchableHandleResponderTerminationRequest}\n onResponderGrant={this._touchableHandleResponderGrant}\n onResponderMove={this._touchableHandleResponderMove}\n onResponderRelease={this._touchableHandleResponderRelease}\n onResponderTerminate={this._touchableHandleResponderTerminate}\n // Hover\n onMouseEnter={this._onMouseEnter}\n onMouseLeave={this._onMouseLeave}\n // Focus\n onFocus={this._onFocus}\n onBlur={this._onBlur}\n // Key press interactions\n onKeyDown={this._onKeyDown}\n onKeyUp={this._onKeyUp}\n // Ref\n ref={this._internalRef}\n // Style\n style={computedStyle}\n >\n {child}\n </ViewWin32>\n );\n }\n\n public focus = () => {\n this._internalRef.current.focus();\n }\n\n /**\n * The rejectResponderTermination prop provides a way to accept/reject termination requests\n */\n private readonly _touchableHandleResponderTerminationRequest = (): boolean => {\n return !this.props.rejectResponderTermination;\n };\n\n /**\n * Only reject an opportunity to become the responder on bubble if disabled\n */\n private readonly _touchableHandleStartShouldSetResponder = (): boolean => {\n return !this.props.disabled;\n };\n\n /** TODO: Long press cancel as a prop may be a good idea */\n private readonly _touchableLongPressCancelsPress = (): boolean => {\n return true;\n };\n\n /**\n * On responder being granted, state and local data need to be set\n */\n private readonly _touchableHandleResponderGrant = (e: IPressEvent): void => {\n const dispatchID = findNodeHandle(e.currentTarget);\n e.persist();\n\n this._pressOutDelayTimeout && clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n\n this._touchState = 'NOT_RESPONDER';\n this._responderID = dispatchID;\n\n this._receiveSignal('RESPONDER_GRANT', e);\n let delayMS: number = this.props.touchableGetHighlightDelayMS\n ? Math.max(this.props.touchableGetHighlightDelayMS(), 0)\n : HIGHLIGHT_DELAY_MS;\n delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;\n\n if (delayMS !== 0) {\n this._touchableDelayTimeout = setTimeout(this._handleDelay.bind(this, e), delayMS);\n } else {\n this._handleDelay(e);\n }\n\n let longDelayMS: number = this.props.touchableGetLongPressDelayMS\n ? Math.max(this.props.touchableGetLongPressDelayMS(), 10)\n : LONG_PRESS_DELAY_MS;\n longDelayMS = isNaN(longDelayMS) ? LONG_PRESS_DELAY_MS : longDelayMS;\n this._longPressDelayTimeout = setTimeout(this._handleLongDelay.bind(this, e), longDelayMS + delayMS);\n };\n\n /**\n * Handle responder release\n */\n private readonly _touchableHandleResponderRelease = (e: IPressEvent) => {\n this._pressInLocation = null;\n this._receiveSignal('RESPONDER_RELEASE', e);\n };\n\n /**\n * Handle responder terminate\n */\n private readonly _touchableHandleResponderTerminate = (e: IPressEvent) => {\n this._pressInLocation = null;\n this._receiveSignal('RESPONDER_TERMINATED', e);\n };\n\n /**\n * Handles move events\n */\n private readonly _touchableHandleResponderMove = (e: IPressEvent) => {\n if (!this._positionOnActivate) {\n return;\n }\n\n const positionOnActivate = this._positionOnActivate;\n const dimensionsOnActivate = this._dimensionsOnActivate;\n const pressRectOffset = this.props.touchableGetPressRectOffset\n ? this.props.touchableGetPressRectOffset()\n : {\n left: PRESS_EXPAND_DIPS,\n right: PRESS_EXPAND_DIPS,\n top: PRESS_EXPAND_DIPS,\n bottom: PRESS_EXPAND_DIPS,\n };\n\n let pressExpandLeft = pressRectOffset.left;\n let pressExpandTop = pressRectOffset.top;\n let pressExpandRight = pressRectOffset.right;\n let pressExpandBottom = pressRectOffset.bottom;\n\n // TODO implement touchableGetHitSlop natively\n const hitSlop = this.props.touchableGetHitSlop ? this.props.touchableGetHitSlop() : null;\n\n if (hitSlop) {\n pressExpandLeft += hitSlop.left || 0;\n pressExpandTop += hitSlop.top || 0;\n pressExpandRight += hitSlop.right || 0;\n pressExpandBottom += hitSlop.bottom || 0;\n }\n\n const touch = extractSingleTouch(e);\n const pageX = touch && touch.pageX;\n const pageY = touch && touch.pageY;\n\n if (this._pressInLocation) {\n const movedDistance = this._getDistanceBetweenPoints(pageX, pageY, this._pressInLocation.pageX, this._pressInLocation.pageY);\n if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {\n this._cancelLongPressDelayTimeout();\n }\n }\n\n const isTouchWithinActive =\n pageX > positionOnActivate.left - pressExpandLeft &&\n pageY > positionOnActivate.top - pressExpandTop &&\n pageX < positionOnActivate.left + dimensionsOnActivate.width + pressExpandRight &&\n pageY < positionOnActivate.top + dimensionsOnActivate.height + pressExpandBottom;\n if (isTouchWithinActive) {\n const prevState = this._touchState;\n this._receiveSignal('ENTER_PRESS_RECT', e);\n const currState = this._touchState;\n if (currState === 'RESPONDER_INACTIVE_PRESS_IN' && prevState !== 'RESPONDER_INACTIVE_PRESS_IN') {\n this._cancelLongPressDelayTimeout();\n }\n } else {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal('LEAVE_PRESS_RECT', e);\n }\n };\n\n /**\n * Used while performing side effects during state transitions,\n * to maintain proper bounding dimensions and positional information\n */\n private readonly _remeasureMetricsOnActivation = () => {\n const tag = this._responderID;\n if (tag === null) {\n return;\n }\n\n UIManager.measure(tag, this._handleQueryLayout);\n };\n\n /**\n * Callback into measure, see _remeasureMetricsOnActivation\n */\n private readonly _handleQueryLayout = (l: number, t: number, w: number, h: number, globalX: number, globalY: number) => {\n if (!l && !t && !w && !h && !globalX && !globalY) {\n return;\n }\n\n this._positionOnActivate = Position.getPooled(globalX, globalY);\n this._dimensionsOnActivate = BoundingDimensions.getPooled(w, h);\n };\n\n private readonly _handleDelay = (e: IPressEvent) => {\n this._touchableDelayTimeout = null;\n this._receiveSignal('DELAY', e);\n };\n\n private readonly _handleLongDelay = (e: IPressEvent) => {\n this._longPressDelayTimeout = null;\n const currState = this._touchState;\n\n if (currState !== 'RESPONDER_ACTIVE_PRESS_IN' && currState !== 'RESPONDER_ACTIVE_LONG_PRESS_IN') {\n const errorMessage =\n 'Attempted to transition from state ' +\n currState +\n ' to ' +\n 'RESPONDER_ACTIVE_LONG_PRESS_IN ' +\n 'which is not supported. This is most likely due to ' +\n 'Touchable.longPressDelayTimeout not being canceled.';\n console.error(errorMessage);\n } else {\n this._receiveSignal('LONG_PRESS_DETECTED', e);\n }\n };\n\n /**\n * Manages state transitions\n */\n private readonly _receiveSignal = (signal: ISignal, e: IPressEvent) => {\n const responderID = this._responderID;\n const currState = this._touchState;\n const nextState: IState = transitions[currState] ? transitions[currState][signal] : null;\n\n if (!nextState) {\n const errorMessage = 'Unrecognized signal ' + signal + ' or state ' + currState + ' for Touchable responder ' + responderID + '.';\n throw new Error(errorMessage);\n }\n if (nextState === 'ERROR') {\n const errorMessage = 'Touchable cannot transition from ' + currState + ' to ' + signal + ' for responder ' + responderID + '.';\n throw new Error(errorMessage);\n }\n\n if (currState !== nextState) {\n this._performSideEffectsForTransition(currState, nextState, signal, e);\n this._touchState = nextState;\n }\n };\n\n private readonly _cancelLongPressDelayTimeout = () => {\n this._longPressDelayTimeout && clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n };\n\n private readonly _isHighlight = (state: IState) => {\n return state === 'RESPONDER_ACTIVE_PRESS_IN' || state === 'RESPONDER_ACTIVE_LONG_PRESS_IN';\n };\n\n private readonly _savePressInLocation = (e: IPressEvent) => {\n const touch = extractSingleTouch(e);\n const pageX = touch && touch.pageX;\n const pageY = touch && touch.pageY;\n const locationX = touch && touch.locationX;\n const locationY = touch && touch.locationY;\n this._pressInLocation = { pageX, pageY, locationX, locationY };\n };\n\n private readonly _getDistanceBetweenPoints = (aX: number, aY: number, bX: number, bY: number): number => {\n const deltaX = aX - bX;\n const deltaY = aY - bY;\n return Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n };\n\n /**\n * Any highlighting/visual effects is done here,\n * This is also where press callbacks are invoked from\n */\n // Existing high cyclomatic complexity\n \n private readonly _performSideEffectsForTransition = (currState: IState, nextState: IState, signal: ISignal, e: IPressEvent) => {\n const currIsHighlight = this._isHighlight(currState);\n const newIsHighlight = this._isHighlight(nextState);\n\n const isFinalSignal = signal === 'RESPONDER_TERMINATED' || signal === 'RESPONDER_RELEASE';\n\n if (isFinalSignal) {\n this._cancelLongPressDelayTimeout();\n }\n\n const isInitialTransition = currState === 'NOT_RESPONDER' && nextState === 'RESPONDER_INACTIVE_PRESS_IN';\n\n const isActiveTransition = !IsActive[currState] && IsActive[nextState];\n if (isInitialTransition || isActiveTransition) {\n this._remeasureMetricsOnActivation();\n }\n\n if (IsPressingIn[currState] && signal === 'LONG_PRESS_DETECTED') {\n this.props.touchableHandleLongPress && this.props.touchableHandleLongPress(e);\n }\n\n if (newIsHighlight && !currIsHighlight) {\n this._startHighlight(e);\n } else if (!newIsHighlight && currIsHighlight) {\n this._endHighlight(e);\n }\n\n if (IsPressingIn[currState] && signal === 'RESPONDER_RELEASE') {\n const hasLongPressHandler = !!this.props.onLongPress;\n const pressIsLongButStillCallOnPress = IsLongPressingIn[currState] && (!hasLongPressHandler || this._touchableLongPressCancelsPress);\n const shouldInvokePress = !IsLongPressingIn[currState] || pressIsLongButStillCallOnPress;\n\n if (shouldInvokePress && this.props.touchableHandlePress) {\n if (!newIsHighlight && !currIsHighlight) {\n // we never highlighted because of delay, but we should highlight now\n this._startHighlight(e);\n this._endHighlight(e);\n }\n\n this.props.touchableHandlePress(e);\n }\n }\n\n this._touchableDelayTimeout && clearTimeout(this._touchableDelayTimeout);\n this._touchableDelayTimeout = null;\n };\n\n private readonly _startHighlight = (e: IPressEvent) => {\n this._savePressInLocation(e);\n this.setState({ isPressed: true });\n this.props.touchableHandleActivePressIn && this.props.touchableHandleActivePressIn(e);\n };\n\n private readonly _endHighlight = (e: IPressEvent) => {\n function _handler() {\n this.props.touchableHandleActivePressOut(e);\n }\n\n this.setState({ isPressed: false });\n if (this.props.touchableHandleActivePressOut) {\n if (this.props.touchableGetPressOutDelayMS && this.props.touchableGetPressOutDelayMS()) {\n this._pressOutDelayTimeout = setTimeout(_handler.bind(this), this.props.touchableGetPressOutDelayMS());\n } else {\n this.props.touchableHandleActivePressOut(e);\n }\n }\n };\n\n private readonly _onMouseEnter = (mouseEvent) => {\n this.setState({ isHovered: true });\n this.props.onMouseEnter && this.props.onMouseEnter(mouseEvent);\n };\n\n private readonly _onMouseLeave = (mouseEvent) => {\n this.setState({ isHovered: false });\n this.props.onMouseLeave && this.props.onMouseLeave(mouseEvent);\n };\n\n private readonly _onFocus = (ev: NativeSyntheticEvent<{}>) => {\n this.setState({ isFocused: true });\n this.props.onFocus && this.props.onFocus(ev);\n };\n\n private readonly _onBlur = (ev: NativeSyntheticEvent<{}>) => {\n this.setState({ isFocused: false });\n this.props.onBlur && this.props.onBlur(ev);\n };\n\n private readonly _onKeyDown = (ev: IKeyboardEvent) => {\n if (this._filterOnKey(ev)) {\n this.setState({ isKeyPressed: true });\n this.props.touchableHandleKeyPressDown && this.props.touchableHandleKeyPressDown(ev);\n }\n\n this.props.onKeyDown && this.props.onKeyDown(ev);\n };\n\n private readonly _onKeyUp = (ev: IKeyboardEvent) => {\n if (this._filterOnKey(ev)) {\n this.setState({ isKeyPressed: false });\n this.props.touchableHandleKeyPress && this.props.touchableHandleKeyPress(ev);\n }\n\n this.props.onKeyUp && this.props.onKeyUp(ev);\n };\n\n private readonly _deriveStateFromInternalState = (): ITouchableWin32State => {\n return {\n isPressed: this.state.isPressed || this.state.isKeyPressed,\n isHovered: this.state.isHovered,\n isFocused: this.state.isFocused,\n };\n }\n\n private readonly _filterOnKey = (ev: IKeyboardEvent): boolean => {\n if (this.props.filterKeys) {\n return this.props.filterKeys(ev.nativeEvent.key);\n }\n\n // Otherwise fall back to handling space and enter only\n return ev.nativeEvent.key === ' ' || ev.nativeEvent.key === 'Enter';\n }\n}\n"]}
@@ -189,7 +189,7 @@ export default function TouchableWithoutFeedback(
189
189
  disabled:
190
190
  disabled !== null
191
191
  ? disabled
192
- : ariaDisabled ?? accessibilityState?.disabled,
192
+ : (ariaDisabled ?? accessibilityState?.disabled),
193
193
  hitSlop: hitSlop,
194
194
  delayLongPress: delayLongPress,
195
195
  delayPressIn: delayPressIn,
@@ -272,7 +272,7 @@ export default function TouchableWithoutFeedback(
272
272
  ? 'no-hide-descendants'
273
273
  : props.importantForAccessibility,
274
274
  accessibilityLiveRegion:
275
- ariaLive === 'off' ? 'none' : ariaLive ?? props.accessibilityLiveRegion,
275
+ ariaLive === 'off' ? 'none' : (ariaLive ?? props.accessibilityLiveRegion),
276
276
  nativeID: props.id ?? props.nativeID,
277
277
  };
278
278
 
@@ -282,6 +282,6 @@ export default function TouchableWithoutFeedback(
282
282
  }
283
283
  }
284
284
 
285
- // $FlowFixMe[incompatible-call]
285
+ // $FlowFixMe[incompatible-type]
286
286
  return cloneElement(element, elementProps, ...children);
287
287
  }