react-native-gesture-handler 3.2.0-nightly-20260811-cc704f09a → 3.2.0

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 (98) hide show
  1. package/android/build.gradle +21 -6
  2. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +30 -66
  3. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +4 -2
  4. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerDetectorView.kt +1 -2
  5. package/apple/RNGestureHandler.mm +31 -23
  6. package/apple/RNGestureHandlerButtonComponentView.mm +10 -6
  7. package/lib/module/components/GestureHandlerButton.web.js +3 -2
  8. package/lib/module/components/GestureHandlerButton.web.js.map +1 -1
  9. package/lib/module/components/ReanimatedDrawerLayout.js +3 -0
  10. package/lib/module/components/ReanimatedDrawerLayout.js.map +1 -1
  11. package/lib/module/components/touchables/TouchableOpacity.js +1 -0
  12. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
  13. package/lib/module/handlers/hitSlop.js +101 -0
  14. package/lib/module/handlers/hitSlop.js.map +1 -0
  15. package/lib/module/handlers/utils.js +3 -7
  16. package/lib/module/handlers/utils.js.map +1 -1
  17. package/lib/module/specs/RNGestureHandlerDetectorNativeComponent.ts +1 -1
  18. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.ts +1 -1
  19. package/lib/module/v3/components/Pressable.js +23 -312
  20. package/lib/module/v3/components/Pressable.js.map +1 -1
  21. package/lib/module/v3/components/PressableWithTouchable.js +259 -0
  22. package/lib/module/v3/components/PressableWithTouchable.js.map +1 -0
  23. package/lib/module/v3/components/StatefulPressable.js +338 -0
  24. package/lib/module/v3/components/StatefulPressable.js.map +1 -0
  25. package/lib/module/v3/components/pointerStyle.js +6 -0
  26. package/lib/module/v3/components/pointerStyle.js.map +1 -0
  27. package/lib/module/v3/components/pointerStyle.web.js +9 -0
  28. package/lib/module/v3/components/pointerStyle.web.js.map +1 -0
  29. package/lib/module/v3/hooks/utils/configUtils.js +3 -1
  30. package/lib/module/v3/hooks/utils/configUtils.js.map +1 -1
  31. package/lib/module/v3/hooks/utils/reanimatedUtils.js +14 -3
  32. package/lib/module/v3/hooks/utils/reanimatedUtils.js.map +1 -1
  33. package/lib/module/web/handlers/GestureHandler.js +21 -44
  34. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  35. package/lib/module/web/interfaces.js.map +1 -1
  36. package/lib/typescript/components/GestureComponents.web.d.ts +12 -4
  37. package/lib/typescript/components/GestureComponents.web.d.ts.map +1 -1
  38. package/lib/typescript/components/GestureHandlerButton.web.d.ts.map +1 -1
  39. package/lib/typescript/components/ReanimatedDrawerLayout.d.ts.map +1 -1
  40. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +1 -1
  41. package/lib/typescript/components/touchables/TouchableHighlight.d.ts.map +1 -1
  42. package/lib/typescript/components/touchables/TouchableOpacity.d.ts.map +1 -1
  43. package/lib/typescript/handlers/hitSlop.d.ts +51 -0
  44. package/lib/typescript/handlers/hitSlop.d.ts.map +1 -0
  45. package/lib/typescript/handlers/utils.d.ts.map +1 -1
  46. package/lib/typescript/mocks/hostDetector.d.ts +5 -2
  47. package/lib/typescript/mocks/hostDetector.d.ts.map +1 -1
  48. package/lib/typescript/specs/RNGestureHandlerDetectorNativeComponent.d.ts +1 -1
  49. package/lib/typescript/specs/RNGestureHandlerDetectorNativeComponent.d.ts.map +1 -1
  50. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts +1 -1
  51. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts.map +1 -1
  52. package/lib/typescript/v3/components/GestureComponents.web.d.ts +16 -8
  53. package/lib/typescript/v3/components/GestureComponents.web.d.ts.map +1 -1
  54. package/lib/typescript/v3/components/Pressable.d.ts +13 -0
  55. package/lib/typescript/v3/components/Pressable.d.ts.map +1 -1
  56. package/lib/typescript/v3/components/PressableWithTouchable.d.ts +5 -0
  57. package/lib/typescript/v3/components/PressableWithTouchable.d.ts.map +1 -0
  58. package/lib/typescript/v3/components/StatefulPressable.d.ts +5 -0
  59. package/lib/typescript/v3/components/StatefulPressable.d.ts.map +1 -0
  60. package/lib/typescript/v3/components/pointerStyle.d.ts +3 -0
  61. package/lib/typescript/v3/components/pointerStyle.d.ts.map +1 -0
  62. package/lib/typescript/v3/components/pointerStyle.web.d.ts +3 -0
  63. package/lib/typescript/v3/components/pointerStyle.web.d.ts.map +1 -0
  64. package/lib/typescript/v3/detectors/ReanimatedNativeDetector.d.ts +3 -1
  65. package/lib/typescript/v3/detectors/ReanimatedNativeDetector.d.ts.map +1 -1
  66. package/lib/typescript/v3/detectors/ReanimatedNativeDetector.web.d.ts +3 -1
  67. package/lib/typescript/v3/detectors/ReanimatedNativeDetector.web.d.ts.map +1 -1
  68. package/lib/typescript/v3/detectors/common.d.ts +2 -2
  69. package/lib/typescript/v3/detectors/common.d.ts.map +1 -1
  70. package/lib/typescript/v3/hooks/utils/configUtils.d.ts.map +1 -1
  71. package/lib/typescript/v3/hooks/utils/reanimatedUtils.d.ts.map +1 -1
  72. package/lib/typescript/v3/types/ConfigTypes.d.ts +2 -1
  73. package/lib/typescript/v3/types/ConfigTypes.d.ts.map +1 -1
  74. package/lib/typescript/v3/types/EventTypes.d.ts +3 -2
  75. package/lib/typescript/v3/types/EventTypes.d.ts.map +1 -1
  76. package/lib/typescript/web/handlers/GestureHandler.d.ts +0 -1
  77. package/lib/typescript/web/handlers/GestureHandler.d.ts.map +1 -1
  78. package/lib/typescript/web/interfaces.d.ts +3 -12
  79. package/lib/typescript/web/interfaces.d.ts.map +1 -1
  80. package/package.json +6 -6
  81. package/src/components/GestureHandlerButton.web.tsx +3 -2
  82. package/src/components/ReanimatedDrawerLayout.tsx +3 -0
  83. package/src/components/touchables/TouchableOpacity.tsx +1 -0
  84. package/src/handlers/hitSlop.ts +146 -0
  85. package/src/handlers/utils.ts +4 -2
  86. package/src/specs/RNGestureHandlerDetectorNativeComponent.ts +1 -1
  87. package/src/specs/RNGestureHandlerRootViewNativeComponent.ts +1 -1
  88. package/src/v3/components/Pressable.tsx +28 -448
  89. package/src/v3/components/PressableWithTouchable.tsx +326 -0
  90. package/src/v3/components/StatefulPressable.tsx +476 -0
  91. package/src/v3/components/pointerStyle.ts +5 -0
  92. package/src/v3/components/pointerStyle.web.ts +6 -0
  93. package/src/v3/hooks/utils/configUtils.ts +7 -1
  94. package/src/v3/hooks/utils/reanimatedUtils.ts +17 -8
  95. package/src/v3/types/ConfigTypes.ts +2 -1
  96. package/src/v3/types/EventTypes.ts +7 -3
  97. package/src/web/handlers/GestureHandler.ts +26 -77
  98. package/src/web/interfaces.ts +3 -13
@@ -5,6 +5,7 @@ import { ghQueueMicrotask } from '../ghQueueMicrotask';
5
5
  import RNGestureHandlerModule from '../RNGestureHandlerModule';
6
6
  import { toArray } from '../utils';
7
7
  import { handlerIDToTag } from './handlersRegistry';
8
+ import { normalizeHitSlop } from './hitSlop';
8
9
  function isConfigParam(param, name) {
9
10
  // param !== Object(param) returns false if `param` is a function
10
11
  // or an object and returns true if `param` is null
@@ -20,13 +21,8 @@ export function filterConfig(props, validProps, defaults = {}) {
20
21
  if (isConfigParam(value, key)) {
21
22
  if (key === 'simultaneousHandlers' || key === 'waitFor') {
22
23
  value = transformIntoHandlerTags(props[key]);
23
- } else if (key === 'hitSlop' && typeof value !== 'object') {
24
- value = {
25
- top: value,
26
- left: value,
27
- bottom: value,
28
- right: value
29
- };
24
+ } else if (key === 'hitSlop') {
25
+ value = normalizeHitSlop(value);
30
26
  }
31
27
  filteredConfig[key] = value;
32
28
  }
@@ -1 +1 @@
1
- {"version":3,"names":["findNodeHandle","findNodeHandleRN","Platform","ghQueueMicrotask","RNGestureHandlerModule","toArray","handlerIDToTag","isConfigParam","param","name","undefined","Object","selectProperties","obj","keys","fromEntries","filter","k","map","filterConfig","props","validProps","defaults","filteredConfig","key","value","transformIntoHandlerTags","top","left","bottom","right","handlerIDs","OS","current","handle","handlerID","handlerTag","node","scheduledOperations","flushOperationsScheduled","scheduleFlushOperations","operation","flushOperations","scheduleOperationToBeFlushed","push"],"sourceRoot":"../../../src","sources":["handlers/utils.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["findNodeHandle","findNodeHandleRN","Platform","ghQueueMicrotask","RNGestureHandlerModule","toArray","handlerIDToTag","normalizeHitSlop","isConfigParam","param","name","undefined","Object","selectProperties","obj","keys","fromEntries","filter","k","map","filterConfig","props","validProps","defaults","filteredConfig","key","value","transformIntoHandlerTags","handlerIDs","OS","current","handle","handlerID","handlerTag","node","scheduledOperations","flushOperationsScheduled","scheduleFlushOperations","operation","flushOperations","scheduleOperationToBeFlushed","push"],"sourceRoot":"../../../src","sources":["handlers/utils.ts"],"mappings":"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","ignoreList":[]}
@@ -67,7 +67,7 @@ export interface NativeProps extends ViewProps {
67
67
  | undefined;
68
68
 
69
69
  handlerTags: CodegenTypes.Int32[];
70
- moduleId: CodegenTypes.Int32;
70
+ moduleId?: CodegenTypes.WithDefault<CodegenTypes.Int32, -1>;
71
71
  virtualChildren: VirtualChildrenProps[];
72
72
 
73
73
  pointerEvents?: CodegenTypes.WithDefault<
@@ -7,7 +7,7 @@ export interface RootViewNativeProps extends ViewProps {
7
7
  }
8
8
 
9
9
  interface NativeProps extends ViewProps {
10
- moduleId: CodegenTypes.Int32;
10
+ moduleId?: CodegenTypes.WithDefault<CodegenTypes.Int32, -1>;
11
11
  unstable_forceActive?: boolean;
12
12
  }
13
13
 
@@ -1,318 +1,29 @@
1
1
  "use strict";
2
2
 
3
- import React, { use, useCallback, useEffect, useMemo, useRef, useState } from 'react';
4
- import { Platform } from 'react-native';
5
- import { getStatesConfig, StateMachineEvent } from '../../components/Pressable/stateDefinitions';
6
- import { PressableStateMachine } from '../../components/Pressable/StateMachine';
7
- import { addInsets, gestureToPressableEvent, gestureTouchToPressableEvent, isTouchWithinInset, numberAsInset, viewCenterToPressableEvent } from '../../components/Pressable/utils';
8
- import { getTVProps } from '../../components/utils';
9
- import { PressabilityDebugView } from '../../handlers/PressabilityDebugView';
10
- import { useIsScreenReaderEnabled } from '../../useIsScreenReaderEnabled';
11
- import { INT32_MAX, isTestEnv } from '../../utils';
12
- import { GestureDetector } from '../detectors';
13
- import { useHoverGesture, useLongPressGesture, useNativeGesture, useSimultaneousGestures } from '../hooks';
14
- import { isKeyboardDismissingTap, JSResponderContext } from '../scrollViewInterop';
15
- import { PureNativeButton } from './GestureButtons';
16
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
- const DEFAULT_LONG_PRESS_DURATION = 500;
18
- const IS_TEST_ENV = isTestEnv();
19
- const Pressable = props => {
20
- const {
21
- testOnly_pressed,
22
- hitSlop,
23
- pressRetentionOffset,
24
- delayHoverIn,
25
- delayHoverOut,
26
- delayLongPress,
27
- unstable_pressDelay,
28
- onHoverIn,
29
- onHoverOut,
30
- onPress,
31
- onPressIn,
32
- onPressOut,
33
- onLongPress,
34
- onLayout,
35
- style,
36
- children,
37
- android_disableSound,
38
- android_ripple,
39
- disabled,
40
- accessible,
41
- simultaneousWith,
42
- requireToFail,
43
- block,
44
- ref,
45
- ...remainingProps
46
- } = props;
47
- const [pressedState, setPressedState] = useState(testOnly_pressed ?? false);
48
- const longPressTimeoutRef = useRef(null);
49
- const pressDelayTimeoutRef = useRef(null);
50
- const isOnPressAllowed = useRef(true);
51
- const jsResponderContext = use(JSResponderContext);
52
- const isCurrentlyPressed = useRef(false);
53
- const dimensions = useRef({
54
- width: 0,
55
- height: 0
56
- });
57
-
58
- // When the touch that begins a press is the one dismissing the keyboard
59
- // (keyboardShouldPersistTaps="never"), the press is swallowed to match RN's
60
- // touchables.
61
- const dropKeyboardTapRef = useRef(null);
62
- const normalizedHitSlop = useMemo(() => typeof hitSlop === 'number' ? numberAsInset(hitSlop) : hitSlop ?? numberAsInset(0), [hitSlop]);
63
- const normalizedPressRetentionOffset = useMemo(() => typeof pressRetentionOffset === 'number' ? numberAsInset(pressRetentionOffset) : pressRetentionOffset ?? {}, [pressRetentionOffset]);
64
- const appliedHitSlop = addInsets(normalizedHitSlop, normalizedPressRetentionOffset);
65
- const cancelLongPress = useCallback(() => {
66
- if (longPressTimeoutRef.current) {
67
- clearTimeout(longPressTimeoutRef.current);
68
- longPressTimeoutRef.current = null;
69
- isOnPressAllowed.current = true;
70
- }
71
- }, []);
72
- const cancelDelayedPress = useCallback(() => {
73
- if (pressDelayTimeoutRef.current) {
74
- clearTimeout(pressDelayTimeoutRef.current);
75
- pressDelayTimeoutRef.current = null;
76
- }
77
- }, []);
78
- const startLongPress = useCallback(event => {
79
- if (onLongPress) {
80
- cancelLongPress();
81
- longPressTimeoutRef.current = setTimeout(() => {
82
- isOnPressAllowed.current = false;
83
- onLongPress(event);
84
- }, delayLongPress ?? DEFAULT_LONG_PRESS_DURATION);
85
- }
86
- }, [onLongPress, cancelLongPress, delayLongPress]);
87
- const innerHandlePressIn = useCallback(event => {
88
- onPressIn?.(event);
89
- startLongPress(event);
90
- setPressedState(true);
91
- if (pressDelayTimeoutRef.current) {
92
- clearTimeout(pressDelayTimeoutRef.current);
93
- pressDelayTimeoutRef.current = null;
94
- }
95
- }, [onPressIn, startLongPress]);
96
- const handleFinalize = useCallback(() => {
97
- isCurrentlyPressed.current = false;
98
- dropKeyboardTapRef.current = null;
99
- cancelLongPress();
100
- cancelDelayedPress();
101
- setPressedState(false);
102
- }, [cancelDelayedPress, cancelLongPress]);
103
- const captureKeyboardDismiss = useCallback(() => {
104
- dropKeyboardTapRef.current ??= isKeyboardDismissingTap(jsResponderContext);
105
- }, [jsResponderContext]);
106
- const handlePressIn = useCallback((event, skipBoundsCheck = false) => {
107
- if (!skipBoundsCheck && !isTouchWithinInset(dimensions.current, normalizedHitSlop, event.nativeEvent.changedTouches.at(-1))) {
108
- // Ignoring pressIn within pressRetentionOffset
109
- return;
110
- }
111
- isCurrentlyPressed.current = true;
112
- if (unstable_pressDelay) {
113
- pressDelayTimeoutRef.current = setTimeout(() => {
114
- innerHandlePressIn(event);
115
- }, unstable_pressDelay);
116
- } else {
117
- innerHandlePressIn(event);
118
- }
119
- }, [innerHandlePressIn, normalizedHitSlop, unstable_pressDelay]);
120
- const handlePressOut = useCallback((event, success = true) => {
121
- if (!isCurrentlyPressed.current) {
122
- // Some prop configurations may lead to handlePressOut being called mutliple times.
123
- return;
124
- }
125
- isCurrentlyPressed.current = false;
126
- if (pressDelayTimeoutRef.current) {
127
- innerHandlePressIn(event);
128
- }
129
- onPressOut?.(event);
130
- if (isOnPressAllowed.current && success) {
131
- onPress?.(event);
132
- }
133
- handleFinalize();
134
- }, [handleFinalize, innerHandlePressIn, onPress, onPressOut]);
135
- const stateMachine = useMemo(() => new PressableStateMachine(), []);
136
- const isScreenReaderEnabled = useIsScreenReaderEnabled();
137
- useEffect(() => {
138
- const configuration = getStatesConfig(handlePressIn, handlePressOut, isScreenReaderEnabled);
139
- stateMachine.setStates(configuration);
140
- }, [handlePressIn, handlePressOut, stateMachine, isScreenReaderEnabled]);
141
- const hoverInTimeout = useRef(null);
142
- const hoverOutTimeout = useRef(null);
143
- const hoverGesture = useHoverGesture({
144
- manualActivation: true,
145
- // Prevents Hover blocking Native gesture on web
146
- cancelsTouchesInView: false,
147
- onBegin: event => {
148
- if (hoverOutTimeout.current) {
149
- clearTimeout(hoverOutTimeout.current);
150
- }
151
- if (delayHoverIn) {
152
- hoverInTimeout.current = setTimeout(() => onHoverIn?.(gestureToPressableEvent(event)), delayHoverIn);
153
- return;
154
- }
155
- onHoverIn?.(gestureToPressableEvent(event));
156
- },
157
- onFinalize: event => {
158
- if (hoverInTimeout.current) {
159
- clearTimeout(hoverInTimeout.current);
160
- }
161
- if (delayHoverOut) {
162
- hoverOutTimeout.current = setTimeout(() => onHoverOut?.(gestureToPressableEvent(event)), delayHoverOut);
163
- return;
164
- }
165
- onHoverOut?.(gestureToPressableEvent(event));
166
- },
167
- enabled: disabled !== true,
168
- disableReanimated: true,
169
- simultaneousWith,
170
- block,
171
- requireToFail,
172
- hitSlop: appliedHitSlop
173
- });
174
- const pressAndTouchGesture = useLongPressGesture({
175
- minDuration: Platform.OS === 'web' ? 0 : INT32_MAX,
176
- // Long press handles finalize on web, thus it must activate right away
177
- maxDistance: INT32_MAX,
178
- // Stops long press from cancelling on touch move
179
- cancelsTouchesInView: false,
180
- onTouchesDown: event => {
181
- captureKeyboardDismiss();
182
- if (dropKeyboardTapRef.current) {
183
- return;
184
- }
185
- const pressableEvent = gestureTouchToPressableEvent(event);
186
- stateMachine.handleEvent(StateMachineEvent.LONG_PRESS_TOUCHES_DOWN, pressableEvent);
187
- },
188
- onTouchesUp: () => {
189
- if (Platform.OS === 'android' && !isScreenReaderEnabled) {
190
- // Prevents potential soft-locks
191
- stateMachine.reset();
192
- handleFinalize();
193
- }
194
- },
195
- onTouchesCancel: event => {
196
- const pressableEvent = gestureTouchToPressableEvent(event);
197
- stateMachine.reset();
198
- handlePressOut(pressableEvent, false);
199
- },
200
- onFinalize: event => {
201
- if (Platform.OS !== 'web') {
202
- return;
203
- }
204
- stateMachine.handleEvent(event.canceled ? StateMachineEvent.CANCEL : StateMachineEvent.FINALIZE);
205
- handleFinalize();
206
- },
207
- enabled: disabled !== true,
208
- disableReanimated: true,
209
- simultaneousWith: simultaneousWith,
210
- block: block,
211
- requireToFail: requireToFail,
212
- hitSlop: appliedHitSlop
213
- });
214
-
215
- // RNButton is placed inside ButtonGesture to enable Android's ripple and to capture non-propagating events
216
- const buttonGesture = useNativeGesture({
217
- onTouchesCancel: event => {
218
- if (Platform.OS !== 'macos' && Platform.OS !== 'web') {
219
- // On MacOS cancel occurs in middle of gesture
220
- // On Web cancel occurs on mouse move, which is unwanted
221
- const pressableEvent = gestureTouchToPressableEvent(event);
222
- stateMachine.reset();
223
- handlePressOut(pressableEvent, false);
224
- }
225
- },
226
- onBegin: () => {
227
- captureKeyboardDismiss();
228
- if (dropKeyboardTapRef.current) {
229
- return;
230
- }
231
- if (Platform.isTV) {
232
- // tvOS drives this native gesture from the focus-engine Select press.
233
- // The press state machine is touch-based and never
234
- // receives LONG_PRESS_TOUCHES_DOWN here, so bypass it and drive the press handlers directly.
235
- // A focus-driven press has no coordinates, so skip the hit-slop bounds check entirely.
236
- handlePressIn(viewCenterToPressableEvent(dimensions.current), true);
237
- return;
238
- }
239
- if (Platform.OS === 'android' && isScreenReaderEnabled) {
240
- stateMachine.handleEvent(StateMachineEvent.NATIVE_BEGIN, viewCenterToPressableEvent(dimensions.current));
241
- return;
242
- }
243
- stateMachine.handleEvent(StateMachineEvent.NATIVE_BEGIN);
244
- },
245
- onActivate: () => {
246
- if (!Platform.isTV && Platform.OS !== 'android') {
247
- stateMachine.handleEvent(StateMachineEvent.NATIVE_START);
248
- }
249
- },
250
- onFinalize: event => {
251
- // On Web we use LongPress.onFinalize instead of Native.onFinalize,
252
- // as Native cancels on mouse move, and LongPress does not.
253
- if (Platform.OS === 'web') {
254
- return;
255
- }
256
- if (Platform.isTV) {
257
- handlePressOut(viewCenterToPressableEvent(dimensions.current), !event.canceled);
258
- handleFinalize();
259
- return;
260
- }
261
- stateMachine.handleEvent(event.canceled ? StateMachineEvent.CANCEL : StateMachineEvent.FINALIZE);
262
- handleFinalize();
263
- },
264
- enabled: disabled !== true,
265
- disableReanimated: true,
266
- simultaneousWith,
267
- block,
268
- requireToFail,
269
- hitSlop: appliedHitSlop,
270
- shouldActivateOnStart: Platform.OS === 'web'
271
- });
272
- const gesture = useSimultaneousGestures(buttonGesture, pressAndTouchGesture, hoverGesture);
3
+ import React from 'react';
4
+ import PressableWithTouchable from './PressableWithTouchable';
5
+ import StatefulPressable from './StatefulPressable';
273
6
 
274
- // `cursor: 'pointer'` on `RNButton` crashes iOS
275
- const pointerStyle = Platform.OS === 'web' ? {
276
- cursor: 'pointer'
277
- } : {};
278
- const styleProp = typeof style === 'function' ? style({
279
- pressed: pressedState
280
- }) : style;
281
- const childrenProp = typeof children === 'function' ? children({
282
- pressed: pressedState
283
- }) : children;
284
- const rippleColor = useMemo(() => {
285
- const defaultRippleColor = android_ripple ? undefined : 'transparent';
286
- return android_ripple?.color ?? defaultRippleColor;
287
- }, [android_ripple]);
288
- const setDimensions = useCallback(event => {
289
- onLayout?.(event);
290
- dimensions.current = event.nativeEvent.layout;
291
- }, [onLayout]);
292
- const tvProps = getTVProps(remainingProps);
293
- return /*#__PURE__*/_jsx(GestureDetector, {
294
- gesture: gesture,
295
- children: /*#__PURE__*/_jsxs(PureNativeButton, {
296
- ...remainingProps,
297
- ref: ref,
298
- ...tvProps,
299
- onLayout: setDimensions,
300
- accessible: accessible !== false,
301
- hitSlop: appliedHitSlop,
302
- enabled: disabled !== true,
303
- touchSoundDisabled: android_disableSound ?? undefined,
304
- rippleColor: rippleColor,
305
- rippleRadius: android_ripple?.radius ?? undefined,
306
- style: [pointerStyle, styleProp],
307
- testOnly_onPress: IS_TEST_ENV ? onPress : undefined,
308
- testOnly_onPressIn: IS_TEST_ENV ? onPressIn : undefined,
309
- testOnly_onPressOut: IS_TEST_ENV ? onPressOut : undefined,
310
- testOnly_onLongPress: IS_TEST_ENV ? onLongPress : undefined,
311
- children: [childrenProp, __DEV__ ? /*#__PURE__*/_jsx(PressabilityDebugView, {
312
- color: "red",
313
- hitSlop: normalizedHitSlop
314
- }) : null]
315
- })
7
+ /**
8
+ * `Pressable` dispatches between two implementations:
9
+ *
10
+ * - {@link StatefulPressable} — the state-machine engine, used whenever any of
11
+ * the `simultaneousWith` / `requireToFail` / `block` relation props is passed,
12
+ * since coordinating the press with an external gesture needs the composed
13
+ * gesture recognizers.
14
+ * - {@link PressableWithTouchable} the simpler engine built on the native
15
+ * button `Touchable`, used for everything else (the common case).
16
+ *
17
+ * The choice is re-evaluated each render: toggling a relation prop at runtime
18
+ * swaps engines, which remounts and drops any in-progress press.
19
+ */
20
+ import { jsx as _jsx } from "react/jsx-runtime";
21
+ const Pressable = props => {
22
+ const usesRelations = props.simultaneousWith != null || props.requireToFail != null || props.block != null;
23
+ return usesRelations ? /*#__PURE__*/_jsx(StatefulPressable, {
24
+ ...props
25
+ }) : /*#__PURE__*/_jsx(PressableWithTouchable, {
26
+ ...props
316
27
  });
317
28
  };
318
29
  export default Pressable;
@@ -1 +1 @@
1
- {"version":3,"names":["React","use","useCallback","useEffect","useMemo","useRef","useState","Platform","getStatesConfig","StateMachineEvent","PressableStateMachine","addInsets","gestureToPressableEvent","gestureTouchToPressableEvent","isTouchWithinInset","numberAsInset","viewCenterToPressableEvent","getTVProps","PressabilityDebugView","useIsScreenReaderEnabled","INT32_MAX","isTestEnv","GestureDetector","useHoverGesture","useLongPressGesture","useNativeGesture","useSimultaneousGestures","isKeyboardDismissingTap","JSResponderContext","PureNativeButton","jsx","_jsx","jsxs","_jsxs","DEFAULT_LONG_PRESS_DURATION","IS_TEST_ENV","Pressable","props","testOnly_pressed","hitSlop","pressRetentionOffset","delayHoverIn","delayHoverOut","delayLongPress","unstable_pressDelay","onHoverIn","onHoverOut","onPress","onPressIn","onPressOut","onLongPress","onLayout","style","children","android_disableSound","android_ripple","disabled","accessible","simultaneousWith","requireToFail","block","ref","remainingProps","pressedState","setPressedState","longPressTimeoutRef","pressDelayTimeoutRef","isOnPressAllowed","jsResponderContext","isCurrentlyPressed","dimensions","width","height","dropKeyboardTapRef","normalizedHitSlop","normalizedPressRetentionOffset","appliedHitSlop","cancelLongPress","current","clearTimeout","cancelDelayedPress","startLongPress","event","setTimeout","innerHandlePressIn","handleFinalize","captureKeyboardDismiss","handlePressIn","skipBoundsCheck","nativeEvent","changedTouches","at","handlePressOut","success","stateMachine","isScreenReaderEnabled","configuration","setStates","hoverInTimeout","hoverOutTimeout","hoverGesture","manualActivation","cancelsTouchesInView","onBegin","onFinalize","enabled","disableReanimated","pressAndTouchGesture","minDuration","OS","maxDistance","onTouchesDown","pressableEvent","handleEvent","LONG_PRESS_TOUCHES_DOWN","onTouchesUp","reset","onTouchesCancel","canceled","CANCEL","FINALIZE","buttonGesture","isTV","NATIVE_BEGIN","onActivate","NATIVE_START","shouldActivateOnStart","gesture","pointerStyle","cursor","styleProp","pressed","childrenProp","rippleColor","defaultRippleColor","undefined","color","setDimensions","layout","tvProps","touchSoundDisabled","rippleRadius","radius","testOnly_onPress","testOnly_onPressIn","testOnly_onPressOut","testOnly_onLongPress","__DEV__"],"sourceRoot":"../../../../src","sources":["v3/components/Pressable.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","PressableWithTouchable","StatefulPressable","jsx","_jsx","Pressable","props","usesRelations","simultaneousWith","requireToFail","block"],"sourceRoot":"../../../../src","sources":["v3/components/Pressable.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAGzB,OAAOC,sBAAsB,MAAM,0BAA0B;AAC7D,OAAOC,iBAAiB,MAAM,qBAAqB;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA,SAAAC,GAAA,IAAAC,IAAA;AAaA,MAAMC,SAAS,GAAIC,KAAqB,IAAK;EAC3C,MAAMC,aAAa,GACjBD,KAAK,CAACE,gBAAgB,IAAI,IAAI,IAC9BF,KAAK,CAACG,aAAa,IAAI,IAAI,IAC3BH,KAAK,CAACI,KAAK,IAAI,IAAI;EAErB,OAAOH,aAAa,gBAClBH,IAAA,CAACF,iBAAiB;IAAA,GAAKI;EAAK,CAAG,CAAC,gBAEhCF,IAAA,CAACH,sBAAsB;IAAA,GAAKK;EAAK,CAAG,CACrC;AACH,CAAC;AAED,eAAeD,SAAS","ignoreList":[]}