UNPKG

918 BPlain TextView Raw
1import { ValueOf } from '../typeUtils';
2import { Gestures } from '../RNGestureHandlerModule.web';
3
4const gestures: Record<number, InstanceType<ValueOf<typeof Gestures>>> = {};
5
6export function getHandler(tag: number) {
7 if (tag in gestures) return gestures[tag];
8
9 throw new Error(`No handler for tag ${tag}`);
10}
11
12export function createGestureHandler(
13 handlerTag: number,
14 handler: InstanceType<ValueOf<typeof Gestures>>
15) {
16 if (handlerTag in gestures) {
17 throw new Error(`Handler with tag ${handlerTag} already exists`);
18 }
19 gestures[handlerTag] = handler;
20 // @ts-ignore no types for web handlers yet
21 gestures[handlerTag].handlerTag = handlerTag;
22}
23
24export function dropGestureHandler(handlerTag: number) {
25 getHandler(handlerTag).destroy();
26 // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
27 delete gestures[handlerTag];
28}
29
30export function getNodes() {
31 return { ...gestures };
32}