react-native-gesture-handler 2.7.1 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/android/build.gradle +10 -5
  2. package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +3 -3
  3. package/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +7 -7
  4. package/android/src/fabric/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +2 -2
  5. package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +3 -3
  6. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/FlingGestureHandler.kt +12 -9
  7. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandler.kt +39 -31
  8. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerInteractionController.kt +1 -1
  9. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerOrchestrator.kt +28 -19
  10. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerRegistry.kt +1 -1
  11. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureUtils.kt +1 -1
  12. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/LongPressGestureHandler.kt +1 -1
  13. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ManualGestureHandler.kt +1 -1
  14. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/NativeViewGestureHandler.kt +5 -5
  15. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/OnTouchEventListener.kt +1 -1
  16. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PanGestureHandler.kt +7 -5
  17. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PinchGestureHandler.kt +11 -4
  18. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PointerEventsConfig.kt +1 -1
  19. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureDetector.kt +1 -1
  20. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureHandler.kt +7 -2
  21. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ScaleGestureDetector.java +1 -1
  22. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/TapGestureHandler.kt +3 -3
  23. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ViewConfigurationHelper.kt +1 -1
  24. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/react}/Extensions.kt +3 -3
  25. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +7 -6
  26. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +1 -5
  27. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +6 -6
  28. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt +1 -1
  29. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +3 -3
  30. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +35 -14
  31. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +2 -2
  32. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +8 -6
  33. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +0 -2
  34. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +4 -2
  35. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +7 -7
  36. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +5 -5
  37. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +2 -2
  38. package/android/src/paper/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +5 -5
  39. package/ios/Handlers/RNManualHandler.m +24 -8
  40. package/ios/RNGestureHandlerButtonComponentView.mm +7 -8
  41. package/ios/RNGestureHandlerManager.mm +176 -178
  42. package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
  43. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  44. package/lib/commonjs/RNGestureHandlerModule.windows.js +156 -0
  45. package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -0
  46. package/lib/commonjs/components/DrawerLayout.js +1 -0
  47. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  48. package/lib/commonjs/components/Swipeable.js.map +1 -1
  49. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
  50. package/lib/commonjs/getShadowNodeFromRef.js +2 -2
  51. package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
  52. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  53. package/lib/commonjs/handlers/gestureHandlerCommon.js +5 -2
  54. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
  55. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +4 -0
  56. package/lib/commonjs/handlers/gestures/GestureDetector.js +17 -10
  57. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
  58. package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
  59. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
  60. package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
  61. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
  62. package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -1
  63. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  64. package/lib/commonjs/web/handlers/GestureHandler.js +28 -3
  65. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  66. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +0 -1
  67. package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
  68. package/lib/commonjs/web/handlers/ManualGestureHandler.js +15 -0
  69. package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
  70. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -2
  71. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
  72. package/lib/commonjs/web/handlers/PanGestureHandler.js +0 -5
  73. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  74. package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -1
  75. package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
  76. package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -1
  77. package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
  78. package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -1
  79. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
  80. package/lib/commonjs/web/interfaces.js.map +1 -1
  81. package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
  82. package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
  83. package/lib/commonjs/web_hammer/NodeManager.js +4 -1
  84. package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
  85. package/lib/commonjs/web_hammer/PanGestureHandler.js +25 -6
  86. package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -1
  87. package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
  88. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  89. package/lib/module/RNGestureHandlerModule.windows.js +117 -0
  90. package/lib/module/RNGestureHandlerModule.windows.js.map +1 -0
  91. package/lib/module/components/DrawerLayout.js +1 -0
  92. package/lib/module/components/DrawerLayout.js.map +1 -1
  93. package/lib/module/components/Swipeable.js.map +1 -1
  94. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
  95. package/lib/module/getShadowNodeFromRef.js +2 -2
  96. package/lib/module/getShadowNodeFromRef.js.map +1 -1
  97. package/lib/module/handlers/createHandler.js.map +1 -1
  98. package/lib/module/handlers/gestureHandlerCommon.js +5 -2
  99. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
  100. package/lib/module/handlers/gestureHandlerTypesCompat.js +1 -1
  101. package/lib/module/handlers/gestures/GestureDetector.js +17 -10
  102. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
  103. package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
  104. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  105. package/lib/module/jestUtils/jestUtils.js.map +1 -1
  106. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
  107. package/lib/module/web/handlers/FlingGestureHandler.js +0 -1
  108. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  109. package/lib/module/web/handlers/GestureHandler.js +28 -3
  110. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  111. package/lib/module/web/handlers/LongPressGestureHandler.js +0 -1
  112. package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
  113. package/lib/module/web/handlers/ManualGestureHandler.js +15 -0
  114. package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
  115. package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -2
  116. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  117. package/lib/module/web/handlers/PanGestureHandler.js +0 -5
  118. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  119. package/lib/module/web/handlers/PinchGestureHandler.js +0 -1
  120. package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
  121. package/lib/module/web/handlers/RotationGestureHandler.js +0 -1
  122. package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
  123. package/lib/module/web/handlers/TapGestureHandler.js +0 -1
  124. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
  125. package/lib/module/web/interfaces.js.map +1 -1
  126. package/lib/module/web/tools/InteractionManager.js.map +1 -1
  127. package/lib/module/web_hammer/GestureHandler.js.map +1 -1
  128. package/lib/module/web_hammer/NodeManager.js +4 -1
  129. package/lib/module/web_hammer/NodeManager.js.map +1 -1
  130. package/lib/module/web_hammer/PanGestureHandler.js +25 -6
  131. package/lib/module/web_hammer/PanGestureHandler.js.map +1 -1
  132. package/lib/typescript/RNGestureHandlerModule.macos.d.ts +1 -1
  133. package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
  134. package/lib/typescript/RNGestureHandlerModule.windows.d.ts +48 -0
  135. package/lib/typescript/components/DrawerLayout.d.ts +7 -0
  136. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -1
  137. package/lib/typescript/handlers/PanGestureHandler.d.ts +1 -1
  138. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +3 -1
  139. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +3 -1
  140. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +3 -1
  141. package/lib/typescript/web/interfaces.d.ts +3 -1
  142. package/lib/typescript/web/tools/NodeManager.d.ts +2 -2
  143. package/package.json +14 -10
  144. package/src/RNGestureHandlerModule.macos.ts +2 -2
  145. package/src/RNGestureHandlerModule.web.ts +2 -2
  146. package/src/RNGestureHandlerModule.windows.ts +140 -0
  147. package/src/components/DrawerLayout.tsx +14 -8
  148. package/src/components/Swipeable.tsx +2 -4
  149. package/src/components/touchables/TouchableOpacity.tsx +1 -1
  150. package/src/getShadowNodeFromRef.ts +3 -3
  151. package/src/handlers/createHandler.tsx +13 -15
  152. package/src/handlers/gestureHandlerCommon.ts +9 -4
  153. package/src/handlers/gestureHandlerTypesCompat.ts +34 -17
  154. package/src/handlers/gestures/GestureDetector.tsx +36 -16
  155. package/src/handlers/gestures/eventReceiver.ts +2 -1
  156. package/src/handlers/gestures/gesture.ts +8 -12
  157. package/src/jestUtils/jestUtils.ts +3 -4
  158. package/src/web/detectors/RotationGestureDetector.ts +2 -1
  159. package/src/web/handlers/FlingGestureHandler.ts +2 -3
  160. package/src/web/handlers/GestureHandler.ts +30 -11
  161. package/src/web/handlers/LongPressGestureHandler.ts +0 -2
  162. package/src/web/handlers/ManualGestureHandler.ts +10 -1
  163. package/src/web/handlers/NativeViewGestureHandler.ts +0 -2
  164. package/src/web/handlers/PanGestureHandler.ts +0 -6
  165. package/src/web/handlers/PinchGestureHandler.ts +0 -2
  166. package/src/web/handlers/RotationGestureHandler.ts +2 -5
  167. package/src/web/handlers/TapGestureHandler.ts +0 -2
  168. package/src/web/interfaces.ts +3 -0
  169. package/src/web/tools/InteractionManager.ts +2 -3
  170. package/src/web_hammer/GestureHandler.ts +6 -8
  171. package/src/web_hammer/NodeManager.ts +3 -1
  172. package/src/web_hammer/PanGestureHandler.ts +12 -6
  173. package/android/lib/build.gradle +0 -28
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { Component } from 'react';
3
3
  import { Animated, StatusBarAnimation, StyleProp, ViewStyle } from 'react-native';
4
+ import { UserSelect } from '../handlers/gestureHandlerCommon';
4
5
  import { PanGestureHandler } from '../handlers/PanGestureHandler';
5
6
  export declare type DrawerPosition = 'left' | 'right';
6
7
  export declare type DrawerState = 'Idle' | 'Dragging' | 'Settling';
@@ -79,6 +80,12 @@ export interface DrawerLayoutProps {
79
80
  onDrawerSlide?: (position: number) => void;
80
81
  onGestureRef?: (ref: PanGestureHandler) => void;
81
82
  children?: React.ReactNode | ((openValue?: Animated.AnimatedInterpolation) => React.ReactNode);
83
+ /**
84
+ * @default 'none'
85
+ * Defines which userSelect property should be used.
86
+ * Values: 'none'|'text'|'auto'
87
+ */
88
+ userSelect?: UserSelect;
82
89
  }
83
90
  export declare type DrawerLayoutState = {
84
91
  dragX: Animated.Value;
@@ -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", "waitFor", "simultaneousHandlers", "onBegan", "onFailed", "onCancelled", "onActivated", "onEnded", "onGestureEvent", "onHandlerStateChange", "shouldActivateOnStart", "disallowInterruption"];
25
+ export declare const nativeViewProps: readonly ["id", "enabled", "shouldCancelWhenOutside", "hitSlop", "cancelsTouchesInView", "userSelect", "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>>;
@@ -135,5 +135,5 @@ export interface PanGestureHandlerProps extends BaseGestureHandlerProps<PanGestu
135
135
  export declare const panHandlerName = "PanGestureHandler";
136
136
  export declare type PanGestureHandler = typeof PanGestureHandler;
137
137
  export declare const PanGestureHandler: import("react").ComponentType<PanGestureHandlerProps & import("react").RefAttributes<any>>;
138
- export declare function managePanProps(props: PanGestureHandlerProps): PanGestureHandlerProps & Partial<Record<"failOffsetXStart" | "failOffsetYStart" | "failOffsetXEnd" | "failOffsetYEnd" | "activeOffsetXStart" | "activeOffsetXEnd" | "activeOffsetYStart" | "activeOffsetYEnd", number>>;
138
+ export declare function managePanProps(props: PanGestureHandlerProps): PanGestureHandlerProps & Partial<Record<"activeOffsetXStart" | "activeOffsetXEnd" | "failOffsetXStart" | "failOffsetXEnd" | "activeOffsetYStart" | "activeOffsetYEnd" | "failOffsetYStart" | "failOffsetYEnd", number>>;
139
139
  export {};
@@ -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", "waitFor", "simultaneousHandlers", "onBegan", "onFailed", "onCancelled", "onActivated", "onEnded", "onGestureEvent", "onHandlerStateChange"];
5
+ export declare const baseGestureHandlerProps: readonly ["id", "enabled", "shouldCancelWhenOutside", "hitSlop", "cancelsTouchesInView", "userSelect", "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;
@@ -13,6 +13,7 @@ export interface HandlerStateChangeEventPayload extends GestureEventPayload {
13
13
  oldState: ValueOf<typeof State>;
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
+ export declare type UserSelect = 'none' | 'auto' | 'text';
16
17
  export interface GestureEvent<ExtraEventPayloadT = Record<string, unknown>> {
17
18
  nativeEvent: Readonly<GestureEventPayload & ExtraEventPayloadT>;
18
19
  }
@@ -40,6 +41,7 @@ export declare type CommonGestureConfig = {
40
41
  enabled?: boolean;
41
42
  shouldCancelWhenOutside?: boolean;
42
43
  hitSlop?: HitSlop;
44
+ userSelect?: UserSelect;
43
45
  };
44
46
  export declare type BaseGestureHandlerProps<ExtraEventPayloadT extends Record<string, unknown> = Record<string, unknown>> = CommonGestureConfig & {
45
47
  id?: string;
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { GestureType, HandlerCallbacks } from './gesture';
3
3
  import { SharedValue } from './reanimatedWrapper';
4
+ import { UserSelect } from '../gestureHandlerCommon';
4
5
  import { ComposedGesture } from './gestureComposition';
5
6
  export declare type GestureConfigReference = {
6
7
  config: GestureType[];
@@ -10,7 +11,8 @@ export declare type GestureConfigReference = {
10
11
  useReanimatedHook: boolean;
11
12
  };
12
13
  interface GestureDetectorProps {
13
- gesture?: ComposedGesture | GestureType;
14
+ gesture: ComposedGesture | GestureType;
15
+ userSelect?: UserSelect;
14
16
  children?: React.ReactNode;
15
17
  }
16
18
  export declare const GestureDetector: (props: GestureDetectorProps) => JSX.Element;
@@ -1,10 +1,12 @@
1
- import { AdaptedEvent } from '../interfaces';
1
+ import { AdaptedEvent, Config } from '../interfaces';
2
2
  import GestureHandler from './GestureHandler';
3
3
  export default class ManualGestureHandler extends GestureHandler {
4
4
  init(ref: number, propsRef: React.RefObject<unknown>): void;
5
+ updateGestureConfig({ enabled, ...props }: Config): void;
5
6
  protected onPointerDown(event: AdaptedEvent): void;
6
7
  protected onPointerAdd(event: AdaptedEvent): void;
7
8
  protected onPointerMove(event: AdaptedEvent): void;
9
+ protected onPointerOutOfBounds(event: AdaptedEvent): void;
8
10
  protected onPointerUp(event: AdaptedEvent): void;
9
11
  protected onPointerRemove(event: AdaptedEvent): void;
10
12
  protected onPointerCancel(event: AdaptedEvent): void;
@@ -1,3 +1,4 @@
1
+ import { UserSelect } from '../handlers/gestureHandlerCommon';
1
2
  import { Directions } from '../Directions';
2
3
  import { State } from '../State';
3
4
  export interface HitSlop {
@@ -13,13 +14,14 @@ export interface HitSlop {
13
14
  export interface Handler {
14
15
  handlerTag: number;
15
16
  }
16
- declare type ConfigArgs = number | boolean | HitSlop | Directions | Handler[] | null | undefined;
17
+ declare type ConfigArgs = number | boolean | HitSlop | UserSelect | Directions | Handler[] | null | undefined;
17
18
  export interface Config extends Record<string, ConfigArgs> {
18
19
  enabled?: boolean;
19
20
  simultaneousHandlers?: Handler[] | null;
20
21
  waitFor?: Handler[] | null;
21
22
  hitSlop?: HitSlop;
22
23
  shouldCancelWhenOutside?: boolean;
24
+ userSelect?: UserSelect;
23
25
  activateAfterLongPress?: number;
24
26
  failOffsetXStart?: number;
25
27
  failOffsetYStart?: number;
@@ -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/PanGestureHandler").default | import("../handlers/TapGestureHandler").default | import("../handlers/LongPressGestureHandler").default | import("../handlers/PinchGestureHandler").default | import("../handlers/RotationGestureHandler").default | import("../handlers/FlingGestureHandler").default | import("../handlers/NativeViewGestureHandler").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;
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/PanGestureHandler").default | import("../handlers/TapGestureHandler").default | import("../handlers/LongPressGestureHandler").default | import("../handlers/PinchGestureHandler").default | import("../handlers/RotationGestureHandler").default | import("../handlers/FlingGestureHandler").default | import("../handlers/NativeViewGestureHandler").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;
10
10
  };
11
11
  }
package/package.json CHANGED
@@ -1,15 +1,20 @@
1
1
  {
2
2
  "name": "react-native-gesture-handler",
3
- "version": "2.7.1",
3
+ "version": "2.8.0",
4
4
  "description": "Experimental implementation of a new declarative API for gesture handling in react-native",
5
5
  "scripts": {
6
- "prepare": "bob build",
6
+ "prepare": "bob build && husky install",
7
7
  "test": "jest",
8
8
  "build": "yarn tsc -p tsconfig.build.json",
9
9
  "precommit": "lint-staged",
10
10
  "release": "npm login && release-it",
11
11
  "ts-check": "yarn tsc --noEmit",
12
- "lint-check": "eslint --ext '.js,.ts,.tsx' src/ && yarn prettier --check src/"
12
+ "format:js": "prettier --write --list-different './{src,example,FabricExample}/**/*.{js,jsx,ts,tsx}'",
13
+ "format:android": "node ./scripts/format-android.js",
14
+ "format:ios": "find ios/ -iname *.h -o -iname *.m -o -iname *.cpp -o -iname *.mm | xargs clang-format -i",
15
+ "lint:js": "eslint --ext '.js,.ts,.tsx' src/ example/src FabricExample/src && yarn prettier --check './{src,example,FabricExample}/**/*.{js,jsx,ts,tsx}'",
16
+ "lint:js-root": "eslint --ext '.js,.ts,.tsx' src/ && yarn prettier --check './src/**/*.{js,jsx,ts,tsx}'",
17
+ "lint:android": "./android/gradlew -p android spotlessCheck -q"
13
18
  },
14
19
  "react-native": "src/index.ts",
15
20
  "main": "lib/commonjs/index.js",
@@ -28,8 +33,6 @@
28
33
  "android/src/main/jni/",
29
34
  "android/src/fabric/java",
30
35
  "android/src/paper/java",
31
- "android/lib/build.gradle",
32
- "android/lib/src/main/java/",
33
36
  "android/common/src/main/java/",
34
37
  "android/reanimated/src/main/java/",
35
38
  "android/noreanimated/src/main/java/",
@@ -85,17 +88,18 @@
85
88
  "@typescript-eslint/eslint-plugin": "^4.33.0",
86
89
  "@typescript-eslint/parser": "^4.33.0",
87
90
  "babel-jest": "^26.6.3",
91
+ "clang-format": "^1.8.0",
88
92
  "eslint": "^7.15.0",
89
93
  "eslint-config-satya164": "^3.1.8",
90
94
  "eslint-import-resolver-babel-module": "^5.2.0",
91
95
  "eslint-plugin-import": "^2.22.1",
92
96
  "eslint-plugin-jest": "^26.0.0",
93
97
  "expo": "^35.0.1",
94
- "husky": "^0.14.3",
98
+ "husky": "^8.0.1",
95
99
  "jest": "^26.6.3",
96
100
  "lint-staged": "^12.3.2",
97
101
  "metro-react-native-babel-preset": "^0.64.0",
98
- "prettier": "^2.2.1",
102
+ "prettier": "^2.7.1",
99
103
  "react": "^16.8.6",
100
104
  "react-dom": "^16.12.0",
101
105
  "react-native": "^0.64.0",
@@ -111,9 +115,9 @@
111
115
  "react-native": "*"
112
116
  },
113
117
  "lint-staged": {
114
- "./src/*.{ts,tsx}": [
115
- "prettier --write"
116
- ]
118
+ "./{src,example,FabricExample}/**/*.{ts,tsx}": "yarn format:js",
119
+ "android/**/*.kt": "yarn format:android",
120
+ "ios/**/*.{h,m,mm,cpp}": "yarn format:ios"
117
121
  },
118
122
  "release-it": {
119
123
  "hooks": {
@@ -68,7 +68,7 @@ export default {
68
68
  NodeManager.createGestureHandler(handlerTag, new GestureClass());
69
69
  InteractionManager.getInstance().configureInteractions(
70
70
  NodeManager.getHandler(handlerTag),
71
- (config as unknown) as Config
71
+ config as unknown as Config
72
72
  );
73
73
  } else {
74
74
  if (!(handlerName in HammerGestures)) {
@@ -84,7 +84,7 @@ export default {
84
84
  HammerNodeManager.createGestureHandler(handlerTag, new GestureClass());
85
85
  }
86
86
 
87
- this.updateGestureHandler(handlerTag, (config as unknown) as Config);
87
+ this.updateGestureHandler(handlerTag, config as unknown as Config);
88
88
  },
89
89
  attachGestureHandler(
90
90
  handlerTag: number,
@@ -70,7 +70,7 @@ export default {
70
70
  NodeManager.createGestureHandler(handlerTag, new GestureClass());
71
71
  InteractionManager.getInstance().configureInteractions(
72
72
  NodeManager.getHandler(handlerTag),
73
- (config as unknown) as Config
73
+ config as unknown as Config
74
74
  );
75
75
  } else {
76
76
  if (!(handlerName in HammerGestures)) {
@@ -86,7 +86,7 @@ export default {
86
86
  HammerNodeManager.createGestureHandler(handlerTag, new GestureClass());
87
87
  }
88
88
 
89
- this.updateGestureHandler(handlerTag, (config as unknown) as Config);
89
+ this.updateGestureHandler(handlerTag, config as unknown as Config);
90
90
  },
91
91
  attachGestureHandler(
92
92
  handlerTag: number,
@@ -0,0 +1,140 @@
1
+ import React from 'react';
2
+
3
+ import { ActionType } from './ActionType';
4
+ import { isExperimentalWebImplementationEnabled } from './EnableExperimentalWebImplementation';
5
+
6
+ //GestureHandlers
7
+ import InteractionManager from './web/tools/InteractionManager';
8
+ import NodeManager from './web/tools/NodeManager';
9
+ import PanGestureHandler from './web/handlers/PanGestureHandler';
10
+ import TapGestureHandler from './web/handlers/TapGestureHandler';
11
+ import LongPressGestureHandler from './web/handlers/LongPressGestureHandler';
12
+ import PinchGestureHandler from './web/handlers/PinchGestureHandler';
13
+ import RotationGestureHandler from './web/handlers/RotationGestureHandler';
14
+ import FlingGestureHandler from './web/handlers/FlingGestureHandler';
15
+ import NativeViewGestureHandler from './web/handlers/NativeViewGestureHandler';
16
+ import ManualGestureHandler from './web/handlers/ManualGestureHandler';
17
+
18
+ //Hammer Handlers
19
+ import * as HammerNodeManager from './web_hammer/NodeManager';
20
+ import HammerNativeViewGestureHandler from './web_hammer/NativeViewGestureHandler';
21
+ import HammerPanGestureHandler from './web_hammer/PanGestureHandler';
22
+ import HammerTapGestureHandler from './web_hammer/TapGestureHandler';
23
+ import HammerLongPressGestureHandler from './web_hammer/LongPressGestureHandler';
24
+ import HammerPinchGestureHandler from './web_hammer/PinchGestureHandler';
25
+ import HammerRotationGestureHandler from './web_hammer/RotationGestureHandler';
26
+ import HammerFlingGestureHandler from './web_hammer/FlingGestureHandler';
27
+ import { Config } from './web/interfaces';
28
+
29
+ export const Gestures = {
30
+ NativeViewGestureHandler,
31
+ PanGestureHandler,
32
+ TapGestureHandler,
33
+ LongPressGestureHandler,
34
+ PinchGestureHandler,
35
+ RotationGestureHandler,
36
+ FlingGestureHandler,
37
+ ManualGestureHandler,
38
+ };
39
+
40
+ export const HammerGestures = {
41
+ NativeViewGestureHandler: HammerNativeViewGestureHandler,
42
+ PanGestureHandler: HammerPanGestureHandler,
43
+ TapGestureHandler: HammerTapGestureHandler,
44
+ LongPressGestureHandler: HammerLongPressGestureHandler,
45
+ PinchGestureHandler: HammerPinchGestureHandler,
46
+ RotationGestureHandler: HammerRotationGestureHandler,
47
+ FlingGestureHandler: HammerFlingGestureHandler,
48
+ };
49
+
50
+ export default {
51
+ handleSetJSResponder(_tag: number, _blockNativeResponder: boolean) {
52
+ // NO-OP
53
+ },
54
+ handleClearJSResponder() {
55
+ // NO-OP
56
+ },
57
+ createGestureHandler<T>(
58
+ handlerName: keyof typeof Gestures,
59
+ handlerTag: number,
60
+ config: T
61
+ ) {
62
+ if (isExperimentalWebImplementationEnabled()) {
63
+ if (!(handlerName in Gestures)) {
64
+ throw new Error(
65
+ `react-native-gesture-handler: ${handlerName} is not supported on web.`
66
+ );
67
+ }
68
+
69
+ const GestureClass = Gestures[handlerName];
70
+ NodeManager.createGestureHandler(handlerTag, new GestureClass());
71
+ InteractionManager.getInstance().configureInteractions(
72
+ NodeManager.getHandler(handlerTag),
73
+ config as unknown as Config
74
+ );
75
+ } else {
76
+ if (!(handlerName in HammerGestures)) {
77
+ throw new Error(
78
+ `react-native-gesture-handler: ${handlerName} is not supported on web.`
79
+ );
80
+ }
81
+
82
+ // @ts-ignore If it doesn't exist, the error is thrown
83
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
84
+ const GestureClass = HammerGestures[handlerName];
85
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
86
+ HammerNodeManager.createGestureHandler(handlerTag, new GestureClass());
87
+ }
88
+
89
+ this.updateGestureHandler(handlerTag, config as unknown as Config);
90
+ },
91
+ attachGestureHandler(
92
+ handlerTag: number,
93
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
94
+ newView: any,
95
+ _actionType: ActionType,
96
+ propsRef: React.RefObject<unknown>
97
+ ) {
98
+ if (
99
+ !(newView instanceof HTMLElement || newView instanceof React.Component)
100
+ ) {
101
+ return;
102
+ }
103
+
104
+ if (isExperimentalWebImplementationEnabled()) {
105
+ //@ts-ignore Types should be HTMLElement or React.Component
106
+ NodeManager.getHandler(handlerTag).init(newView, propsRef);
107
+ } else {
108
+ //@ts-ignore Types should be HTMLElement or React.Component
109
+ HammerNodeManager.getHandler(handlerTag).setView(newView, propsRef);
110
+ }
111
+ },
112
+ updateGestureHandler(handlerTag: number, newConfig: Config) {
113
+ if (isExperimentalWebImplementationEnabled()) {
114
+ NodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);
115
+
116
+ InteractionManager.getInstance().configureInteractions(
117
+ NodeManager.getHandler(handlerTag),
118
+ newConfig
119
+ );
120
+ } else {
121
+ HammerNodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);
122
+ }
123
+ },
124
+ getGestureHandlerNode(handlerTag: number) {
125
+ if (isExperimentalWebImplementationEnabled()) {
126
+ return NodeManager.getHandler(handlerTag);
127
+ } else {
128
+ return HammerNodeManager.getHandler(handlerTag);
129
+ }
130
+ },
131
+ dropGestureHandler(handlerTag: number) {
132
+ if (isExperimentalWebImplementationEnabled()) {
133
+ NodeManager.dropGestureHandler(handlerTag);
134
+ } else {
135
+ HammerNodeManager.dropGestureHandler(handlerTag);
136
+ }
137
+ },
138
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
139
+ flushOperations() {},
140
+ };
@@ -26,6 +26,7 @@ import {
26
26
  import {
27
27
  GestureEvent,
28
28
  HandlerStateChangeEvent,
29
+ UserSelect,
29
30
  } from '../handlers/gestureHandlerCommon';
30
31
  import {
31
32
  PanGestureHandler,
@@ -153,6 +154,13 @@ export interface DrawerLayoutProps {
153
154
  children?:
154
155
  | React.ReactNode
155
156
  | ((openValue?: Animated.AnimatedInterpolation) => React.ReactNode);
157
+
158
+ /**
159
+ * @default 'none'
160
+ * Defines which userSelect property should be used.
161
+ * Values: 'none'|'text'|'auto'
162
+ */
163
+ userSelect?: UserSelect;
156
164
  }
157
165
 
158
166
  export type DrawerLayoutState = {
@@ -650,18 +658,15 @@ export default class DrawerLayout extends Component<
650
658
  private setPanGestureRef = (ref: PanGestureHandler) => {
651
659
  // TODO(TS): make sure it is OK taken from
652
660
  // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065#issuecomment-596081842
653
- (this
654
- .panGestureHandler as React.MutableRefObject<PanGestureHandler>).current = ref;
661
+ (
662
+ this.panGestureHandler as React.MutableRefObject<PanGestureHandler>
663
+ ).current = ref;
655
664
  this.props.onGestureRef?.(ref);
656
665
  };
657
666
 
658
667
  render() {
659
- const {
660
- drawerPosition,
661
- drawerLockMode,
662
- edgeWidth,
663
- minSwipeDistance,
664
- } = this.props;
668
+ const { drawerPosition, drawerLockMode, edgeWidth, minSwipeDistance } =
669
+ this.props;
665
670
 
666
671
  const fromLeft = drawerPosition === 'left';
667
672
 
@@ -681,6 +686,7 @@ export default class DrawerLayout extends Component<
681
686
  return (
682
687
  <PanGestureHandler
683
688
  // @ts-ignore could be fixed in handler types
689
+ userSelect={this.props.userSelect}
684
690
  ref={this.setPanGestureRef}
685
691
  hitSlop={hitSlop}
686
692
  activeOffsetX={gestureOrientation * minSwipeDistance!}
@@ -257,10 +257,8 @@ export default class Swipeable extends Component<
257
257
  const { rightOffset = rowWidth } = state;
258
258
  const rightWidth = Math.max(0, rowWidth - rightOffset);
259
259
 
260
- const {
261
- overshootLeft = leftWidth > 0,
262
- overshootRight = rightWidth > 0,
263
- } = props;
260
+ const { overshootLeft = leftWidth > 0, overshootRight = rightWidth > 0 } =
261
+ props;
264
262
 
265
263
  const transX = Animated.add(
266
264
  rowTranslation,
@@ -63,7 +63,7 @@ export default class TouchableOpacity extends Component<
63
63
  style={[
64
64
  style,
65
65
  {
66
- opacity: (this.opacity as unknown) as number, // TODO: fix this
66
+ opacity: this.opacity as unknown as number, // TODO: fix this
67
67
  },
68
68
  ]}
69
69
  onStateChange={this.onStateChange}>
@@ -8,9 +8,9 @@ export function getShadowNodeFromRef(ref: any) {
8
8
  // load findHostInstance_DEPRECATED lazily because it may not be available before render
9
9
  if (findHostInstance_DEPRECATED === undefined) {
10
10
  try {
11
- // eslint-disable-next-line @typescript-eslint/no-var-requires
12
- findHostInstance_DEPRECATED = require('react-native/Libraries/Renderer/shims/ReactFabric')
13
- .findHostInstance_DEPRECATED;
11
+ findHostInstance_DEPRECATED =
12
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
13
+ require('react-native/Libraries/Renderer/shims/ReactFabric').findHostInstance_DEPRECATED;
14
14
  } catch (e) {
15
15
  findHostInstance_DEPRECATED = (_ref: any) => null;
16
16
  }
@@ -132,15 +132,14 @@ const stateToPropMappings = {
132
132
  [State.END]: 'onEnded',
133
133
  } as const;
134
134
 
135
- type CreateHandlerArgs<
136
- HandlerPropsT extends Record<string, unknown>
137
- > = Readonly<{
138
- name: string;
139
- allowedProps: Readonly<Extract<keyof HandlerPropsT, string>[]>;
140
- config: Readonly<Record<string, unknown>>;
141
- transformProps?: (props: HandlerPropsT) => HandlerPropsT;
142
- customNativeProps?: Readonly<string[]>;
143
- }>;
135
+ type CreateHandlerArgs<HandlerPropsT extends Record<string, unknown>> =
136
+ Readonly<{
137
+ name: string;
138
+ allowedProps: Readonly<Extract<keyof HandlerPropsT, string>[]>;
139
+ config: Readonly<Record<string, unknown>>;
140
+ transformProps?: (props: HandlerPropsT) => HandlerPropsT;
141
+ customNativeProps?: Readonly<string[]>;
142
+ }>;
144
143
 
145
144
  // TODO(TS) fix event types
146
145
  type InternalEventHandlers = {
@@ -313,7 +312,9 @@ export default function createHandler<
313
312
 
314
313
  if (Platform.OS === 'web') {
315
314
  // typecast due to dynamic resolution, attachGestureHandler should have web version signature in this branch
316
- (RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler)(
315
+ (
316
+ RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler
317
+ )(
317
318
  this.handlerTag,
318
319
  newViewTag,
319
320
  ActionType.JS_FUNCTION_OLD_API, // ignored on web
@@ -403,11 +404,8 @@ export default function createHandler<
403
404
  onGestureEvent?: BaseGestureHandlerProps<U>['onGestureEvent'];
404
405
  onGestureHandlerEvent?: InternalEventHandlers['onGestureHandlerEvent'];
405
406
  };
406
- const {
407
- onGestureEvent,
408
- onGestureHandlerEvent,
409
- }: OnGestureEventHandlers = this.props;
410
-
407
+ const { onGestureEvent, onGestureHandlerEvent }: OnGestureEventHandlers =
408
+ this.props;
411
409
  if (onGestureEvent && typeof onGestureEvent !== 'function') {
412
410
  // If it's not a method it should be an native Animated.event
413
411
  // object. We set it directly as the handler for the view
@@ -18,6 +18,7 @@ const commonProps = [
18
18
  'shouldCancelWhenOutside',
19
19
  'hitSlop',
20
20
  'cancelsTouchesInView',
21
+ 'userSelect',
21
22
  ] as const;
22
23
 
23
24
  const componentInteractionProps = ['waitFor', 'simultaneousHandlers'] as const;
@@ -62,6 +63,8 @@ export type HitSlop =
62
63
  | Record<'height' | 'top', number>
63
64
  | Record<'height' | 'bottom', number>;
64
65
 
66
+ export type UserSelect = 'none' | 'auto' | 'text';
67
+
65
68
  //TODO(TS) events in handlers
66
69
 
67
70
  export interface GestureEvent<ExtraEventPayloadT = Record<string, unknown>> {
@@ -90,9 +93,8 @@ export type GestureTouchEvent = {
90
93
  changedTouches: TouchData[];
91
94
  };
92
95
 
93
- export type GestureUpdateEvent<
94
- GestureEventPayloadT = Record<string, unknown>
95
- > = GestureEventPayload & GestureEventPayloadT;
96
+ export type GestureUpdateEvent<GestureEventPayloadT = Record<string, unknown>> =
97
+ GestureEventPayload & GestureEventPayloadT;
96
98
 
97
99
  export type GestureStateChangeEvent<
98
100
  GestureStateChangeEventPayloadT = Record<string, unknown>
@@ -102,6 +104,7 @@ export type CommonGestureConfig = {
102
104
  enabled?: boolean;
103
105
  shouldCancelWhenOutside?: boolean;
104
106
  hitSlop?: HitSlop;
107
+ userSelect?: UserSelect;
105
108
  };
106
109
 
107
110
  // Events payloads are types instead of interfaces due to TS limitation.
@@ -182,7 +185,9 @@ function transformIntoHandlerTags(handlerIDs: any) {
182
185
  export function findNodeHandle(
183
186
  node: null | number | React.Component<any, any> | React.ComponentClass<any>
184
187
  ): null | number | React.Component<any, any> | React.ComponentClass<any> {
185
- if (Platform.OS === 'web') return node;
188
+ if (Platform.OS === 'web') {
189
+ return node;
190
+ }
186
191
  return findNodeHandleRN(node);
187
192
  }
188
193
 
@@ -45,33 +45,50 @@ import {
45
45
 
46
46
  // events
47
47
  export type GestureHandlerGestureEventNativeEvent = GestureEventPayload;
48
- export type GestureHandlerStateChangeNativeEvent = HandlerStateChangeEventPayload;
48
+ export type GestureHandlerStateChangeNativeEvent =
49
+ HandlerStateChangeEventPayload;
49
50
  export type GestureHandlerGestureEvent = GestureEvent;
50
51
  export type GestureHandlerStateChangeEvent = HandlerStateChangeEvent;
51
52
  // gesture handlers events
52
- export type NativeViewGestureHandlerGestureEvent = GestureEvent<NativeViewGestureHandlerPayload>;
53
- export type NativeViewGestureHandlerStateChangeEvent = HandlerStateChangeEvent<NativeViewGestureHandlerPayload>;
53
+ export type NativeViewGestureHandlerGestureEvent =
54
+ GestureEvent<NativeViewGestureHandlerPayload>;
55
+ export type NativeViewGestureHandlerStateChangeEvent =
56
+ HandlerStateChangeEvent<NativeViewGestureHandlerPayload>;
54
57
 
55
- export type TapGestureHandlerGestureEvent = GestureEvent<TapGestureHandlerEventPayload>;
56
- export type TapGestureHandlerStateChangeEvent = HandlerStateChangeEvent<TapGestureHandlerEventPayload>;
58
+ export type TapGestureHandlerGestureEvent =
59
+ GestureEvent<TapGestureHandlerEventPayload>;
60
+ export type TapGestureHandlerStateChangeEvent =
61
+ HandlerStateChangeEvent<TapGestureHandlerEventPayload>;
57
62
 
58
- export type ForceTouchGestureHandlerGestureEvent = GestureEvent<ForceTouchGestureHandlerEventPayload>;
59
- export type ForceTouchGestureHandlerStateChangeEvent = HandlerStateChangeEvent<ForceTouchGestureHandlerEventPayload>;
63
+ export type ForceTouchGestureHandlerGestureEvent =
64
+ GestureEvent<ForceTouchGestureHandlerEventPayload>;
65
+ export type ForceTouchGestureHandlerStateChangeEvent =
66
+ HandlerStateChangeEvent<ForceTouchGestureHandlerEventPayload>;
60
67
 
61
- export type LongPressGestureHandlerGestureEvent = GestureEvent<LongPressGestureHandlerEventPayload>;
62
- export type LongPressGestureHandlerStateChangeEvent = HandlerStateChangeEvent<LongPressGestureHandlerEventPayload>;
68
+ export type LongPressGestureHandlerGestureEvent =
69
+ GestureEvent<LongPressGestureHandlerEventPayload>;
70
+ export type LongPressGestureHandlerStateChangeEvent =
71
+ HandlerStateChangeEvent<LongPressGestureHandlerEventPayload>;
63
72
 
64
- export type PanGestureHandlerGestureEvent = GestureEvent<PanGestureHandlerEventPayload>;
65
- export type PanGestureHandlerStateChangeEvent = HandlerStateChangeEvent<PanGestureHandlerEventPayload>;
73
+ export type PanGestureHandlerGestureEvent =
74
+ GestureEvent<PanGestureHandlerEventPayload>;
75
+ export type PanGestureHandlerStateChangeEvent =
76
+ HandlerStateChangeEvent<PanGestureHandlerEventPayload>;
66
77
 
67
- export type PinchGestureHandlerGestureEvent = GestureEvent<PinchGestureHandlerEventPayload>;
68
- export type PinchGestureHandlerStateChangeEvent = HandlerStateChangeEvent<PinchGestureHandlerEventPayload>;
78
+ export type PinchGestureHandlerGestureEvent =
79
+ GestureEvent<PinchGestureHandlerEventPayload>;
80
+ export type PinchGestureHandlerStateChangeEvent =
81
+ HandlerStateChangeEvent<PinchGestureHandlerEventPayload>;
69
82
 
70
- export type RotationGestureHandlerGestureEvent = GestureEvent<RotationGestureHandlerEventPayload>;
71
- export type RotationGestureHandlerStateChangeEvent = HandlerStateChangeEvent<RotationGestureHandlerEventPayload>;
83
+ export type RotationGestureHandlerGestureEvent =
84
+ GestureEvent<RotationGestureHandlerEventPayload>;
85
+ export type RotationGestureHandlerStateChangeEvent =
86
+ HandlerStateChangeEvent<RotationGestureHandlerEventPayload>;
72
87
 
73
- export type FlingGestureHandlerGestureEvent = GestureEvent<FlingGestureHandlerEventPayload>;
74
- export type FlingGestureHandlerStateChangeEvent = HandlerStateChangeEvent<FlingGestureHandlerEventPayload>;
88
+ export type FlingGestureHandlerGestureEvent =
89
+ GestureEvent<FlingGestureHandlerEventPayload>;
90
+ export type FlingGestureHandlerStateChangeEvent =
91
+ HandlerStateChangeEvent<FlingGestureHandlerEventPayload>;
75
92
 
76
93
  // handlers properties
77
94
  export type NativeViewGestureHandlerProperties = NativeViewGestureHandlerProps;