react-native-gesture-handler 2.12.0 → 2.13.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.
- 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,
|