@@ -312,36 +312,17 @@ - (void)sendEvent:(RNGestureHandlerStateChange *)event
312
312
case RNGestureHandlerActionTypeLogicDetector: {
313
313
NSNumber *hostDetectorTag = [_registry handlerWithTag: event.handlerTag].hostDetectorTag ;
314
314
detectorView = [self viewForReactTag: hostDetectorTag];
315
- // intentionally fall through to RNGestureHandlerActionTypeNativeDetector
315
+ [self sendNativeOrLogicEvent: event
316
+ withActionType: actionType
317
+ forHandlerType: eventHandlerType
318
+ forView: detectorView];
319
+ break ;
316
320
}
317
321
case RNGestureHandlerActionTypeNativeDetector: {
318
- if ([event isKindOfClass: [RNGestureHandlerEvent class ]]) {
319
- switch (eventHandlerType) {
320
- case RNGestureHandlerEventHandlerTypeAnimated:
321
- [self sendEventForNativeAnimatedEvent: event];
322
- break ;
323
- case RNGestureHandlerEventHandlerTypeReanimated: {
324
- RNGestureHandlerEvent *gestureEvent = (RNGestureHandlerEvent *)event;
325
- auto nativeEvent = [gestureEvent getReanimatedNativeEvent ];
326
- [(RNGestureHandlerDetector *)detectorView dispatchReanimatedGestureEvent: nativeEvent];
327
- break ;
328
- }
329
- case RNGestureHandlerEventHandlerTypeJS: {
330
- RNGestureHandlerEvent *gestureEvent = (RNGestureHandlerEvent *)event;
331
- auto nativeEvent = [gestureEvent getNativeEvent ];
332
- [(RNGestureHandlerDetector *)detectorView dispatchGestureEvent: nativeEvent];
333
- break ;
334
- }
335
- }
336
- } else {
337
- if (eventHandlerType == RNGestureHandlerEventHandlerTypeReanimated) {
338
- auto nativeEvent = [event getReanimatedNativeEvent ];
339
- [(RNGestureHandlerDetector *)detectorView dispatchReanimatedStateChangeEvent: nativeEvent];
340
- } else {
341
- auto nativeEvent = [event getNativeEvent ];
342
- [(RNGestureHandlerDetector *)detectorView dispatchStateChangeEvent: nativeEvent];
343
- }
344
- }
322
+ [self sendNativeOrLogicEvent: event
323
+ withActionType: actionType
324
+ forHandlerType: eventHandlerType
325
+ forView: detectorView];
345
326
break ;
346
327
}
347
328
@@ -488,6 +469,40 @@ - (void)sendEventForDeviceEvent:(RNGestureHandlerStateChange *)event
488
469
[_eventDispatcher sendDeviceEventWithName: @" onGestureHandlerStateChange" body: body];
489
470
}
490
471
472
+ - (void )sendNativeOrLogicEvent : (RNGestureHandlerStateChange *)event
473
+ withActionType : (RNGestureHandlerActionType)actionType
474
+ forHandlerType : (RNGestureHandlerEventHandlerType)eventHandlerType
475
+ forView : (RNGHUIView *)detectorView
476
+ {
477
+ if ([event isKindOfClass: [RNGestureHandlerEvent class ]]) {
478
+ switch (eventHandlerType) {
479
+ case RNGestureHandlerEventHandlerTypeAnimated:
480
+ [self sendEventForNativeAnimatedEvent: event];
481
+ break ;
482
+ case RNGestureHandlerEventHandlerTypeReanimated: {
483
+ RNGestureHandlerEvent *gestureEvent = (RNGestureHandlerEvent *)event;
484
+ auto nativeEvent = [gestureEvent getReanimatedNativeEvent ];
485
+ [(RNGestureHandlerDetector *)detectorView dispatchReanimatedGestureEvent: nativeEvent];
486
+ break ;
487
+ }
488
+ case RNGestureHandlerEventHandlerTypeJS: {
489
+ RNGestureHandlerEvent *gestureEvent = (RNGestureHandlerEvent *)event;
490
+ auto nativeEvent = [gestureEvent getNativeEvent ];
491
+ [(RNGestureHandlerDetector *)detectorView dispatchGestureEvent: nativeEvent];
492
+ break ;
493
+ }
494
+ }
495
+ } else {
496
+ if (eventHandlerType == RNGestureHandlerEventHandlerTypeReanimated) {
497
+ auto nativeEvent = [event getReanimatedNativeEvent ];
498
+ [(RNGestureHandlerDetector *)detectorView dispatchReanimatedStateChangeEvent: nativeEvent];
499
+ } else {
500
+ auto nativeEvent = [event getNativeEvent ];
501
+ [(RNGestureHandlerDetector *)detectorView dispatchStateChangeEvent: nativeEvent];
502
+ }
503
+ }
504
+ }
505
+
491
506
- (RNGHUIView *)viewForReactTag : (NSNumber *)reactTag
492
507
{
493
508
return [_viewRegistry viewForReactTag: reactTag];
0 commit comments