react-native-gesture-handler 2.12.0 → 2.13.0
Sign up to get free protection for your applications and to get access to all the features.
- package/RNGestureHandler.podspec +0 -15
- package/android/build.gradle +5 -76
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +16 -1
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +43 -18
- package/android/src/main/java/com/swmansion/gesturehandler/core/HoverGestureHandler.kt +120 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt +7 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/Extensions.kt +5 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +43 -16
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +21 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +9 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +10 -0
- package/ios/Handlers/RNHoverHandler.h +12 -0
- package/ios/Handlers/RNHoverHandler.m +152 -0
- package/ios/RNGestureHandlerButtonComponentView.mm +2 -0
- package/ios/RNGestureHandlerEvents.h +1 -0
- package/ios/RNGestureHandlerEvents.m +10 -0
- package/ios/RNGestureHandlerManager.mm +2 -0
- package/ios/RNManualActivationRecognizer.m +2 -1
- package/ios/RNRootViewGestureRecognizer.m +7 -2
- package/lib/commonjs/RNGestureHandlerModule.macos.js +3 -1
- package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js +7 -2
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.windows.js +3 -1
- package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -1
- package/lib/commonjs/components/DrawerLayout.js +1 -0
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js +1 -2
- package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableHighlight.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +1 -1
- package/lib/commonjs/components/touchables/index.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js +4 -4
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector.js +4 -2
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js +5 -0
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureObjects.js +5 -0
- package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -1
- package/lib/commonjs/handlers/gestures/hoverGesture.js +74 -0
- package/lib/commonjs/handlers/gestures/hoverGesture.js.map +1 -0
- package/lib/commonjs/index.js +8 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -10
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/GestureHandler.js +61 -88
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/HoverGestureHandler.js +62 -0
- package/lib/commonjs/web/handlers/HoverGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +6 -7
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +12 -4
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js +2 -7
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -10
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web/interfaces.js +1 -1
- package/lib/commonjs/web/interfaces.js.map +1 -1
- package/lib/commonjs/web/tools/EventManager.js +18 -4
- package/lib/commonjs/web/tools/EventManager.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerDelegate.js +6 -0
- package/lib/commonjs/web/tools/GestureHandlerDelegate.js.map +1 -0
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +5 -7
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +118 -0
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -0
- package/lib/commonjs/web/tools/PointerEventManager.js +38 -5
- package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
- package/lib/commonjs/web/tools/TouchEventManager.js +2 -2
- package/lib/commonjs/web/tools/TouchEventManager.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.macos.js +2 -1
- package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js +6 -3
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.windows.js +2 -1
- package/lib/module/RNGestureHandlerModule.windows.js.map +1 -1
- package/lib/module/components/DrawerLayout.js +1 -0
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/touchables/GenericTouchable.js +1 -2
- package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/module/components/touchables/TouchableHighlight.js.map +1 -1
- package/lib/module/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
- package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/module/components/touchables/TouchableWithoutFeedback.js.map +1 -1
- package/lib/module/components/touchables/index.js.map +1 -1
- package/lib/module/handlers/createHandler.js +4 -4
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +3 -2
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/module/handlers/gestures/gesture.js +5 -0
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/handlers/gestures/gestureObjects.js +4 -0
- package/lib/module/handlers/gestures/gestureObjects.js.map +1 -1
- package/lib/module/handlers/gestures/hoverGesture.js +62 -0
- package/lib/module/handlers/gestures/hoverGesture.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js +0 -10
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +61 -84
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/HoverGestureHandler.js +47 -0
- package/lib/module/web/handlers/HoverGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/LongPressGestureHandler.js +5 -7
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js +11 -4
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +2 -7
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/TapGestureHandler.js +0 -10
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/web/interfaces.js +1 -1
- package/lib/module/web/interfaces.js.map +1 -1
- package/lib/module/web/tools/EventManager.js +18 -4
- package/lib/module/web/tools/EventManager.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerDelegate.js +2 -0
- package/lib/module/web/tools/GestureHandlerDelegate.js.map +1 -0
- package/lib/module/web/tools/GestureHandlerOrchestrator.js +5 -6
- package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerWebDelegate.js +102 -0
- package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -0
- package/lib/module/web/tools/PointerEventManager.js +39 -6
- package/lib/module/web/tools/PointerEventManager.js.map +1 -1
- package/lib/module/web/tools/TouchEventManager.js +2 -2
- package/lib/module/web/tools/TouchEventManager.js.map +1 -1
- package/lib/typescript/RNGestureHandlerModule.macos.d.ts +1 -1
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +3 -1
- package/lib/typescript/RNGestureHandlerModule.windows.d.ts +1 -1
- package/lib/typescript/components/DrawerLayout.d.ts +7 -1
- package/lib/typescript/components/touchables/GenericTouchable.d.ts +3 -2
- package/lib/typescript/components/touchables/TouchableHighlight.d.ts +4 -3
- package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +3 -2
- package/lib/typescript/components/touchables/TouchableOpacity.d.ts +4 -5
- package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +1 -0
- package/lib/typescript/components/touchables/index.d.ts +3 -0
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -1
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +3 -1
- package/lib/typescript/handlers/gestures/gesture.d.ts +2 -1
- package/lib/typescript/handlers/gestures/gestureObjects.d.ts +2 -0
- package/lib/typescript/handlers/gestures/hoverGesture.d.ts +32 -0
- package/lib/typescript/index.d.ts +4 -0
- package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +0 -6
- package/lib/typescript/web/handlers/GestureHandler.d.ts +12 -17
- package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +10 -0
- package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +0 -4
- package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +1 -1
- package/lib/typescript/web/handlers/PanGestureHandler.d.ts +0 -4
- package/lib/typescript/web/handlers/TapGestureHandler.d.ts +0 -6
- package/lib/typescript/web/interfaces.d.ts +4 -3
- package/lib/typescript/web/tools/EventManager.d.ts +9 -5
- package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +22 -0
- package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +21 -0
- package/lib/typescript/web/tools/NodeManager.d.ts +2 -2
- package/lib/typescript/web/tools/PointerEventManager.d.ts +1 -1
- package/lib/typescript/web/tools/TouchEventManager.d.ts +1 -1
- package/package.json +2 -2
- package/src/RNGestureHandlerModule.macos.ts +5 -1
- package/src/RNGestureHandlerModule.web.ts +7 -1
- package/src/RNGestureHandlerModule.windows.ts +5 -1
- package/src/components/DrawerLayout.tsx +9 -0
- package/src/components/touchables/GenericTouchable.tsx +4 -4
- package/src/components/touchables/TouchableHighlight.tsx +6 -3
- package/src/components/touchables/TouchableNativeFeedback.android.tsx +5 -4
- package/src/components/touchables/TouchableOpacity.tsx +6 -7
- package/src/components/touchables/TouchableWithoutFeedback.tsx +3 -1
- package/src/components/touchables/index.ts +3 -0
- package/src/handlers/createHandler.tsx +5 -3
- package/src/handlers/gestureHandlerCommon.ts +39 -0
- package/src/handlers/gestures/GestureDetector.tsx +3 -1
- package/src/handlers/gestures/gesture.ts +6 -0
- package/src/handlers/gestures/gestureObjects.ts +5 -0
- package/src/handlers/gestures/hoverGesture.ts +83 -0
- package/src/index.ts +8 -0
- package/src/web/handlers/FlingGestureHandler.ts +0 -11
- package/src/web/handlers/GestureHandler.ts +68 -88
- package/src/web/handlers/HoverGestureHandler.ts +43 -0
- package/src/web/handlers/LongPressGestureHandler.ts +5 -7
- package/src/web/handlers/NativeViewGestureHandler.ts +11 -4
- package/src/web/handlers/PanGestureHandler.ts +1 -6
- package/src/web/handlers/TapGestureHandler.ts +0 -11
- package/src/web/interfaces.ts +4 -2
- package/src/web/tools/EventManager.ts +15 -7
- package/src/web/tools/GestureHandlerDelegate.ts +23 -0
- package/src/web/tools/GestureHandlerOrchestrator.ts +7 -6
- package/src/web/tools/GestureHandlerWebDelegate.ts +115 -0
- package/src/web/tools/PointerEventManager.ts +46 -16
- package/src/web/tools/TouchEventManager.ts +3 -3
@@ -1,3 +1,6 @@
|
|
1
|
+
export type { TouchableHighlightProps } from './TouchableHighlight';
|
2
|
+
export type { TouchableOpacityProps } from './TouchableOpacity';
|
3
|
+
export type { TouchableWithoutFeedbackProps } from './TouchableWithoutFeedback';
|
1
4
|
export { default as TouchableNativeFeedback } from './TouchableNativeFeedback';
|
2
5
|
export { default as TouchableWithoutFeedback } from './TouchableWithoutFeedback';
|
3
6
|
export { default as TouchableOpacity } from './TouchableOpacity';
|
@@ -22,7 +22,7 @@ export declare type NativeViewGestureHandlerPayload = {
|
|
22
22
|
*/
|
23
23
|
pointerInside: boolean;
|
24
24
|
};
|
25
|
-
export declare const nativeViewProps: readonly ["id", "enabled", "shouldCancelWhenOutside", "hitSlop", "cancelsTouchesInView", "userSelect", "waitFor", "simultaneousHandlers", "onBegan", "onFailed", "onCancelled", "onActivated", "onEnded", "onGestureEvent", "onHandlerStateChange", "shouldActivateOnStart", "disallowInterruption"];
|
25
|
+
export declare const nativeViewProps: readonly ["id", "enabled", "shouldCancelWhenOutside", "hitSlop", "cancelsTouchesInView", "userSelect", "activeCursor", "waitFor", "simultaneousHandlers", "onBegan", "onFailed", "onCancelled", "onActivated", "onEnded", "onGestureEvent", "onHandlerStateChange", "shouldActivateOnStart", "disallowInterruption"];
|
26
26
|
export declare const nativeViewHandlerName = "NativeViewGestureHandler";
|
27
27
|
export declare type NativeViewGestureHandler = typeof NativeViewGestureHandler;
|
28
28
|
export declare const NativeViewGestureHandler: import("react").ComponentType<NativeViewGestureHandlerProps & import("react").RefAttributes<any>>;
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
2
2
|
import { State } from '../State';
|
3
3
|
import { TouchEventType } from '../TouchEventType';
|
4
4
|
import { ValueOf } from '../typeUtils';
|
5
|
-
export declare const baseGestureHandlerProps: readonly ["id", "enabled", "shouldCancelWhenOutside", "hitSlop", "cancelsTouchesInView", "userSelect", "waitFor", "simultaneousHandlers", "onBegan", "onFailed", "onCancelled", "onActivated", "onEnded", "onGestureEvent", "onHandlerStateChange"];
|
5
|
+
export declare const baseGestureHandlerProps: readonly ["id", "enabled", "shouldCancelWhenOutside", "hitSlop", "cancelsTouchesInView", "userSelect", "activeCursor", "waitFor", "simultaneousHandlers", "onBegan", "onFailed", "onCancelled", "onActivated", "onEnded", "onGestureEvent", "onHandlerStateChange"];
|
6
6
|
export declare const baseGestureHandlerWithMonitorProps: string[];
|
7
7
|
export interface GestureEventPayload {
|
8
8
|
handlerTag: number;
|
@@ -14,6 +14,7 @@ export interface HandlerStateChangeEventPayload extends GestureEventPayload {
|
|
14
14
|
}
|
15
15
|
export declare type HitSlop = number | Partial<Record<'left' | 'right' | 'top' | 'bottom' | 'vertical' | 'horizontal', number>> | Record<'width' | 'left', number> | Record<'width' | 'right', number> | Record<'height' | 'top', number> | Record<'height' | 'bottom', number>;
|
16
16
|
export declare type UserSelect = 'none' | 'auto' | 'text';
|
17
|
+
export declare type ActiveCursor = 'auto' | 'default' | 'none' | 'context-menu' | 'help' | 'pointer' | 'progress' | 'wait' | 'cell' | 'crosshair' | 'text' | 'vertical-text' | 'alias' | 'copy' | 'move' | 'no-drop' | 'not-allowed' | 'grab' | 'grabbing' | 'e-resize' | 'n-resize' | 'ne-resize' | 'nw-resize' | 's-resize' | 'se-resize' | 'sw-resize' | 'w-resize' | 'ew-resize' | 'ns-resize' | 'nesw-resize' | 'nwse-resize' | 'col-resize' | 'row-resize' | 'all-scroll' | 'zoom-in' | 'zoom-out';
|
17
18
|
export interface GestureEvent<ExtraEventPayloadT = Record<string, unknown>> {
|
18
19
|
nativeEvent: Readonly<GestureEventPayload & ExtraEventPayloadT>;
|
19
20
|
}
|
@@ -42,6 +43,7 @@ export declare type CommonGestureConfig = {
|
|
42
43
|
shouldCancelWhenOutside?: boolean;
|
43
44
|
hitSlop?: HitSlop;
|
44
45
|
userSelect?: UserSelect;
|
46
|
+
activeCursor?: ActiveCursor;
|
45
47
|
};
|
46
48
|
export declare type BaseGestureHandlerProps<ExtraEventPayloadT extends Record<string, unknown> = Record<string, unknown>> = CommonGestureConfig & {
|
47
49
|
id?: string;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { FlingGestureHandlerEventPayload } from '../FlingGestureHandler';
|
2
2
|
import { ForceTouchGestureHandlerEventPayload } from '../ForceTouchGestureHandler';
|
3
|
-
import { HitSlop, CommonGestureConfig, GestureTouchEvent, GestureStateChangeEvent, GestureUpdateEvent } from '../gestureHandlerCommon';
|
3
|
+
import { HitSlop, CommonGestureConfig, GestureTouchEvent, GestureStateChangeEvent, GestureUpdateEvent, ActiveCursor } from '../gestureHandlerCommon';
|
4
4
|
import { GestureStateManagerType } from './gestureStateManager';
|
5
5
|
import { LongPressGestureHandlerEventPayload } from '../LongPressGestureHandler';
|
6
6
|
import { PanGestureHandlerEventPayload } from '../PanGestureHandler';
|
@@ -89,6 +89,7 @@ export declare abstract class BaseGesture<EventPayloadT extends Record<string, u
|
|
89
89
|
enabled(enabled: boolean): this;
|
90
90
|
shouldCancelWhenOutside(value: boolean): this;
|
91
91
|
hitSlop(hitSlop: HitSlop): this;
|
92
|
+
activeCursor(activeCursor: ActiveCursor): this;
|
92
93
|
runOnJS(runOnJS: boolean): this;
|
93
94
|
simultaneousWithExternalGesture(...gestures: Exclude<GestureRef, number>[]): this;
|
94
95
|
requireExternalGestureToFail(...gestures: Exclude<GestureRef, number>[]): this;
|
@@ -9,6 +9,7 @@ import { RotationGesture } from './rotationGesture';
|
|
9
9
|
import { TapGesture } from './tapGesture';
|
10
10
|
import { NativeGesture } from './nativeGesture';
|
11
11
|
import { ManualGesture } from './manualGesture';
|
12
|
+
import { HoverGesture } from './hoverGesture';
|
12
13
|
export declare const GestureObjects: {
|
13
14
|
Tap: () => TapGesture;
|
14
15
|
Pan: () => PanGesture;
|
@@ -19,6 +20,7 @@ export declare const GestureObjects: {
|
|
19
20
|
ForceTouch: () => ForceTouchGesture;
|
20
21
|
Native: () => NativeGesture;
|
21
22
|
Manual: () => ManualGesture;
|
23
|
+
Hover: () => HoverGesture;
|
22
24
|
/**
|
23
25
|
* Builds a composed gesture consisting of gestures provided as parameters.
|
24
26
|
* The first one that becomes active cancels the rest of gestures.
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { BaseGestureConfig, ContinousBaseGesture } from './gesture';
|
2
|
+
import { GestureUpdateEvent } from '../gestureHandlerCommon';
|
3
|
+
export declare type HoverGestureHandlerEventPayload = {
|
4
|
+
x: number;
|
5
|
+
y: number;
|
6
|
+
absoluteX: number;
|
7
|
+
absoluteY: number;
|
8
|
+
};
|
9
|
+
export declare type HoverGestureChangeEventPayload = {
|
10
|
+
changeX: number;
|
11
|
+
changeY: number;
|
12
|
+
};
|
13
|
+
export declare enum HoverEffect {
|
14
|
+
NONE = 0,
|
15
|
+
LIFT = 1,
|
16
|
+
HIGHLIGHT = 2
|
17
|
+
}
|
18
|
+
export interface HoverGestureConfig {
|
19
|
+
hoverEffect?: HoverEffect;
|
20
|
+
}
|
21
|
+
export declare const hoverGestureHandlerProps: readonly ["hoverEffect"];
|
22
|
+
export declare class HoverGesture extends ContinousBaseGesture<HoverGestureHandlerEventPayload, HoverGestureChangeEventPayload> {
|
23
|
+
config: BaseGestureConfig & HoverGestureConfig;
|
24
|
+
constructor();
|
25
|
+
/**
|
26
|
+
* Sets the visual hover effect.
|
27
|
+
* iOS only
|
28
|
+
*/
|
29
|
+
effect(effect: HoverEffect): this;
|
30
|
+
onChange(callback: (event: GestureUpdateEvent<HoverGestureHandlerEventPayload & HoverGestureChangeEventPayload>) => void): this;
|
31
|
+
}
|
32
|
+
export declare type HoverGestureType = InstanceType<typeof HoverGesture>;
|
@@ -34,14 +34,18 @@ export type { RotationGestureType as RotationGesture } from './handlers/gestures
|
|
34
34
|
export type { ForceTouchGestureType as ForceTouchGesture } from './handlers/gestures/forceTouchGesture';
|
35
35
|
export type { NativeGestureType as NativeGesture } from './handlers/gestures/nativeGesture';
|
36
36
|
export type { ManualGestureType as ManualGesture } from './handlers/gestures/manualGesture';
|
37
|
+
export type { HoverGestureType as HoverGesture } from './handlers/gestures/hoverGesture';
|
37
38
|
export type { ComposedGestureType as ComposedGesture, RaceGestureType as RaceGesture, SimultaneousGestureType as SimultaneousGesture, ExclusiveGestureType as ExclusiveGesture, } from './handlers/gestures/gestureComposition';
|
38
39
|
export type { GestureStateManagerType as GestureStateManager } from './handlers/gestures/gestureStateManager';
|
39
40
|
export { NativeViewGestureHandler } from './handlers/NativeViewGestureHandler';
|
40
41
|
export type { RawButtonProps, BaseButtonProps, RectButtonProps, BorderlessButtonProps, } from './components/GestureButtons';
|
41
42
|
export { RawButton, BaseButton, RectButton, BorderlessButton, PureNativeButton, } from './components/GestureButtons';
|
43
|
+
export type { TouchableHighlightProps, TouchableOpacityProps, TouchableWithoutFeedbackProps, } from './components/touchables';
|
42
44
|
export { TouchableHighlight, TouchableNativeFeedback, TouchableOpacity, TouchableWithoutFeedback, } from './components/touchables';
|
43
45
|
export { ScrollView, Switch, TextInput, DrawerLayoutAndroid, FlatList, RefreshControl, } from './components/GestureComponents';
|
46
|
+
export { HoverEffect } from './handlers/gestures/hoverGesture';
|
44
47
|
export type { GestureHandlerGestureEvent, GestureHandlerStateChangeEvent, GestureHandlerGestureEventNativeEvent, GestureHandlerStateChangeNativeEvent, NativeViewGestureHandlerGestureEvent, NativeViewGestureHandlerStateChangeEvent, TapGestureHandlerGestureEvent, TapGestureHandlerStateChangeEvent, ForceTouchGestureHandlerGestureEvent, ForceTouchGestureHandlerStateChangeEvent, LongPressGestureHandlerGestureEvent, LongPressGestureHandlerStateChangeEvent, PanGestureHandlerGestureEvent, PanGestureHandlerStateChangeEvent, PinchGestureHandlerGestureEvent, PinchGestureHandlerStateChangeEvent, RotationGestureHandlerGestureEvent, RotationGestureHandlerStateChangeEvent, FlingGestureHandlerGestureEvent, FlingGestureHandlerStateChangeEvent, NativeViewGestureHandlerProperties, TapGestureHandlerProperties, LongPressGestureHandlerProperties, PanGestureHandlerProperties, PinchGestureHandlerProperties, RotationGestureHandlerProperties, FlingGestureHandlerProperties, ForceTouchGestureHandlerProperties, RawButtonProperties, BaseButtonProperties, RectButtonProperties, BorderlessButtonProperties, } from './handlers/gestureHandlerTypesCompat';
|
48
|
+
export type { SwipeableProps } from './components/Swipeable';
|
45
49
|
export { default as Swipeable } from './components/Swipeable';
|
46
50
|
export type { DrawerLayoutProps, DrawerPosition, DrawerState, DrawerType, DrawerLockMode, DrawerKeyboardDismissMode, } from './components/DrawerLayout';
|
47
51
|
export { default as DrawerLayout } from './components/DrawerLayout';
|
@@ -12,12 +12,6 @@ export default class FlingGestureHandler extends GestureHandler {
|
|
12
12
|
private keyPointer;
|
13
13
|
init(ref: number, propsRef: React.RefObject<unknown>): void;
|
14
14
|
updateGestureConfig({ enabled, ...props }: Config): void;
|
15
|
-
protected transformNativeEvent(): {
|
16
|
-
x: number;
|
17
|
-
y: number;
|
18
|
-
absoluteX: number;
|
19
|
-
absoluteY: number;
|
20
|
-
};
|
21
15
|
private startFling;
|
22
16
|
private tryEndFling;
|
23
17
|
private endFling;
|
@@ -2,28 +2,27 @@ import { State } from '../../State';
|
|
2
2
|
import { Config, AdaptedEvent, PointerType } from '../interfaces';
|
3
3
|
import EventManager from '../tools/EventManager';
|
4
4
|
import PointerTracker from '../tools/PointerTracker';
|
5
|
+
import { GestureHandlerDelegate } from '../tools/GestureHandlerDelegate';
|
5
6
|
export default abstract class GestureHandler {
|
6
7
|
private lastSentState;
|
7
8
|
protected currentState: State;
|
8
9
|
protected shouldCancellWhenOutside: boolean;
|
9
10
|
protected hasCustomActivationCriteria: boolean;
|
10
11
|
protected enabled: boolean;
|
11
|
-
private
|
12
|
+
private viewRef;
|
12
13
|
private propsRef;
|
13
14
|
private handlerTag;
|
14
15
|
protected config: Config;
|
15
|
-
protected view: HTMLElement;
|
16
|
-
protected eventManagers: EventManager[];
|
17
16
|
protected tracker: PointerTracker;
|
18
17
|
protected activationIndex: number;
|
19
18
|
protected awaiting: boolean;
|
20
19
|
protected active: boolean;
|
21
20
|
protected shouldResetProgress: boolean;
|
22
21
|
protected pointerType: PointerType;
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
22
|
+
protected delegate: GestureHandlerDelegate<unknown>;
|
23
|
+
constructor(delegate: GestureHandlerDelegate<unknown>);
|
24
|
+
protected init(viewRef: number, propsRef: React.RefObject<unknown>): void;
|
25
|
+
attachEventManager(manager: EventManager<unknown>): void;
|
27
26
|
protected onCancel(): void;
|
28
27
|
protected onReset(): void;
|
29
28
|
protected resetProgress(): void;
|
@@ -58,32 +57,28 @@ export default abstract class GestureHandler {
|
|
58
57
|
protected onPointerUp(event: AdaptedEvent): void;
|
59
58
|
protected onPointerRemove(event: AdaptedEvent): void;
|
60
59
|
protected onPointerMove(event: AdaptedEvent): void;
|
61
|
-
protected
|
60
|
+
protected onPointerLeave(event: AdaptedEvent): void;
|
62
61
|
protected onPointerEnter(event: AdaptedEvent): void;
|
63
62
|
protected onPointerCancel(event: AdaptedEvent): void;
|
64
63
|
protected onPointerOutOfBounds(event: AdaptedEvent): void;
|
64
|
+
protected onPointerMoveOver(_event: AdaptedEvent): void;
|
65
|
+
protected onPointerMoveOut(_event: AdaptedEvent): void;
|
65
66
|
private tryToSendMoveEvent;
|
66
67
|
sendTouchEvent(event: AdaptedEvent): void;
|
67
68
|
sendEvent: (newState: State, oldState: State) => void;
|
68
69
|
private transformEventData;
|
69
70
|
private transformTouchEvent;
|
70
71
|
private cancelTouches;
|
71
|
-
protected transformNativeEvent():
|
72
|
+
protected transformNativeEvent(): Record<string, unknown>;
|
72
73
|
updateGestureConfig({ enabled, ...props }: Config): void;
|
73
74
|
protected checkCustomActivationCriteria(criterias: string[]): void;
|
74
75
|
private validateHitSlops;
|
75
76
|
private checkHitSlop;
|
76
|
-
isPointerInBounds({ x, y }: {
|
77
|
-
x: number;
|
78
|
-
y: number;
|
79
|
-
}): boolean;
|
80
77
|
protected resetConfig(): void;
|
81
78
|
getTag(): number;
|
82
79
|
setTag(tag: number): void;
|
83
|
-
|
84
|
-
|
85
|
-
getView(): HTMLElement;
|
86
|
-
getEventManagers(): EventManager[];
|
80
|
+
getConfig(): Config;
|
81
|
+
getDelegate(): GestureHandlerDelegate<unknown>;
|
87
82
|
getTracker(): PointerTracker;
|
88
83
|
getTrackedPointersID(): number[];
|
89
84
|
getState(): State;
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { AdaptedEvent, Config } from '../interfaces';
|
2
|
+
import GestureHandler from './GestureHandler';
|
3
|
+
export default class HoverGestureHandler extends GestureHandler {
|
4
|
+
init(ref: number, propsRef: React.RefObject<unknown>): void;
|
5
|
+
updateGestureConfig({ enabled, ...props }: Config): void;
|
6
|
+
protected onPointerMoveOver(event: AdaptedEvent): void;
|
7
|
+
protected onPointerMoveOut(event: AdaptedEvent): void;
|
8
|
+
protected onPointerMove(event: AdaptedEvent): void;
|
9
|
+
protected onPointerCancel(event: AdaptedEvent): void;
|
10
|
+
}
|
@@ -12,10 +12,6 @@ export default class LongPressGestureHandler extends GestureHandler {
|
|
12
12
|
private activationTimeout;
|
13
13
|
init(ref: number, propsRef: React.RefObject<unknown>): void;
|
14
14
|
protected transformNativeEvent(): {
|
15
|
-
x: number;
|
16
|
-
y: number;
|
17
|
-
absoluteX: number;
|
18
|
-
absoluteY: number;
|
19
15
|
duration: number;
|
20
16
|
};
|
21
17
|
updateGestureConfig({ enabled, ...props }: Config): void;
|
@@ -14,7 +14,7 @@ export default class NativeViewGestureHandler extends GestureHandler {
|
|
14
14
|
protected onPointerAdd(event: AdaptedEvent): void;
|
15
15
|
private newPointerAction;
|
16
16
|
protected onPointerMove(event: AdaptedEvent): void;
|
17
|
-
protected
|
17
|
+
protected onPointerLeave(): void;
|
18
18
|
protected onPointerUp(event: AdaptedEvent): void;
|
19
19
|
protected onPointerRemove(event: AdaptedEvent): void;
|
20
20
|
private onUp;
|
@@ -32,12 +32,8 @@ export default class PanGestureHandler extends GestureHandler {
|
|
32
32
|
protected transformNativeEvent(): {
|
33
33
|
translationX: number;
|
34
34
|
translationY: number;
|
35
|
-
absoluteX: number;
|
36
|
-
absoluteY: number;
|
37
35
|
velocityX: number;
|
38
36
|
velocityY: number;
|
39
|
-
x: number;
|
40
|
-
y: number;
|
41
37
|
};
|
42
38
|
private getTranslationX;
|
43
39
|
private getTranslationY;
|
@@ -21,12 +21,6 @@ export default class TapGestureHandler extends GestureHandler {
|
|
21
21
|
init(ref: number, propsRef: React.RefObject<unknown>): void;
|
22
22
|
updateGestureConfig({ enabled, ...props }: Config): void;
|
23
23
|
protected resetConfig(): void;
|
24
|
-
protected transformNativeEvent(): {
|
25
|
-
x: number;
|
26
|
-
y: number;
|
27
|
-
absoluteX: number;
|
28
|
-
absoluteY: number;
|
29
|
-
};
|
30
24
|
private clearTimeouts;
|
31
25
|
private startTap;
|
32
26
|
private endTap;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { UserSelect } from '../handlers/gestureHandlerCommon';
|
1
|
+
import { UserSelect, ActiveCursor } from '../handlers/gestureHandlerCommon';
|
2
2
|
import { Directions } from '../Directions';
|
3
3
|
import { State } from '../State';
|
4
4
|
export interface HitSlop {
|
@@ -14,7 +14,7 @@ export interface HitSlop {
|
|
14
14
|
export interface Handler {
|
15
15
|
handlerTag: number;
|
16
16
|
}
|
17
|
-
declare type ConfigArgs = number | boolean | HitSlop | UserSelect | Directions | Handler[] | null | undefined;
|
17
|
+
declare type ConfigArgs = number | boolean | HitSlop | UserSelect | ActiveCursor | Directions | Handler[] | null | undefined;
|
18
18
|
export interface Config extends Record<string, ConfigArgs> {
|
19
19
|
enabled?: boolean;
|
20
20
|
simultaneousHandlers?: Handler[] | null;
|
@@ -22,6 +22,7 @@ export interface Config extends Record<string, ConfigArgs> {
|
|
22
22
|
hitSlop?: HitSlop;
|
23
23
|
shouldCancelWhenOutside?: boolean;
|
24
24
|
userSelect?: UserSelect;
|
25
|
+
activeCursor?: ActiveCursor;
|
25
26
|
activateAfterLongPress?: number;
|
26
27
|
failOffsetXStart?: number;
|
27
28
|
failOffsetYStart?: number;
|
@@ -120,7 +121,7 @@ export declare enum EventTypes {
|
|
120
121
|
ADDITIONAL_POINTER_UP = 3,
|
121
122
|
MOVE = 4,
|
122
123
|
ENTER = 5,
|
123
|
-
|
124
|
+
LEAVE = 6,
|
124
125
|
CANCEL = 7
|
125
126
|
}
|
126
127
|
export declare enum TouchEventType {
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { AdaptedEvent, EventTypes, TouchEventType } from '../interfaces';
|
2
|
-
export default abstract class EventManager {
|
3
|
-
protected readonly view:
|
2
|
+
export default abstract class EventManager<T> {
|
3
|
+
protected readonly view: T;
|
4
4
|
protected pointersInBounds: number[];
|
5
5
|
protected activePointersCounter: number;
|
6
|
-
constructor(view:
|
6
|
+
constructor(view: T);
|
7
7
|
abstract setListeners(): void;
|
8
8
|
protected abstract mapEvent(event: Event, eventType: EventTypes, index?: number, touchEventType?: TouchEventType): AdaptedEvent;
|
9
9
|
protected onPointerDown(_event: AdaptedEvent): void;
|
@@ -11,19 +11,23 @@ export default abstract class EventManager {
|
|
11
11
|
protected onPointerUp(_event: AdaptedEvent): void;
|
12
12
|
protected onPointerRemove(_event: AdaptedEvent): void;
|
13
13
|
protected onPointerMove(_event: AdaptedEvent): void;
|
14
|
-
protected
|
14
|
+
protected onPointerLeave(_event: AdaptedEvent): void;
|
15
15
|
protected onPointerEnter(_event: AdaptedEvent): void;
|
16
16
|
protected onPointerCancel(_event: AdaptedEvent): void;
|
17
17
|
protected onPointerOutOfBounds(_event: AdaptedEvent): void;
|
18
|
+
protected onPointerMoveOver(_event: AdaptedEvent): void;
|
19
|
+
protected onPointerMoveOut(_event: AdaptedEvent): void;
|
18
20
|
setOnPointerDown(callback: (event: AdaptedEvent) => void): void;
|
19
21
|
setOnPointerAdd(callback: (event: AdaptedEvent) => void): void;
|
20
22
|
setOnPointerUp(callback: (event: AdaptedEvent) => void): void;
|
21
23
|
setOnPointerRemove(callback: (event: AdaptedEvent) => void): void;
|
22
24
|
setOnPointerMove(callback: (event: AdaptedEvent) => void): void;
|
23
|
-
|
25
|
+
setOnPointerLeave(callback: (event: AdaptedEvent) => void): void;
|
24
26
|
setOnPointerEnter(callback: (event: AdaptedEvent) => void): void;
|
25
27
|
setOnPointerCancel(callback: (event: AdaptedEvent) => void): void;
|
26
28
|
setOnPointerOutOfBounds(callback: (event: AdaptedEvent) => void): void;
|
29
|
+
setOnPointerMoveOver(callback: (event: AdaptedEvent) => void): void;
|
30
|
+
setOnPointerMoveOut(callback: (event: AdaptedEvent) => void): void;
|
27
31
|
protected markAsInBounds(pointerId: number): void;
|
28
32
|
protected markAsOutOfBounds(pointerId: number): void;
|
29
33
|
resetManager(): void;
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import type GestureHandler from '../handlers/GestureHandler';
|
2
|
+
export interface MeasureResult {
|
3
|
+
pageX: number;
|
4
|
+
pageY: number;
|
5
|
+
width: number;
|
6
|
+
height: number;
|
7
|
+
}
|
8
|
+
export interface GestureHandlerDelegate<T> {
|
9
|
+
getView(): T;
|
10
|
+
init(viewRef: number, handler: GestureHandler): void;
|
11
|
+
isPointerInBounds({ x, y }: {
|
12
|
+
x: number;
|
13
|
+
y: number;
|
14
|
+
}): boolean;
|
15
|
+
measureView(): MeasureResult;
|
16
|
+
reset(): void;
|
17
|
+
onBegin(): void;
|
18
|
+
onActivate(): void;
|
19
|
+
onEnd(): void;
|
20
|
+
onCancel(): void;
|
21
|
+
onFail(): void;
|
22
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import type GestureHandler from '../handlers/GestureHandler';
|
2
|
+
import { GestureHandlerDelegate, MeasureResult } from './GestureHandlerDelegate';
|
3
|
+
export declare class GestureHandlerWebDelegate implements GestureHandlerDelegate<HTMLElement> {
|
4
|
+
private view;
|
5
|
+
private gestureHandler;
|
6
|
+
private eventManagers;
|
7
|
+
getView(): HTMLElement;
|
8
|
+
init(viewRef: number, handler: GestureHandler): void;
|
9
|
+
isPointerInBounds({ x, y }: {
|
10
|
+
x: number;
|
11
|
+
y: number;
|
12
|
+
}): boolean;
|
13
|
+
measureView(): MeasureResult;
|
14
|
+
reset(): void;
|
15
|
+
tryResetCursor(): void;
|
16
|
+
onBegin(): void;
|
17
|
+
onActivate(): void;
|
18
|
+
onEnd(): void;
|
19
|
+
onCancel(): void;
|
20
|
+
onFail(): void;
|
21
|
+
}
|
@@ -2,10 +2,10 @@ import { ValueOf } from '../../typeUtils';
|
|
2
2
|
import { Gestures } from '../../RNGestureHandlerModule.web';
|
3
3
|
export default abstract class NodeManager {
|
4
4
|
private static gestures;
|
5
|
-
static getHandler(tag: number): import("../handlers/NativeViewGestureHandler").default | import("../handlers/PanGestureHandler").default | import("../handlers/TapGestureHandler").default | import("../handlers/LongPressGestureHandler").default | import("../handlers/PinchGestureHandler").default | import("../handlers/RotationGestureHandler").default | import("../handlers/FlingGestureHandler").default | import("../handlers/ManualGestureHandler").default;
|
5
|
+
static getHandler(tag: number): import("../handlers/NativeViewGestureHandler").default | import("../handlers/PanGestureHandler").default | import("../handlers/TapGestureHandler").default | import("../handlers/LongPressGestureHandler").default | import("../handlers/PinchGestureHandler").default | import("../handlers/RotationGestureHandler").default | import("../handlers/FlingGestureHandler").default | import("../handlers/ManualGestureHandler").default | import("../handlers/HoverGestureHandler").default;
|
6
6
|
static createGestureHandler(handlerTag: number, handler: InstanceType<ValueOf<typeof Gestures>>): void;
|
7
7
|
static dropGestureHandler(handlerTag: number): void;
|
8
8
|
static getNodes(): {
|
9
|
-
[x: number]: import("../handlers/NativeViewGestureHandler").default | import("../handlers/PanGestureHandler").default | import("../handlers/TapGestureHandler").default | import("../handlers/LongPressGestureHandler").default | import("../handlers/PinchGestureHandler").default | import("../handlers/RotationGestureHandler").default | import("../handlers/FlingGestureHandler").default | import("../handlers/ManualGestureHandler").default;
|
9
|
+
[x: number]: import("../handlers/NativeViewGestureHandler").default | import("../handlers/PanGestureHandler").default | import("../handlers/TapGestureHandler").default | import("../handlers/LongPressGestureHandler").default | import("../handlers/PinchGestureHandler").default | import("../handlers/RotationGestureHandler").default | import("../handlers/FlingGestureHandler").default | import("../handlers/ManualGestureHandler").default | import("../handlers/HoverGestureHandler").default;
|
10
10
|
};
|
11
11
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { AdaptedEvent, EventTypes } from '../interfaces';
|
2
2
|
import EventManager from './EventManager';
|
3
|
-
export default class PointerEventManager extends EventManager {
|
3
|
+
export default class PointerEventManager extends EventManager<HTMLElement> {
|
4
4
|
private trackedPointers;
|
5
5
|
setListeners(): void;
|
6
6
|
protected mapEvent(event: PointerEvent, eventType: EventTypes): AdaptedEvent;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { AdaptedEvent, EventTypes, TouchEventType } from '../interfaces';
|
2
2
|
import EventManager from './EventManager';
|
3
|
-
export default class TouchEventManager extends EventManager {
|
3
|
+
export default class TouchEventManager extends EventManager<HTMLElement> {
|
4
4
|
setListeners(): void;
|
5
5
|
protected mapEvent(event: TouchEvent, eventType: EventTypes, index: number, touchEventType: TouchEventType): AdaptedEvent;
|
6
6
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "react-native-gesture-handler",
|
3
|
-
"version": "2.
|
3
|
+
"version": "2.13.0",
|
4
4
|
"description": "Experimental implementation of a new declarative API for gesture handling in react-native",
|
5
5
|
"scripts": {
|
6
6
|
"prepare": "bob build && husky install",
|
@@ -88,7 +88,7 @@
|
|
88
88
|
"@typescript-eslint/parser": "^4.33.0",
|
89
89
|
"babel-jest": "^26.6.3",
|
90
90
|
"clang-format": "^1.8.0",
|
91
|
-
"eslint": "^7.
|
91
|
+
"eslint": "^7.32.0",
|
92
92
|
"eslint-config-satya164": "^3.1.8",
|
93
93
|
"eslint-import-resolver-babel-module": "^5.2.0",
|
94
94
|
"eslint-plugin-import": "^2.22.1",
|
@@ -23,6 +23,7 @@ import HammerPinchGestureHandler from './web_hammer/PinchGestureHandler';
|
|
23
23
|
import HammerRotationGestureHandler from './web_hammer/RotationGestureHandler';
|
24
24
|
import HammerFlingGestureHandler from './web_hammer/FlingGestureHandler';
|
25
25
|
import { Config } from './web/interfaces';
|
26
|
+
import { GestureHandlerWebDelegate } from './web/tools/GestureHandlerWebDelegate';
|
26
27
|
|
27
28
|
export const Gestures = {
|
28
29
|
NativeViewGestureHandler,
|
@@ -65,7 +66,10 @@ export default {
|
|
65
66
|
}
|
66
67
|
|
67
68
|
const GestureClass = Gestures[handlerName];
|
68
|
-
NodeManager.createGestureHandler(
|
69
|
+
NodeManager.createGestureHandler(
|
70
|
+
handlerTag,
|
71
|
+
new GestureClass(new GestureHandlerWebDelegate())
|
72
|
+
);
|
69
73
|
InteractionManager.getInstance().configureInteractions(
|
70
74
|
NodeManager.getHandler(handlerTag),
|
71
75
|
config as unknown as Config
|
@@ -14,6 +14,7 @@ import RotationGestureHandler from './web/handlers/RotationGestureHandler';
|
|
14
14
|
import FlingGestureHandler from './web/handlers/FlingGestureHandler';
|
15
15
|
import NativeViewGestureHandler from './web/handlers/NativeViewGestureHandler';
|
16
16
|
import ManualGestureHandler from './web/handlers/ManualGestureHandler';
|
17
|
+
import HoverGestureHandler from './web/handlers/HoverGestureHandler';
|
17
18
|
|
18
19
|
//Hammer Handlers
|
19
20
|
import * as HammerNodeManager from './web_hammer/NodeManager';
|
@@ -25,6 +26,7 @@ import HammerPinchGestureHandler from './web_hammer/PinchGestureHandler';
|
|
25
26
|
import HammerRotationGestureHandler from './web_hammer/RotationGestureHandler';
|
26
27
|
import HammerFlingGestureHandler from './web_hammer/FlingGestureHandler';
|
27
28
|
import { Config } from './web/interfaces';
|
29
|
+
import { GestureHandlerWebDelegate } from './web/tools/GestureHandlerWebDelegate';
|
28
30
|
|
29
31
|
export const Gestures = {
|
30
32
|
NativeViewGestureHandler,
|
@@ -35,6 +37,7 @@ export const Gestures = {
|
|
35
37
|
RotationGestureHandler,
|
36
38
|
FlingGestureHandler,
|
37
39
|
ManualGestureHandler,
|
40
|
+
HoverGestureHandler,
|
38
41
|
};
|
39
42
|
|
40
43
|
export const HammerGestures = {
|
@@ -67,7 +70,10 @@ export default {
|
|
67
70
|
}
|
68
71
|
|
69
72
|
const GestureClass = Gestures[handlerName];
|
70
|
-
NodeManager.createGestureHandler(
|
73
|
+
NodeManager.createGestureHandler(
|
74
|
+
handlerTag,
|
75
|
+
new GestureClass(new GestureHandlerWebDelegate())
|
76
|
+
);
|
71
77
|
InteractionManager.getInstance().configureInteractions(
|
72
78
|
NodeManager.getHandler(handlerTag),
|
73
79
|
config as unknown as Config
|
@@ -25,6 +25,7 @@ import HammerPinchGestureHandler from './web_hammer/PinchGestureHandler';
|
|
25
25
|
import HammerRotationGestureHandler from './web_hammer/RotationGestureHandler';
|
26
26
|
import HammerFlingGestureHandler from './web_hammer/FlingGestureHandler';
|
27
27
|
import { Config } from './web/interfaces';
|
28
|
+
import { GestureHandlerWebDelegate } from './web/tools/GestureHandlerWebDelegate';
|
28
29
|
|
29
30
|
export const Gestures = {
|
30
31
|
NativeViewGestureHandler,
|
@@ -67,7 +68,10 @@ export default {
|
|
67
68
|
}
|
68
69
|
|
69
70
|
const GestureClass = Gestures[handlerName];
|
70
|
-
NodeManager.createGestureHandler(
|
71
|
+
NodeManager.createGestureHandler(
|
72
|
+
handlerTag,
|
73
|
+
new GestureClass(new GestureHandlerWebDelegate())
|
74
|
+
);
|
71
75
|
InteractionManager.getInstance().configureInteractions(
|
72
76
|
NodeManager.getHandler(handlerTag),
|
73
77
|
config as unknown as Config
|
@@ -27,6 +27,7 @@ import {
|
|
27
27
|
GestureEvent,
|
28
28
|
HandlerStateChangeEvent,
|
29
29
|
UserSelect,
|
30
|
+
ActiveCursor,
|
30
31
|
} from '../handlers/gestureHandlerCommon';
|
31
32
|
import {
|
32
33
|
PanGestureHandler,
|
@@ -165,6 +166,13 @@ export interface DrawerLayoutProps {
|
|
165
166
|
* Values: 'none'|'text'|'auto'
|
166
167
|
*/
|
167
168
|
userSelect?: UserSelect;
|
169
|
+
|
170
|
+
/**
|
171
|
+
* @default 'auto'
|
172
|
+
* Defines which cursor property should be used when gesture activates.
|
173
|
+
* Values: see CSS cursor values
|
174
|
+
*/
|
175
|
+
activeCursor?: ActiveCursor;
|
168
176
|
}
|
169
177
|
|
170
178
|
export type DrawerLayoutState = {
|
@@ -691,6 +699,7 @@ export default class DrawerLayout extends Component<
|
|
691
699
|
<PanGestureHandler
|
692
700
|
// @ts-ignore could be fixed in handler types
|
693
701
|
userSelect={this.props.userSelect}
|
702
|
+
activeCursor={this.props.activeCursor}
|
694
703
|
ref={this.setPanGestureRef}
|
695
704
|
hitSlop={hitSlop}
|
696
705
|
activeOffsetX={gestureOrientation * minSwipeDistance!}
|
@@ -6,6 +6,7 @@ import {
|
|
6
6
|
StyleProp,
|
7
7
|
ViewStyle,
|
8
8
|
TouchableWithoutFeedbackProps,
|
9
|
+
Insets,
|
9
10
|
} from 'react-native';
|
10
11
|
|
11
12
|
import { State } from '../../State';
|
@@ -33,7 +34,8 @@ export const TOUCHABLE_STATE = {
|
|
33
34
|
|
34
35
|
type TouchableState = typeof TOUCHABLE_STATE[keyof typeof TOUCHABLE_STATE];
|
35
36
|
|
36
|
-
export interface GenericTouchableProps
|
37
|
+
export interface GenericTouchableProps
|
38
|
+
extends Omit<TouchableWithoutFeedbackProps, 'hitSlop'> {
|
37
39
|
// Decided to drop not used fields from RN's implementation.
|
38
40
|
// e.g. onBlur and onFocus as well as deprecated props. - TODO: this comment may be unuseful in this moment
|
39
41
|
|
@@ -48,6 +50,7 @@ export interface GenericTouchableProps extends TouchableWithoutFeedbackProps {
|
|
48
50
|
disallowInterruption?: boolean;
|
49
51
|
|
50
52
|
containerStyle?: StyleProp<ViewStyle>;
|
53
|
+
hitSlop?: Insets | number;
|
51
54
|
}
|
52
55
|
|
53
56
|
interface InternalProps {
|
@@ -272,9 +275,6 @@ export default class GenericTouchable extends Component<
|
|
272
275
|
onAccessibilityAction: this.props.onAccessibilityAction,
|
273
276
|
nativeID: this.props.nativeID,
|
274
277
|
onLayout: this.props.onLayout,
|
275
|
-
hitSlop: hitSlop as
|
276
|
-
| Animated.WithAnimatedObject<typeof hitSlop>
|
277
|
-
| undefined,
|
278
278
|
};
|
279
279
|
|
280
280
|
return (
|
@@ -7,7 +7,7 @@ import GenericTouchable, {
|
|
7
7
|
import {
|
8
8
|
StyleSheet,
|
9
9
|
View,
|
10
|
-
TouchableHighlightProps,
|
10
|
+
TouchableHighlightProps as RNTouchableHighlightProps,
|
11
11
|
ColorValue,
|
12
12
|
ViewProps,
|
13
13
|
} from 'react-native';
|
@@ -21,11 +21,14 @@ interface State {
|
|
21
21
|
};
|
22
22
|
}
|
23
23
|
|
24
|
+
export type TouchableHighlightProps = RNTouchableHighlightProps &
|
25
|
+
GenericTouchableProps;
|
26
|
+
|
24
27
|
/**
|
25
28
|
* TouchableHighlight follows RN's implementation
|
26
29
|
*/
|
27
30
|
export default class TouchableHighlight extends Component<
|
28
|
-
TouchableHighlightProps
|
31
|
+
TouchableHighlightProps,
|
29
32
|
State
|
30
33
|
> {
|
31
34
|
static defaultProps = {
|
@@ -35,7 +38,7 @@ export default class TouchableHighlight extends Component<
|
|
35
38
|
underlayColor: 'black',
|
36
39
|
};
|
37
40
|
|
38
|
-
constructor(props: TouchableHighlightProps
|
41
|
+
constructor(props: TouchableHighlightProps) {
|
39
42
|
super(props);
|
40
43
|
this.state = {
|
41
44
|
extraChildStyle: null,
|