Skip to content

Commit fb7af53

Browse files
committed
handler data
1 parent 7d205dc commit fb7af53

File tree

2 files changed

+23
-53
lines changed

2 files changed

+23
-53
lines changed

packages/react-native-gesture-handler/src/web/handlers/GestureHandler.ts

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {
66
PropsRef,
77
ResultEvent,
88
PointerData,
9-
ResultTouchEvent,
109
TouchEventType,
1110
EventTypes,
1211
} from '../interfaces';
@@ -20,6 +19,7 @@ import { PointerType } from '../../PointerType';
2019
import { GestureHandlerDelegate } from '../tools/GestureHandlerDelegate';
2120
import { ActionType } from '../../ActionType';
2221
import { tagMessage } from '../../utils';
22+
import { StateChangeEvent, UpdateEvent } from '../../v3/types';
2323

2424
export default abstract class GestureHandler implements IGestureHandler {
2525
private lastSentState: State | null = null;
@@ -367,8 +367,7 @@ export default abstract class GestureHandler implements IGestureHandler {
367367
const { onGestureHandlerEvent, onGestureHandlerTouchEvent }: PropsRef =
368368
this.propsRef!.current;
369369

370-
const touchEvent: ResultTouchEvent | undefined =
371-
this.transformTouchEvent(event);
370+
const touchEvent: ResultEvent | undefined = this.transformTouchEvent(event);
372371

373372
if (touchEvent) {
374373
if (
@@ -408,7 +407,6 @@ export default abstract class GestureHandler implements IGestureHandler {
408407
invokeNullableMethod(onGestureHandlerStateChange, resultEvent);
409408
}
410409
if (this.state === State.ACTIVE) {
411-
resultEvent.nativeEvent.oldState = undefined;
412410
if (
413411
onGestureHandlerAnimatedEvent &&
414412
(this.actionType === ActionType.NATIVE_ANIMATED_EVENT ||
@@ -426,24 +424,24 @@ export default abstract class GestureHandler implements IGestureHandler {
426424
}
427425
return {
428426
nativeEvent: {
429-
numberOfPointers: this.tracker.trackedPointersCount,
430427
state: newState,
431-
pointerInside: this.delegate.isPointerInBounds(
432-
this.tracker.getAbsoluteCoordsAverage()
433-
),
434-
...this.transformNativeEvent(),
435428
handlerTag: this.handlerTag,
436-
target: this.viewRef,
437-
oldState: newState !== oldState ? oldState : undefined,
438-
pointerType: this.pointerType,
439-
},
429+
oldState: oldState,
430+
handlerData: {
431+
pointerType: this.pointerType,
432+
numberOfPointers: this.tracker.trackedPointersCount,
433+
pointerInside: this.delegate.isPointerInBounds(
434+
this.tracker.getAbsoluteCoordsAverage()
435+
),
436+
...this.transformNativeEvent(),
437+
target: this.viewRef,
438+
},
439+
} as StateChangeEvent<unknown> | UpdateEvent<unknown>,
440440
timeStamp: Date.now(),
441441
};
442442
}
443443

444-
private transformTouchEvent(
445-
event: AdaptedEvent
446-
): ResultTouchEvent | undefined {
444+
private transformTouchEvent(event: AdaptedEvent): ResultEvent | undefined {
447445
const rect = this.delegate.measureView();
448446

449447
const all: PointerData[] = [];
@@ -573,7 +571,7 @@ export default abstract class GestureHandler implements IGestureHandler {
573571
});
574572
});
575573

576-
const cancelEvent: ResultTouchEvent = {
574+
const cancelEvent: ResultEvent = {
577575
nativeEvent: {
578576
handlerTag: this.handlerTag,
579577
state: this.state,
@@ -880,10 +878,10 @@ export default abstract class GestureHandler implements IGestureHandler {
880878

881879
function invokeNullableMethod(
882880
method:
883-
| ((event: ResultEvent | ResultTouchEvent) => void)
884-
| { __getHandler: () => (event: ResultEvent | ResultTouchEvent) => void }
881+
| ((event: ResultEvent) => void)
882+
| { __getHandler: () => (event: ResultEvent) => void }
885883
| { __nodeConfig: { argMapping: unknown[] } },
886-
event: ResultEvent | ResultTouchEvent
884+
event: ResultEvent
887885
): void {
888886
if (!method) {
889887
return;
@@ -915,7 +913,7 @@ function invokeNullableMethod(
915913
}
916914

917915
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
918-
const nativeValue = event.nativeEvent[key];
916+
const nativeValue = (event.nativeEvent as any)[key];
919917

920918
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
921919
if (value?.setValue) {

packages/react-native-gesture-handler/src/web/interfaces.ts

Lines changed: 4 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import {
55
TouchAction,
66
} from '../handlers/gestureHandlerCommon';
77
import { Directions } from '../Directions';
8-
import { State } from '../State';
98
import { PointerType } from '../PointerType';
9+
import { GestureHandlerEvent } from '../v3/types';
1010

1111
export interface HitSlop {
1212
left?: number;
@@ -81,17 +81,6 @@ export interface Config extends Record<string, ConfigArgs> {
8181
enableTrackpadTwoFingerGesture?: boolean;
8282
}
8383

84-
type NativeEventArgs = number | State | boolean | undefined;
85-
interface NativeEvent extends Record<string, NativeEventArgs> {
86-
numberOfPointers: number;
87-
state: State;
88-
pointerInside: boolean | undefined;
89-
handlerTag: number;
90-
target: number;
91-
oldState?: State;
92-
pointerType: PointerType;
93-
}
94-
9584
export interface Point {
9685
x: number;
9786
y: number;
@@ -105,26 +94,9 @@ export interface PointerData {
10594
absoluteY: number;
10695
}
10796

108-
type TouchNativeArgs = number | State | TouchEventType | PointerData[];
109-
110-
interface NativeTouchEvent extends Record<string, TouchNativeArgs> {
111-
handlerTag: number;
112-
state: State;
113-
eventType: TouchEventType;
114-
changedTouches: PointerData[];
115-
allTouches: PointerData[];
116-
numberOfTouches: number;
117-
pointerType: PointerType;
118-
}
119-
120-
export interface ResultEvent extends Record<string, NativeEvent | number> {
121-
nativeEvent: NativeEvent;
122-
timeStamp: number;
123-
}
124-
125-
export interface ResultTouchEvent
126-
extends Record<string, NativeTouchEvent | number> {
127-
nativeEvent: NativeTouchEvent;
97+
export interface ResultEvent
98+
extends Record<string, GestureHandlerEvent<unknown> | number> {
99+
nativeEvent: GestureHandlerEvent<unknown>;
128100
timeStamp: number;
129101
}
130102

0 commit comments

Comments
 (0)