react-native-gesture-handler 2.28.0 → 2.30.0-20251030-c99169d35
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/README.md +1 -0
- package/android/build.gradle +2 -2
- package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerDelegate.java +1 -0
- package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerDelegate.java +8 -1
- package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerInterface.java +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +73 -41
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +5 -13
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +2 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +14 -6
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +6 -0
- package/apple/Handlers/RNFlingHandler.m +7 -1
- package/apple/Handlers/RNLongPressHandler.m +6 -4
- package/apple/Handlers/RNPanHandler.m +4 -1
- package/apple/Handlers/RNTapHandler.m +2 -1
- package/lib/commonjs/components/GestureHandlerRootView.android.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -1
- package/lib/commonjs/components/Pressable/Pressable.js +15 -5
- package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
- package/lib/commonjs/components/Pressable/stateDefinitions.js +1 -0
- package/lib/commonjs/components/Pressable/stateDefinitions.js.map +1 -1
- package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeable.js +12 -10
- package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeable.js.map +1 -1
- package/lib/commonjs/handlers/NativeViewGestureHandler.js +32 -0
- package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js +2 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +7 -7
- package/lib/commonjs/handlers/gestures/GestureDetector/utils.js.map +1 -1
- package/lib/commonjs/handlers/gestures/flingGesture.js +1 -1
- package/lib/commonjs/handlers/gestures/gestureStateManager.js +1 -0
- package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +1 -0
- package/lib/commonjs/handlers/gestures/gestureStateManager.web.js.map +1 -1
- package/lib/commonjs/handlers/gestures/nativeGesture.js +34 -0
- package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -0
- package/lib/commonjs/specs/NativeRNGestureHandlerModule.js +9 -0
- package/lib/commonjs/specs/NativeRNGestureHandlerModule.js.map +1 -0
- package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.ts +6 -2
- package/lib/commonjs/useIsomorphicLayoutEffect.js +20 -0
- package/lib/commonjs/useIsomorphicLayoutEffect.js.map +1 -0
- package/lib/commonjs/web/handlers/{NativeViewGestureHandler.ts → NativeViewGestureHandler.js} +53 -87
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -0
- package/lib/commonjs/web_hammer/NativeViewGestureHandler.js +57 -0
- package/lib/commonjs/web_hammer/NativeViewGestureHandler.js.map +1 -0
- package/lib/module/components/GestureHandlerRootView.android.js.map +1 -1
- package/lib/module/components/GestureHandlerRootView.js.map +1 -1
- package/lib/module/components/Pressable/Pressable.js +15 -5
- package/lib/module/components/Pressable/Pressable.js.map +1 -1
- package/lib/module/components/Pressable/stateDefinitions.js +1 -0
- package/lib/module/components/Pressable/stateDefinitions.js.map +1 -1
- package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js +6 -4
- package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js.map +1 -1
- package/lib/module/handlers/NativeViewGestureHandler.js +27 -0
- package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -0
- package/lib/module/handlers/gestures/GestureDetector/index.js +3 -2
- package/lib/module/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/utils.js +7 -7
- package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
- package/lib/module/handlers/gestures/flingGesture.js +1 -1
- package/lib/module/handlers/gestures/gestureStateManager.js +1 -0
- package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -1
- package/lib/module/handlers/gestures/gestureStateManager.web.js +1 -0
- package/lib/module/handlers/gestures/gestureStateManager.web.js.map +1 -1
- package/lib/module/handlers/gestures/nativeGesture.js +29 -0
- package/lib/module/handlers/gestures/nativeGesture.js.map +1 -0
- package/lib/module/specs/NativeRNGestureHandlerModule.js +5 -0
- package/lib/module/specs/NativeRNGestureHandlerModule.js.map +1 -0
- package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.ts +6 -2
- package/lib/module/useIsomorphicLayoutEffect.js +15 -0
- package/lib/module/useIsomorphicLayoutEffect.js.map +1 -0
- package/lib/module/web/handlers/{NativeViewGestureHandler.ts → NativeViewGestureHandler.js} +36 -76
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -0
- package/lib/module/web_hammer/NativeViewGestureHandler.js +51 -0
- package/lib/module/web_hammer/NativeViewGestureHandler.js.map +1 -0
- package/lib/typescript/components/GestureHandlerRootView.android.d.ts +2 -2
- package/lib/typescript/components/GestureHandlerRootView.android.d.ts.map +1 -1
- package/lib/typescript/components/GestureHandlerRootView.d.ts +2 -2
- package/lib/typescript/components/GestureHandlerRootView.d.ts.map +1 -1
- package/lib/typescript/components/Pressable/Pressable.d.ts.map +1 -1
- package/lib/typescript/components/Pressable/stateDefinitions.d.ts +2 -1
- package/lib/typescript/components/Pressable/stateDefinitions.d.ts.map +1 -1
- package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeable.d.ts +1 -1
- package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeable.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/index.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/useAnimatedGesture.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +4 -4
- package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/flingGesture.d.ts +1 -1
- package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +2 -0
- package/lib/typescript/handlers/gestures/gestureStateManager.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/gestureStateManager.web.d.ts.map +1 -1
- package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts +3 -2
- package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/useIsomorphicLayoutEffect.d.ts +3 -0
- package/lib/typescript/useIsomorphicLayoutEffect.d.ts.map +1 -0
- package/package.json +7 -7
- package/src/components/GestureHandlerRootView.android.tsx +3 -2
- package/src/components/GestureHandlerRootView.tsx +3 -2
- package/src/components/Pressable/Pressable.tsx +16 -5
- package/src/components/Pressable/stateDefinitions.ts +1 -0
- package/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx +17 -4
- package/src/handlers/gestures/GestureDetector/index.tsx +3 -8
- package/src/handlers/gestures/GestureDetector/useAnimatedGesture.ts +4 -1
- package/src/handlers/gestures/GestureDetector/utils.ts +14 -8
- package/src/handlers/gestures/flingGesture.ts +1 -1
- package/src/handlers/gestures/gestureStateManager.ts +4 -0
- package/src/handlers/gestures/gestureStateManager.web.ts +2 -0
- package/src/specs/RNGestureHandlerRootViewNativeComponent.ts +6 -2
- package/src/useIsomorphicLayoutEffect.tsx +19 -0
- package/lib/commonjs/handlers/NativeViewGestureHandler.ts +0 -59
- package/lib/commonjs/handlers/gestures/nativeGesture.ts +0 -33
- package/lib/commonjs/specs/NativeRNGestureHandlerModule.ts +0 -26
- package/lib/commonjs/web_hammer/NativeViewGestureHandler.ts +0 -47
- package/lib/module/handlers/NativeViewGestureHandler.ts +0 -59
- package/lib/module/handlers/gestures/nativeGesture.ts +0 -33
- package/lib/module/specs/NativeRNGestureHandlerModule.ts +0 -26
- package/lib/module/web_hammer/NativeViewGestureHandler.ts +0 -47
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import type { NativeViewGestureHandlerPayload } from './GestureHandlerEventPayload';
|
|
2
|
-
import createHandler from './createHandler';
|
|
3
|
-
import {
|
|
4
|
-
BaseGestureHandlerProps,
|
|
5
|
-
baseGestureHandlerProps,
|
|
6
|
-
} from './gestureHandlerCommon';
|
|
7
|
-
|
|
8
|
-
export const nativeViewGestureHandlerProps = [
|
|
9
|
-
'shouldActivateOnStart',
|
|
10
|
-
'disallowInterruption',
|
|
11
|
-
] as const;
|
|
12
|
-
|
|
13
|
-
export interface NativeViewGestureConfig {
|
|
14
|
-
/**
|
|
15
|
-
* Android only.
|
|
16
|
-
*
|
|
17
|
-
* Determines whether the handler should check for an existing touch event on
|
|
18
|
-
* instantiation.
|
|
19
|
-
*/
|
|
20
|
-
shouldActivateOnStart?: boolean;
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* When `true`, cancels all other gesture handlers when this
|
|
24
|
-
* `NativeViewGestureHandler` receives an `ACTIVE` state event.
|
|
25
|
-
*/
|
|
26
|
-
disallowInterruption?: boolean;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* @deprecated NativeViewGestureHandler will be removed in the future version of Gesture Handler. Use `Gesture.Native()` instead.
|
|
31
|
-
*/
|
|
32
|
-
export interface NativeViewGestureHandlerProps
|
|
33
|
-
extends BaseGestureHandlerProps<NativeViewGestureHandlerPayload>,
|
|
34
|
-
NativeViewGestureConfig {}
|
|
35
|
-
|
|
36
|
-
export const nativeViewProps = [
|
|
37
|
-
...baseGestureHandlerProps,
|
|
38
|
-
...nativeViewGestureHandlerProps,
|
|
39
|
-
] as const;
|
|
40
|
-
|
|
41
|
-
export const nativeViewHandlerName = 'NativeViewGestureHandler';
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* @deprecated NativeViewGestureHandler will be removed in the future version of Gesture Handler. Use `Gesture.Native()` instead.
|
|
45
|
-
*/
|
|
46
|
-
export type NativeViewGestureHandler = typeof NativeViewGestureHandler;
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* @deprecated NativeViewGestureHandler will be removed in the future version of Gesture Handler. Use `Gesture.Native()` instead.
|
|
50
|
-
*/
|
|
51
|
-
// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file
|
|
52
|
-
export const NativeViewGestureHandler = createHandler<
|
|
53
|
-
NativeViewGestureHandlerProps,
|
|
54
|
-
NativeViewGestureHandlerPayload
|
|
55
|
-
>({
|
|
56
|
-
name: nativeViewHandlerName,
|
|
57
|
-
allowedProps: nativeViewProps,
|
|
58
|
-
config: {},
|
|
59
|
-
});
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { BaseGestureConfig, BaseGesture } from './gesture';
|
|
2
|
-
import { NativeViewGestureConfig } from '../NativeViewGestureHandler';
|
|
3
|
-
import type { NativeViewGestureHandlerPayload } from '../GestureHandlerEventPayload';
|
|
4
|
-
|
|
5
|
-
export class NativeGesture extends BaseGesture<NativeViewGestureHandlerPayload> {
|
|
6
|
-
public config: BaseGestureConfig & NativeViewGestureConfig = {};
|
|
7
|
-
|
|
8
|
-
constructor() {
|
|
9
|
-
super();
|
|
10
|
-
|
|
11
|
-
this.handlerName = 'NativeViewGestureHandler';
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* When true, underlying handler will activate unconditionally when in `BEGAN` or `UNDETERMINED` state.
|
|
16
|
-
* @param value
|
|
17
|
-
*/
|
|
18
|
-
shouldActivateOnStart(value: boolean) {
|
|
19
|
-
this.config.shouldActivateOnStart = value;
|
|
20
|
-
return this;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* When true, cancels all other gesture handlers when this `NativeViewGestureHandler` receives an `ACTIVE` state event.
|
|
25
|
-
* @param value
|
|
26
|
-
*/
|
|
27
|
-
disallowInterruption(value: boolean) {
|
|
28
|
-
this.config.disallowInterruption = value;
|
|
29
|
-
return this;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export type NativeGestureType = InstanceType<typeof NativeGesture>;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { TurboModuleRegistry, TurboModule } from 'react-native';
|
|
2
|
-
import { Double } from 'react-native/Libraries/Types/CodegenTypes';
|
|
3
|
-
|
|
4
|
-
export interface Spec extends TurboModule {
|
|
5
|
-
handleSetJSResponder: (tag: Double, blockNativeResponder: boolean) => void;
|
|
6
|
-
handleClearJSResponder: () => void;
|
|
7
|
-
createGestureHandler: (
|
|
8
|
-
handlerName: string,
|
|
9
|
-
handlerTag: Double,
|
|
10
|
-
// Record<> is not supported by codegen
|
|
11
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
12
|
-
config: Object
|
|
13
|
-
) => void;
|
|
14
|
-
attachGestureHandler: (
|
|
15
|
-
handlerTag: Double,
|
|
16
|
-
newView: Double,
|
|
17
|
-
actionType: Double
|
|
18
|
-
) => void;
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
20
|
-
updateGestureHandler: (handlerTag: Double, newConfig: Object) => void;
|
|
21
|
-
dropGestureHandler: (handlerTag: Double) => void;
|
|
22
|
-
install: () => boolean;
|
|
23
|
-
flushOperations: () => void;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export default TurboModuleRegistry.getEnforcing<Spec>('RNGestureHandlerModule');
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import DiscreteGestureHandler from './DiscreteGestureHandler';
|
|
2
|
-
import { HammerInputExt } from './GestureHandler';
|
|
3
|
-
import * as NodeManager from './NodeManager';
|
|
4
|
-
import PressGestureHandler from './PressGestureHandler';
|
|
5
|
-
import { TEST_MIN_IF_NOT_NAN, VEC_LEN_SQ } from './utils';
|
|
6
|
-
|
|
7
|
-
class NativeViewGestureHandler extends PressGestureHandler {
|
|
8
|
-
get isNative() {
|
|
9
|
-
return true;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
onRawEvent(ev: HammerInputExt) {
|
|
13
|
-
super.onRawEvent(ev);
|
|
14
|
-
if (!ev.isFinal) {
|
|
15
|
-
// if (this.ref instanceof ScrollView) {
|
|
16
|
-
if (TEST_MIN_IF_NOT_NAN(VEC_LEN_SQ({ x: ev.deltaX, y: ev.deltaY }), 10)) {
|
|
17
|
-
// @ts-ignore FIXME(TS) config type
|
|
18
|
-
if (this.config.disallowInterruption) {
|
|
19
|
-
const gestures = Object.values(NodeManager.getNodes()).filter(
|
|
20
|
-
(gesture) => {
|
|
21
|
-
const { handlerTag, view, isGestureRunning } = gesture;
|
|
22
|
-
return (
|
|
23
|
-
// Check if this gesture isn't self
|
|
24
|
-
handlerTag !== this.handlerTag &&
|
|
25
|
-
// Ensure the gesture needs to be cancelled
|
|
26
|
-
isGestureRunning &&
|
|
27
|
-
// ScrollView can cancel discrete gestures like taps and presses
|
|
28
|
-
gesture instanceof DiscreteGestureHandler &&
|
|
29
|
-
// Ensure a view exists and is a child of the current view
|
|
30
|
-
view &&
|
|
31
|
-
// @ts-ignore FIXME(TS) view type
|
|
32
|
-
this.view.contains(view)
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
);
|
|
36
|
-
// Cancel all of the gestures that passed the filter
|
|
37
|
-
for (const gesture of gestures) {
|
|
38
|
-
// TODO: Bacon: Send some cached event.
|
|
39
|
-
gesture.forceInvalidate(ev);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export default NativeViewGestureHandler;
|