Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
ea8bd73
basic component
akwasniewski Jul 25, 2025
32fea07
Merge branch 'next' into @akwasniewski/native-detector-web
akwasniewski Jul 25, 2025
968112c
better useffect triggers:
akwasniewski Jul 25, 2025
6a69cd7
added todos
akwasniewski Jul 25, 2025
2b404af
moved Gesture handler detectors
akwasniewski Jul 25, 2025
9c30c1a
path fix
akwasniewski Jul 25, 2025
d7dd057
extracted host gesture detector
akwasniewski Jul 25, 2025
56b93d3
not extending view props
akwasniewski Jul 25, 2025
ad8ef64
native detector action type
akwasniewski Jul 25, 2025
0304177
moved implementation of web handler
akwasniewski Jul 28, 2025
4aaf700
memoisation
akwasniewski Jul 28, 2025
eeddd24
detaching handlers
akwasniewski Jul 28, 2025
3242ffd
forgot to asign to oldHandlerTags
akwasniewski Jul 28, 2025
7147ab3
removed unnecessary types
akwasniewski Jul 28, 2025
cc78f74
native detector animated event action type
akwasniewski Jul 28, 2025
067becb
removed console log
akwasniewski Jul 28, 2025
d782c95
handling animated events in sendEvents
akwasniewski Jul 29, 2025
86046bd
first refactor
akwasniewski Jul 29, 2025
6c34d33
using native detector animated event
akwasniewski Jul 29, 2025
cd793b3
refactor 2
akwasniewski Jul 29, 2025
580494d
use callback in native detector
akwasniewski Jul 30, 2025
eb98bf4
tagMessage
akwasniewski Jul 30, 2025
af663c8
should prevent drop
akwasniewski Jul 30, 2025
42e84b4
old api compatibility
akwasniewski Jul 30, 2025
079fdb4
not throwing strings
akwasniewski Jul 30, 2025
cb72d7e
removed unnessary check
akwasniewski Jul 30, 2025
de98017
even more refactoring
akwasniewski Jul 30, 2025
e193ff4
throwing when propsref is null
akwasniewski Jul 30, 2025
2ba053a
helper action type functions
akwasniewski Jul 30, 2025
8ab666b
separate paths on touch events
akwasniewski Jul 30, 2025
c445262
removed unsafe memoisation
akwasniewski Jul 30, 2025
46a9570
props extending
akwasniewski Jul 30, 2025
37c4070
failing on detach
akwasniewski Jul 31, 2025
20cbc9e
one more refactor
akwasniewski Aug 1, 2025
58f8d60
display contents
akwasniewski Aug 1, 2025
532f35a
Merge branch 'next' into @akwasniewski/native-detector-web
akwasniewski Aug 1, 2025
7d205dc
removed action type native detector animated event
akwasniewski Aug 1, 2025
fb7af53
handler data
akwasniewski Aug 1, 2025
cc3b639
fixed cyclic dependency
akwasniewski Aug 4, 2025
0c6f200
Update packages/react-native-gesture-handler/src/web/tools/GestureHan…
akwasniewski Aug 4, 2025
00738d6
minor fixes
akwasniewski Aug 4, 2025
9c17a96
type predicate
akwasniewski Aug 4, 2025
2353a84
readded memoisation
akwasniewski Aug 4, 2025
2443971
changed dependencies
akwasniewski Aug 5, 2025
f3198f5
moved forAnimated to config
akwasniewski Aug 5, 2025
686fadd
removed forAnimated from attachHandlers
akwasniewski Aug 5, 2025
b0d384d
type predicate using protected props ref
akwasniewski Aug 5, 2025
2ba5ae8
native gesture bugfix
akwasniewski Aug 5, 2025
38b240a
Merge branch 'next' into @akwasniewski/native-detector-web
akwasniewski Aug 5, 2025
7c00105
removed forAnimated
akwasniewski Aug 5, 2025
dceba3b
Merge branch 'next' into @akwasniewski/native-detector-web
akwasniewski Aug 5, 2025
14190fc
Merge branch '@akwasniewski/native-detector-web' into @akwasniewski/v…
akwasniewski Aug 5, 2025
b738254
removed usecallback
akwasniewski Aug 6, 2025
1f62d5c
private isInitialized
akwasniewski Aug 6, 2025
4d916f5
removed type predicate
akwasniewski Aug 6, 2025
0b16cdb
removed unnecessary type indications
akwasniewski Aug 6, 2025
8579092
typing wherever possible
akwasniewski Aug 6, 2025
089466e
Merge branch '@akwasniewski/native-detector-web' into @akwasniewski/v…
akwasniewski Aug 6, 2025
04ec35f
v2 compatibility
akwasniewski Aug 8, 2025
5837159
old state
akwasniewski Aug 8, 2025
0c96928
safe old state
akwasniewski Aug 8, 2025
4d6d1f2
merge with parent branch
akwasniewski Aug 8, 2025
6391704
better oldState handling
akwasniewski Aug 8, 2025
9e6fa97
specific transform event functions
akwasniewski Aug 11, 2025
323acf6
Merge branch 'next' into @akwasniewski/v3-web-typing
akwasniewski Aug 11, 2025
3336d48
Merge branch 'next' into @akwasniewski/v3-web-typing
akwasniewski Aug 11, 2025
4a75f5f
Merge branch 'next' into @akwasniewski/v3-web-typing
akwasniewski Aug 12, 2025
a5148ac
fixing v2?
akwasniewski Aug 14, 2025
1cd5eef
remove merge remnants
akwasniewski Aug 14, 2025
2e47b1a
removed obsolete comment
akwasniewski Aug 14, 2025
01e2ba9
Removing native synthetic event
akwasniewski Aug 18, 2025
7ee21d9
Merge branch 'next' into @akwasniewski/v3-web-typing
akwasniewski Aug 19, 2025
545cd3d
using common type for touchevent
akwasniewski Aug 19, 2025
5299992
Merge branch 'next' into @akwasniewski/v3-web-typing
akwasniewski Aug 19, 2025
dd73a7d
Merge branch 'next' into @akwasniewski/v3-web-typing
akwasniewski Aug 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -416,23 +416,41 @@ export default abstract class GestureHandler implements IGestureHandler {
if (!this.viewRef) {
throw new Error(tagMessage('Cannot handle event when target is null'));
}
return {
nativeEvent: {
state: newState,
handlerTag: this.handlerTag,
oldState: oldState,
handlerData: {
pointerType: this.pointerType,
if (this.actionType === ActionType.NATIVE_DETECTOR) {
return {
nativeEvent: {
state: newState,
handlerTag: this.handlerTag,
oldState: oldState,
handlerData: {
pointerType: this.pointerType,
numberOfPointers: this.tracker.trackedPointersCount,
pointerInside: this.delegate.isPointerInBounds(
this.tracker.getAbsoluteCoordsAverage()
),
...this.transformNativeEvent(),
target: this.viewRef,
},
} as StateChangeEvent<unknown> | UpdateEvent<unknown>,
timeStamp: Date.now(),
};
} else {
return {
nativeEvent: {
numberOfPointers: this.tracker.trackedPointersCount,
state: newState,
pointerInside: this.delegate.isPointerInBounds(
this.tracker.getAbsoluteCoordsAverage()
),
...this.transformNativeEvent(),
handlerTag: this.handlerTag,
target: this.viewRef,
oldState: newState !== oldState ? oldState : undefined,
pointerType: this.pointerType,
},
} as StateChangeEvent<unknown> | UpdateEvent<unknown>,
timeStamp: Date.now(),
};
timeStamp: Date.now(),
};
}
}

private transformTouchEvent(event: AdaptedEvent): ResultEvent | undefined {
Expand Down
19 changes: 16 additions & 3 deletions packages/react-native-gesture-handler/src/web/interfaces.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
import { Directions } from '../Directions';
import { PointerType } from '../PointerType';
import { GestureHandlerEvent } from '../v3/types';
import { State } from '../State';

export interface HitSlop {
left?: number;
Expand Down Expand Up @@ -83,6 +84,17 @@ export interface Config extends Record<string, ConfigArgs> {
enableTrackpadTwoFingerGesture?: boolean;
}

type NativeEventArgs = number | State | boolean | undefined;
interface NativeEvent extends Record<string, NativeEventArgs> {
numberOfPointers: number;
state: State;
pointerInside: boolean | undefined;
handlerTag: number;
target: number;
oldState?: State;
pointerType: PointerType;
}

export interface Point {
x: number;
y: number;
Expand All @@ -96,9 +108,10 @@ export interface PointerData {
absoluteY: number;
}

export interface ResultEvent
extends Record<string, GestureHandlerEvent<unknown> | number> {
nativeEvent: GestureHandlerEvent<unknown>;
// Native event has to stay for v2 compatibility
type ResultEventType = GestureHandlerEvent<unknown> | NativeEvent;
export interface ResultEvent extends Record<string, ResultEventType | number> {
nativeEvent: ResultEventType;
timeStamp: number;
}

Expand Down
Loading