react-native-gesture-handler 2.4.0 → 2.5.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/README.md +3 -2
- package/android/build.gradle +28 -4
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.kt +9 -5
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +6 -1
- package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt +103 -22
- package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +29 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +74 -84
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +4 -0
- package/android/src/main/jni/Android.mk +1 -2
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerDelegate.java +12 -9
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerInterface.java +1 -0
- package/ios/Handlers/RNFlingHandler.m +43 -1
- package/ios/Handlers/{RNNativeViewHandler.m → RNNativeViewHandler.mm} +13 -1
- package/ios/Handlers/RNPanHandler.m +27 -0
- package/ios/RNGestureHandler.h +1 -0
- package/ios/RNGestureHandler.m +22 -4
- package/ios/RNGestureHandlerManager.mm +10 -2
- package/ios/RNGestureHandlerModule.mm +4 -1
- package/ios/RNManualActivationRecognizer.m +10 -3
- package/ios/RNRootViewGestureRecognizer.m +12 -1
- package/lib/commonjs/RNGestureHandlerModule.macos.js +81 -0
- package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -0
- package/lib/commonjs/components/DrawerLayout.js +38 -11
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/GestureButtons.js.map +1 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js +4 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/commonjs/fabric/RNGestureHandlerButtonNativeComponent.js.map +1 -1
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js +2 -1
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PanGestureHandler.js +1 -1
- package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PressabilityDebugView.js +14 -0
- package/lib/commonjs/handlers/PressabilityDebugView.js.map +1 -0
- package/lib/commonjs/handlers/PressabilityDebugView.web.js +12 -0
- package/lib/commonjs/handlers/PressabilityDebugView.web.js.map +1 -0
- package/lib/commonjs/handlers/createHandler.js +25 -11
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector.js +83 -63
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js +13 -2
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureStateManager.js +13 -9
- package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -1
- package/lib/commonjs/handlers/gestures/panGesture.js +5 -0
- package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -1
- package/lib/commonjs/mocks.js +2 -0
- package/lib/commonjs/mocks.js.map +1 -1
- package/lib/commonjs/utils.js +6 -3
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/commonjs/web/utils.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.macos.js +57 -0
- package/lib/module/RNGestureHandlerModule.macos.js.map +1 -0
- package/lib/module/components/DrawerLayout.js +38 -11
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/GestureButtons.js.map +1 -1
- package/lib/module/components/touchables/GenericTouchable.js +4 -1
- package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/module/fabric/RNGestureHandlerButtonNativeComponent.js.map +1 -1
- package/lib/module/handlers/ForceTouchGestureHandler.js +1 -1
- package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/module/handlers/PanGestureHandler.js +1 -1
- package/lib/module/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/handlers/PressabilityDebugView.js +3 -0
- package/lib/module/handlers/PressabilityDebugView.js.map +1 -0
- package/lib/module/handlers/PressabilityDebugView.web.js +5 -0
- package/lib/module/handlers/PressabilityDebugView.web.js.map +1 -0
- package/lib/module/handlers/createHandler.js +26 -12
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +83 -63
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/module/handlers/gestures/gesture.js +13 -2
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/handlers/gestures/gestureStateManager.js +13 -9
- package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -1
- package/lib/module/handlers/gestures/panGesture.js +5 -0
- package/lib/module/handlers/gestures/panGesture.js.map +1 -1
- package/lib/module/mocks.js +2 -0
- package/lib/module/mocks.js.map +1 -1
- package/lib/module/utils.js +2 -1
- package/lib/module/utils.js.map +1 -1
- package/lib/module/web/utils.js.map +1 -1
- package/lib/typescript/RNGestureHandlerModule.macos.d.ts +34 -0
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
- package/lib/typescript/components/DrawerLayout.d.ts +3 -0
- package/lib/typescript/components/GestureButtons.d.ts +6 -0
- package/lib/typescript/fabric/RNGestureHandlerButtonNativeComponent.d.ts +1 -0
- package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +2 -2
- package/lib/typescript/handlers/PanGestureHandler.d.ts +2 -1
- package/lib/typescript/handlers/PressabilityDebugView.d.ts +1 -0
- package/lib/typescript/handlers/PressabilityDebugView.web.d.ts +1 -0
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector.d.ts +2 -1
- package/lib/typescript/handlers/gestures/gesture.d.ts +3 -0
- package/lib/typescript/handlers/gestures/panGesture.d.ts +1 -0
- package/lib/typescript/mocks.d.ts +1 -0
- package/lib/typescript/web/NodeManager.d.ts +2 -2
- package/package.json +1 -1
- package/src/RNGestureHandlerModule.macos.ts +62 -0
- package/src/components/DrawerLayout.tsx +34 -10
- package/src/components/GestureButtons.tsx +7 -0
- package/src/components/touchables/GenericTouchable.tsx +1 -0
- package/src/fabric/RNGestureHandlerButtonNativeComponent.ts +1 -0
- package/src/handlers/ForceTouchGestureHandler.ts +3 -2
- package/src/handlers/PanGestureHandler.ts +2 -0
- package/src/handlers/PressabilityDebugView.tsx +2 -0
- package/src/handlers/PressabilityDebugView.web.tsx +4 -0
- package/src/handlers/{createHandler.ts → createHandler.tsx} +32 -17
- package/src/handlers/gestureHandlerCommon.ts +2 -0
- package/src/handlers/gestures/GestureDetector.tsx +107 -81
- package/src/handlers/gestures/gesture.ts +16 -0
- package/src/handlers/gestures/gestureStateManager.ts +13 -8
- package/src/handlers/gestures/panGesture.ts +5 -0
- package/src/mocks.ts +2 -0
- package/src/utils.ts +3 -1
- package/src/web/utils.ts +1 -1
- package/ios/RNGestureHandler.xcodeproj/project.xcworkspace/xcuserdata/jakubpiasecki.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/RNGestureHandler.xcodeproj/xcuserdata/jakubpiasecki.xcuserdatad/xcschemes/xcschememanagement.plist +0 -19
|
@@ -126,6 +126,8 @@ export type BaseGestureHandlerProps<
|
|
|
126
126
|
onHandlerStateChange?: (
|
|
127
127
|
event: HandlerStateChangeEvent<ExtraEventPayloadT>
|
|
128
128
|
) => void;
|
|
129
|
+
// implicit `children` prop has been removed in @types/react^18.0.0
|
|
130
|
+
children?: React.ReactNode;
|
|
129
131
|
};
|
|
130
132
|
|
|
131
133
|
function isConfigParam(param: unknown, name: string) {
|
|
@@ -268,11 +268,34 @@ function updateHandlers(
|
|
|
268
268
|
}
|
|
269
269
|
|
|
270
270
|
if (preparedGesture.animatedHandlers) {
|
|
271
|
-
|
|
271
|
+
const previousHandlersValue =
|
|
272
|
+
preparedGesture.animatedHandlers.value ?? [];
|
|
273
|
+
const newHandlersValue = (preparedGesture.config
|
|
272
274
|
.filter((g) => g.shouldUseReanimated) // ignore gestures that shouldn't run on UI
|
|
273
275
|
.map((g) => g.handlers) as unknown) as HandlerCallbacks<
|
|
274
276
|
Record<string, unknown>
|
|
275
277
|
>[];
|
|
278
|
+
|
|
279
|
+
// if amount of gesture configs changes, we need to update the callbacks in shared value
|
|
280
|
+
let shouldUpdateSharedValue =
|
|
281
|
+
previousHandlersValue.length !== newHandlersValue.length;
|
|
282
|
+
|
|
283
|
+
if (!shouldUpdateSharedValue) {
|
|
284
|
+
// if the amount is the same, we need to check if any of the configs inside has changed
|
|
285
|
+
for (let i = 0; i < newHandlersValue.length; i++) {
|
|
286
|
+
if (
|
|
287
|
+
// we can use the `gestureId` prop as it's unique for every config instance
|
|
288
|
+
newHandlersValue[i].gestureId !== previousHandlersValue[i].gestureId
|
|
289
|
+
) {
|
|
290
|
+
shouldUpdateSharedValue = true;
|
|
291
|
+
break;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
if (shouldUpdateSharedValue) {
|
|
297
|
+
preparedGesture.animatedHandlers.value = newHandlersValue;
|
|
298
|
+
}
|
|
276
299
|
}
|
|
277
300
|
|
|
278
301
|
scheduleFlushOperations();
|
|
@@ -299,90 +322,90 @@ function needsToReattach(
|
|
|
299
322
|
return false;
|
|
300
323
|
}
|
|
301
324
|
|
|
302
|
-
function
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
325
|
+
function isStateChangeEvent(
|
|
326
|
+
event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent
|
|
327
|
+
): event is GestureStateChangeEvent {
|
|
328
|
+
'worklet';
|
|
329
|
+
// @ts-ignore Yes, the oldState prop is missing on GestureTouchEvent, that's the point
|
|
330
|
+
return event.oldState != null;
|
|
331
|
+
}
|
|
309
332
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
}
|
|
333
|
+
function isTouchEvent(
|
|
334
|
+
event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent
|
|
335
|
+
): event is GestureTouchEvent {
|
|
336
|
+
'worklet';
|
|
337
|
+
return event.eventType != null;
|
|
338
|
+
}
|
|
317
339
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
340
|
+
function getHandler(
|
|
341
|
+
type: CALLBACK_TYPE,
|
|
342
|
+
gesture: HandlerCallbacks<Record<string, unknown>>
|
|
343
|
+
) {
|
|
344
|
+
'worklet';
|
|
345
|
+
switch (type) {
|
|
346
|
+
case CALLBACK_TYPE.BEGAN:
|
|
347
|
+
return gesture.onBegin;
|
|
348
|
+
case CALLBACK_TYPE.START:
|
|
349
|
+
return gesture.onStart;
|
|
350
|
+
case CALLBACK_TYPE.UPDATE:
|
|
351
|
+
return gesture.onUpdate;
|
|
352
|
+
case CALLBACK_TYPE.CHANGE:
|
|
353
|
+
return gesture.onChange;
|
|
354
|
+
case CALLBACK_TYPE.END:
|
|
355
|
+
return gesture.onEnd;
|
|
356
|
+
case CALLBACK_TYPE.FINALIZE:
|
|
357
|
+
return gesture.onFinalize;
|
|
358
|
+
case CALLBACK_TYPE.TOUCHES_DOWN:
|
|
359
|
+
return gesture.onTouchesDown;
|
|
360
|
+
case CALLBACK_TYPE.TOUCHES_MOVE:
|
|
361
|
+
return gesture.onTouchesMove;
|
|
362
|
+
case CALLBACK_TYPE.TOUCHES_UP:
|
|
363
|
+
return gesture.onTouchesUp;
|
|
364
|
+
case CALLBACK_TYPE.TOUCHES_CANCELLED:
|
|
365
|
+
return gesture.onTouchesCancelled;
|
|
323
366
|
}
|
|
367
|
+
}
|
|
324
368
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
return gesture.onChange;
|
|
339
|
-
case CALLBACK_TYPE.END:
|
|
340
|
-
return gesture.onEnd;
|
|
341
|
-
case CALLBACK_TYPE.FINALIZE:
|
|
342
|
-
return gesture.onFinalize;
|
|
343
|
-
case CALLBACK_TYPE.TOUCHES_DOWN:
|
|
344
|
-
return gesture.onTouchesDown;
|
|
345
|
-
case CALLBACK_TYPE.TOUCHES_MOVE:
|
|
346
|
-
return gesture.onTouchesMove;
|
|
347
|
-
case CALLBACK_TYPE.TOUCHES_UP:
|
|
348
|
-
return gesture.onTouchesUp;
|
|
349
|
-
case CALLBACK_TYPE.TOUCHES_CANCELLED:
|
|
350
|
-
return gesture.onTouchesCancelled;
|
|
351
|
-
}
|
|
369
|
+
function touchEventTypeToCallbackType(
|
|
370
|
+
eventType: TouchEventType
|
|
371
|
+
): CALLBACK_TYPE {
|
|
372
|
+
'worklet';
|
|
373
|
+
switch (eventType) {
|
|
374
|
+
case TouchEventType.TOUCHES_DOWN:
|
|
375
|
+
return CALLBACK_TYPE.TOUCHES_DOWN;
|
|
376
|
+
case TouchEventType.TOUCHES_MOVE:
|
|
377
|
+
return CALLBACK_TYPE.TOUCHES_MOVE;
|
|
378
|
+
case TouchEventType.TOUCHES_UP:
|
|
379
|
+
return CALLBACK_TYPE.TOUCHES_UP;
|
|
380
|
+
case TouchEventType.TOUCHES_CANCELLED:
|
|
381
|
+
return CALLBACK_TYPE.TOUCHES_CANCELLED;
|
|
352
382
|
}
|
|
383
|
+
return CALLBACK_TYPE.UNDEFINED;
|
|
384
|
+
}
|
|
353
385
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
return CALLBACK_TYPE.UNDEFINED;
|
|
386
|
+
function runWorklet(
|
|
387
|
+
type: CALLBACK_TYPE,
|
|
388
|
+
gesture: HandlerCallbacks<Record<string, unknown>>,
|
|
389
|
+
event: GestureStateChangeEvent | GestureUpdateEvent | GestureTouchEvent,
|
|
390
|
+
...args: any[]
|
|
391
|
+
) {
|
|
392
|
+
'worklet';
|
|
393
|
+
const handler = getHandler(type, gesture);
|
|
394
|
+
if (gesture.isWorklet[type]) {
|
|
395
|
+
// @ts-ignore Logic below makes sure the correct event is send to the
|
|
396
|
+
// correct handler.
|
|
397
|
+
handler?.(event, ...args);
|
|
398
|
+
} else if (handler) {
|
|
399
|
+
console.warn(tagMessage('Animated gesture callback must be a worklet'));
|
|
369
400
|
}
|
|
401
|
+
}
|
|
370
402
|
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
'worklet';
|
|
378
|
-
const handler = getHandler(type, gesture);
|
|
379
|
-
if (gesture.isWorklet[type]) {
|
|
380
|
-
// @ts-ignore Logic below makes sure the correct event is send to the
|
|
381
|
-
// correct handler.
|
|
382
|
-
handler?.(event, ...args);
|
|
383
|
-
} else if (handler) {
|
|
384
|
-
console.warn(tagMessage('Animated gesture callback must be a worklet'));
|
|
385
|
-
}
|
|
403
|
+
function useAnimatedGesture(
|
|
404
|
+
preparedGesture: GestureConfigReference,
|
|
405
|
+
needsRebuild: boolean
|
|
406
|
+
) {
|
|
407
|
+
if (!Reanimated) {
|
|
408
|
+
return;
|
|
386
409
|
}
|
|
387
410
|
|
|
388
411
|
// Hooks are called conditionally, but the condition is whether the
|
|
@@ -490,10 +513,9 @@ function useAnimatedGesture(
|
|
|
490
513
|
|
|
491
514
|
interface GestureDetectorProps {
|
|
492
515
|
gesture?: ComposedGesture | GestureType;
|
|
516
|
+
children?: React.ReactNode;
|
|
493
517
|
}
|
|
494
|
-
export const GestureDetector:
|
|
495
|
-
props
|
|
496
|
-
) => {
|
|
518
|
+
export const GestureDetector = (props: GestureDetectorProps) => {
|
|
497
519
|
const gestureConfig = props.gesture;
|
|
498
520
|
const gesture = gestureConfig?.toGestureArray?.() ?? [];
|
|
499
521
|
const useReanimatedHook = gesture.some((g) => g.shouldUseReanimated);
|
|
@@ -605,7 +627,11 @@ export const GestureDetector: React.FunctionComponent<GestureDetectorProps> = (
|
|
|
605
627
|
}
|
|
606
628
|
};
|
|
607
629
|
|
|
608
|
-
class Wrap extends React.Component<{
|
|
630
|
+
class Wrap extends React.Component<{
|
|
631
|
+
onGestureHandlerEvent?: unknown;
|
|
632
|
+
// implicit `children` prop has been removed in @types/react^18.0.0
|
|
633
|
+
children?: React.ReactNode;
|
|
634
|
+
}> {
|
|
609
635
|
render() {
|
|
610
636
|
// I don't think that fighting with types over such a simple function is worth it
|
|
611
637
|
// The only thing it does is add 'collapsable: false' to the child component
|
|
@@ -53,6 +53,7 @@ type TouchEventHandlerType = (
|
|
|
53
53
|
) => void;
|
|
54
54
|
|
|
55
55
|
export type HandlerCallbacks<EventPayloadT extends Record<string, unknown>> = {
|
|
56
|
+
gestureId: number;
|
|
56
57
|
handlerTag: number;
|
|
57
58
|
onBegin?: (event: GestureStateChangeEvent<EventPayloadT>) => void;
|
|
58
59
|
onStart?: (event: GestureStateChangeEvent<EventPayloadT>) => void;
|
|
@@ -115,17 +116,32 @@ export abstract class Gesture {
|
|
|
115
116
|
abstract prepare(): void;
|
|
116
117
|
}
|
|
117
118
|
|
|
119
|
+
let nextGestureId = 0;
|
|
118
120
|
export abstract class BaseGesture<
|
|
119
121
|
EventPayloadT extends Record<string, unknown>
|
|
120
122
|
> extends Gesture {
|
|
123
|
+
private gestureId = -1;
|
|
121
124
|
public handlerTag = -1;
|
|
122
125
|
public handlerName = '';
|
|
123
126
|
public config: BaseGestureConfig = {};
|
|
124
127
|
public handlers: HandlerCallbacks<EventPayloadT> = {
|
|
128
|
+
gestureId: -1,
|
|
125
129
|
handlerTag: -1,
|
|
126
130
|
isWorklet: [],
|
|
127
131
|
};
|
|
128
132
|
|
|
133
|
+
constructor() {
|
|
134
|
+
super();
|
|
135
|
+
|
|
136
|
+
// Used to check whether the gesture config has been updated when wrapping it
|
|
137
|
+
// with `useMemo`. Since every config will have a unique id, when the dependencies
|
|
138
|
+
// don't change, the config won't be recreated and the id will stay the same.
|
|
139
|
+
// If the id is different, it means that the config has changed and the gesture
|
|
140
|
+
// needs to be updated.
|
|
141
|
+
this.gestureId = nextGestureId++;
|
|
142
|
+
this.handlers.gestureId = this.gestureId;
|
|
143
|
+
}
|
|
144
|
+
|
|
129
145
|
private addDependency(
|
|
130
146
|
key: 'simultaneousWith' | 'requireToFail',
|
|
131
147
|
gesture: Exclude<GestureRef, number>
|
|
@@ -13,14 +13,19 @@ const warningMessage = tagMessage(
|
|
|
13
13
|
'react-native-reanimated is required in order to use synchronous state management'
|
|
14
14
|
);
|
|
15
15
|
|
|
16
|
+
// check if reanimated module is available, but look for useSharedValue as conditional
|
|
17
|
+
// require of reanimated can sometimes return content of `utils.ts` file (?)
|
|
18
|
+
const REANIMATED_AVAILABLE = Reanimated?.useSharedValue !== undefined;
|
|
19
|
+
const setGestureState = Reanimated?.setGestureState;
|
|
20
|
+
|
|
16
21
|
export const GestureStateManager = {
|
|
17
22
|
create(handlerTag: number): GestureStateManagerType {
|
|
18
23
|
'worklet';
|
|
19
24
|
return {
|
|
20
25
|
begin: () => {
|
|
21
26
|
'worklet';
|
|
22
|
-
if (
|
|
23
|
-
|
|
27
|
+
if (REANIMATED_AVAILABLE) {
|
|
28
|
+
setGestureState(handlerTag, State.BEGAN);
|
|
24
29
|
} else {
|
|
25
30
|
console.warn(warningMessage);
|
|
26
31
|
}
|
|
@@ -28,8 +33,8 @@ export const GestureStateManager = {
|
|
|
28
33
|
|
|
29
34
|
activate: () => {
|
|
30
35
|
'worklet';
|
|
31
|
-
if (
|
|
32
|
-
|
|
36
|
+
if (REANIMATED_AVAILABLE) {
|
|
37
|
+
setGestureState(handlerTag, State.ACTIVE);
|
|
33
38
|
} else {
|
|
34
39
|
console.warn(warningMessage);
|
|
35
40
|
}
|
|
@@ -37,8 +42,8 @@ export const GestureStateManager = {
|
|
|
37
42
|
|
|
38
43
|
fail: () => {
|
|
39
44
|
'worklet';
|
|
40
|
-
if (
|
|
41
|
-
|
|
45
|
+
if (REANIMATED_AVAILABLE) {
|
|
46
|
+
setGestureState(handlerTag, State.FAILED);
|
|
42
47
|
} else {
|
|
43
48
|
console.warn(warningMessage);
|
|
44
49
|
}
|
|
@@ -46,8 +51,8 @@ export const GestureStateManager = {
|
|
|
46
51
|
|
|
47
52
|
end: () => {
|
|
48
53
|
'worklet';
|
|
49
|
-
if (
|
|
50
|
-
|
|
54
|
+
if (REANIMATED_AVAILABLE) {
|
|
55
|
+
setGestureState(handlerTag, State.END);
|
|
51
56
|
} else {
|
|
52
57
|
console.warn(warningMessage);
|
|
53
58
|
}
|
|
@@ -131,6 +131,11 @@ export class PanGesture extends ContinousBaseGesture<
|
|
|
131
131
|
return this;
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
+
activateAfterLongPress(duration: number) {
|
|
135
|
+
this.config.activateAfterLongPress = duration;
|
|
136
|
+
return this;
|
|
137
|
+
}
|
|
138
|
+
|
|
134
139
|
onChange(
|
|
135
140
|
callback: (
|
|
136
141
|
event: GestureUpdateEvent<
|
package/src/mocks.ts
CHANGED
|
@@ -21,6 +21,7 @@ const attachGestureHandler = NOOP;
|
|
|
21
21
|
const createGestureHandler = NOOP;
|
|
22
22
|
const dropGestureHandler = NOOP;
|
|
23
23
|
const updateGestureHandler = NOOP;
|
|
24
|
+
const flushOperations = NOOP;
|
|
24
25
|
const NativeViewGestureHandler = View;
|
|
25
26
|
const TapGestureHandler = View;
|
|
26
27
|
const ForceTouchGestureHandler = View;
|
|
@@ -59,6 +60,7 @@ export default {
|
|
|
59
60
|
createGestureHandler,
|
|
60
61
|
dropGestureHandler,
|
|
61
62
|
updateGestureHandler,
|
|
63
|
+
flushOperations,
|
|
62
64
|
// probably can be removed
|
|
63
65
|
Directions,
|
|
64
66
|
State,
|
package/src/utils.ts
CHANGED
package/src/web/utils.ts
CHANGED
|
Binary file
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
3
|
-
<plist version="1.0">
|
|
4
|
-
<dict>
|
|
5
|
-
<key>SchemeUserState</key>
|
|
6
|
-
<dict>
|
|
7
|
-
<key>RNGestureHandler-tvOS.xcscheme_^#shared#^_</key>
|
|
8
|
-
<dict>
|
|
9
|
-
<key>orderHint</key>
|
|
10
|
-
<integer>1</integer>
|
|
11
|
-
</dict>
|
|
12
|
-
<key>RNGestureHandler.xcscheme_^#shared#^_</key>
|
|
13
|
-
<dict>
|
|
14
|
-
<key>orderHint</key>
|
|
15
|
-
<integer>0</integer>
|
|
16
|
-
</dict>
|
|
17
|
-
</dict>
|
|
18
|
-
</dict>
|
|
19
|
-
</plist>
|