@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.
- package/.flowconfig +3 -11
- package/CHANGELOG.json +118 -43
- package/CHANGELOG.md +45 -27
- package/IntegrationTests/IntegrationTestsApp.js +2 -2
- package/IntegrationTests/LayoutEventsTest.js +3 -3
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -3
- package/Libraries/Alert/RCTAlertManager.android.js +4 -2
- package/Libraries/Animated/Animated.d.ts +2 -0
- package/Libraries/Animated/AnimatedEvent.js +1 -1
- package/Libraries/Animated/AnimatedExports.js.flow +1 -0
- package/Libraries/Animated/AnimatedImplementation.js +4 -2
- package/Libraries/Animated/AnimatedMock.js +1 -1
- package/Libraries/Animated/Easing.js +2 -0
- package/Libraries/Animated/NativeAnimatedAllowlist.js +1 -0
- package/Libraries/Animated/animations/Animation.js +19 -20
- package/Libraries/Animated/animations/TimingAnimation.js +2 -0
- package/Libraries/Animated/components/AnimatedScrollView.js +3 -2
- package/Libraries/Animated/components/AnimatedSectionList.js +1 -1
- package/Libraries/Animated/nodes/AnimatedColor.js +9 -9
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +4 -4
- package/Libraries/Animated/nodes/AnimatedNode.js +14 -7
- package/Libraries/Animated/nodes/AnimatedObject.js +7 -7
- package/Libraries/Animated/nodes/AnimatedProps.js +32 -32
- package/Libraries/Animated/nodes/AnimatedStyle.js +23 -21
- package/Libraries/Animated/nodes/AnimatedTransform.js +6 -6
- package/Libraries/Animated/nodes/AnimatedValue.js +18 -26
- package/Libraries/AppState/AppState.js +8 -4
- package/Libraries/BatchedBridge/BatchedBridge.js +1 -0
- package/Libraries/BatchedBridge/MessageQueue.js +5 -0
- package/Libraries/BatchedBridge/NativeModules.js +1 -1
- package/Libraries/Blob/BlobManager.js +1 -1
- package/Libraries/Blob/URLSearchParams.js +2 -0
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -2
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +2 -2
- package/Libraries/Components/Button.js +1 -1
- package/Libraries/Components/Button.win32.js +1 -1
- package/Libraries/Components/Pressable/Pressable.js +10 -1
- package/Libraries/Components/Pressable/Pressable.win32.js +9 -0
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +2 -2
- package/Libraries/Components/ScrollView/ScrollView.js +13 -4
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +2 -2
- package/Libraries/Components/Switch/Switch.js +1 -1
- package/Libraries/Components/TextInput/TextInput.flow.js +12 -5
- package/Libraries/Components/TextInput/TextInput.flow.win32.js +12 -5
- package/Libraries/Components/TextInput/TextInput.js +14 -5
- package/Libraries/Components/TextInput/TextInput.win32.js +15 -7
- package/Libraries/Components/TextInput/TextInputState.js +1 -1
- package/Libraries/Components/TextInput/TextInputState.win32.js +1 -1
- package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +2 -3
- package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableOpacity.js +1 -1
- package/Libraries/Components/Touchable/TouchableWin32.js +1 -1
- package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
- package/Libraries/Components/View/View.js +81 -167
- package/Libraries/Components/View/View.win32.js +3 -1
- package/Libraries/Core/Devtools/loadBundleFromServer.js +1 -1
- package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +4 -2
- package/Libraries/Core/ReactFiberErrorDialog.js +3 -3
- package/Libraries/Core/ReactNativeVersion.js +37 -10
- package/Libraries/Core/Timers/JSTimers.js +4 -1
- package/Libraries/Core/Timers/NativeTiming.js +1 -0
- package/Libraries/Core/Timers/immediateShim.js +2 -1
- package/Libraries/Core/Timers/queueMicrotask.js +1 -0
- package/Libraries/Core/setUpPerformance.js +3 -4
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +5 -3
- package/Libraries/Image/Image.android.js +327 -111
- package/Libraries/Image/Image.ios.js +6 -1
- package/Libraries/Image/Image.win32.js +6 -1
- package/Libraries/Image/ImageSourceUtils.js +8 -2
- package/Libraries/Image/assetPaths.js +1 -1
- package/Libraries/Image/resolveAssetSource.js +1 -1
- package/Libraries/Image/resolveAssetSource.win32.js +6 -7
- package/Libraries/Interaction/InteractionManager.js +118 -167
- package/Libraries/Interaction/PanResponder.js +7 -52
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -0
- package/Libraries/Lists/FlatList.js +5 -6
- package/Libraries/LogBox/Data/LogBoxData.js +5 -2
- package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +1 -1
- package/Libraries/Modal/Modal.js +3 -3
- package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
- package/Libraries/NativeComponent/ViewConfig.js +2 -2
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.win32.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +20 -5
- package/Libraries/Network/convertRequestBody.js +1 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +10 -9
- package/Libraries/Pressability/HoverState.js +2 -0
- package/Libraries/Pressability/HoverState.win32.js +2 -0
- package/Libraries/Pressability/Pressability.js +1 -1
- package/Libraries/Pressability/Pressability.win32.js +1 -1
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +4 -2
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +3 -3
- package/Libraries/ReactNative/RendererImplementation.js +116 -116
- package/Libraries/ReactNative/UIManager.js +3 -3
- package/Libraries/ReactNative/renderApplication.js +1 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -1
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +38 -35
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +51 -22
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +54 -24
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +36 -33
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +5 -5
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +5 -5
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
- package/Libraries/Share/Share.js +4 -0
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +2 -2
- package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +4 -0
- package/Libraries/StyleSheet/StyleSheet.d.ts +7 -22
- package/Libraries/StyleSheet/StyleSheetExports.js +2 -8
- package/Libraries/StyleSheet/StyleSheetExports.js.flow +11 -18
- package/Libraries/StyleSheet/flattenStyle.js +2 -2
- package/Libraries/StyleSheet/processAspectRatio.js +2 -0
- package/Libraries/StyleSheet/processFilter.js +5 -5
- package/Libraries/StyleSheet/splitLayoutProps.js +2 -2
- package/Libraries/Text/Text.js +534 -234
- package/Libraries/Text/Text.win32.js +647 -274
- package/Libraries/Text/TextNativeComponent.js +2 -2
- package/Libraries/Text/TextNativeComponent.win32.js +2 -2
- package/Libraries/Utilities/Appearance.d.ts +3 -5
- package/Libraries/Utilities/Appearance.js +5 -17
- package/Libraries/Utilities/HMRClient.js +2 -1
- package/Libraries/Utilities/Platform.android.js +3 -3
- package/Libraries/Utilities/Platform.d.ts +1 -0
- package/Libraries/Utilities/Platform.ios.js +1 -1
- package/Libraries/Utilities/Platform.win32.js +3 -3
- package/Libraries/Utilities/PlatformTypes.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +12 -0
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +1 -1
- package/Libraries/Utilities/codegenNativeComponent.js +1 -1
- package/Libraries/Utilities/createPerformanceLogger.js +32 -0
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +2 -0
- package/Libraries/Utilities/differ/pointsDiffer.js +1 -1
- package/Libraries/Utilities/useMergeRefs.js +1 -1
- package/Libraries/WebSocket/WebSocketInterceptor.js +2 -0
- package/Libraries/promiseRejectionTrackingOptions.js +17 -31
- package/Libraries/vendor/emitter/EventEmitter.js +1 -1
- package/flow/bom.js.flow +223 -1
- package/flow/prettier.js.flow +14 -0
- package/index.js +14 -2
- package/index.win32.js +16 -2
- package/jest/local-setup.js +2 -2
- package/jest/mock.js +1 -1
- package/jest/mockComponent.js +9 -9
- package/jest/mockNativeComponent.js +3 -2
- package/jest/mocks/Modal.js +1 -1
- package/jest/mocks/ScrollView.js +1 -1
- package/jest/mocks/ViewNativeComponent.js +1 -1
- package/jest/setup.js +23 -12
- package/overrides.json +23 -23
- package/package.json +28 -27
- package/saveAssetPlugin.js +2 -2
- package/src/private/animated/NativeAnimatedHelper.js +16 -5
- package/src/private/animated/NativeAnimatedHelper.win32.js +16 -5
- package/src/private/animated/createAnimatedPropsHook.js +11 -60
- package/src/private/animated/createAnimatedPropsMemoHook.js +8 -54
- package/src/private/components/virtualview/VirtualView.js +43 -12
- package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +93 -0
- package/src/private/components/virtualview/VirtualViewNativeComponent.js +6 -0
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -2
- package/src/private/featureflags/ReactNativeFeatureFlags.js +85 -52
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +23 -4
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +15 -6
- package/src/private/renderer/errorhandling/ErrorHandlers.js +3 -3
- package/src/private/setup/{setUpPerformanceObserver.js → setUpPerformanceModern.js} +43 -18
- package/src/private/specs_DEPRECATED/modules/NativeTiming.js +1 -0
- package/src/private/types/HostInstance.js +4 -1
- package/src/private/webapis/dom/nodes/ReactNativeDocument.js +22 -2
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +5 -3
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +16 -13
- package/src/private/webapis/dom/nodes/internals/NodeInternals.js +45 -22
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +26 -192
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +15 -12
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +14 -11
- package/src/private/webapis/geometry/DOMRectList.js +2 -2
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +19 -74
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +0 -4
- package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
- package/src/private/webapis/performance/EventTiming.js +40 -25
- package/src/private/webapis/performance/LongTasks.js +35 -2
- package/src/private/webapis/performance/Performance.js +347 -166
- package/src/private/webapis/performance/PerformanceEntry.js +40 -23
- package/src/private/webapis/performance/PerformanceObserver.js +37 -29
- package/src/private/webapis/performance/ReactNativeStartupTiming.js +3 -24
- package/src/private/webapis/performance/ResourceTiming.js +29 -18
- package/src/private/webapis/performance/UserTiming.js +92 -34
- package/src/private/webapis/performance/UserTimingExtensibility.js.flow +38 -0
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +3 -4
- package/src/private/webapis/performance/internals/Utilities.js +9 -0
- package/src/private/webapis/performance/specs/NativePerformance.js +23 -23
- package/src/private/webapis/structuredClone/structuredClone.js +10 -10
- package/src-win/Libraries/Components/Touchable/TouchableWin32.tsx +1 -1
- package/Libraries/Interaction/InteractionManagerStub.js +0 -184
- package/Libraries/Interaction/TaskQueue.js +0 -183
- 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-
|
|
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-
|
|
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
|
|
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
|
-
|
|
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<
|
|
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
|
|
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-
|
|
285
|
+
// $FlowFixMe[incompatible-type]
|
|
286
286
|
return cloneElement(element, elementProps, ...children);
|
|
287
287
|
}
|