react-native-gesture-handler 2.7.0 → 2.8.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/android/build.gradle +10 -5
- package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +3 -3
- package/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +7 -7
- package/android/src/fabric/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +2 -2
- package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +3 -3
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/FlingGestureHandler.kt +12 -9
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandler.kt +39 -31
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerInteractionController.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerOrchestrator.kt +28 -19
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerRegistry.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureUtils.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/LongPressGestureHandler.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ManualGestureHandler.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/NativeViewGestureHandler.kt +5 -5
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/OnTouchEventListener.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PanGestureHandler.kt +7 -5
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PinchGestureHandler.kt +11 -4
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PointerEventsConfig.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureDetector.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureHandler.kt +7 -2
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ScaleGestureDetector.java +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/TapGestureHandler.kt +3 -3
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ViewConfigurationHelper.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/react}/Extensions.kt +3 -3
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +7 -6
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +1 -5
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +6 -6
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +3 -3
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +35 -14
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +2 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +8 -6
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +0 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +4 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +7 -7
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +5 -5
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +2 -2
- package/android/src/paper/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +5 -5
- package/ios/Handlers/RNManualHandler.m +24 -8
- package/ios/RNGestureHandlerButtonComponentView.mm +7 -8
- package/ios/RNGestureHandlerManager.mm +176 -178
- package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.windows.js +156 -0
- package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -0
- package/lib/commonjs/components/DrawerLayout.js +1 -0
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/commonjs/getShadowNodeFromRef.js +2 -2
- package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js +5 -2
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +4 -0
- package/lib/commonjs/handlers/gestures/GestureDetector.js +26 -12
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureComposition.js +15 -4
- package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
- package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +18 -15
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/GestureHandler.js +36 -7
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +2 -1
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/ManualGestureHandler.js +15 -0
- package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -5
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js +0 -5
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -1
- package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -1
- package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web/interfaces.js.map +1 -1
- package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
- package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/NodeManager.js +4 -1
- package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
- package/lib/commonjs/web_hammer/PanGestureHandler.js +25 -6
- package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.windows.js +117 -0
- package/lib/module/RNGestureHandlerModule.windows.js.map +1 -0
- package/lib/module/components/DrawerLayout.js +1 -0
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/module/getShadowNodeFromRef.js +2 -2
- package/lib/module/getShadowNodeFromRef.js.map +1 -1
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js +5 -2
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/module/handlers/gestureHandlerTypesCompat.js +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +26 -12
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/handlers/gestures/gestureComposition.js +15 -4
- package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/module/jestUtils/jestUtils.js.map +1 -1
- package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js +18 -15
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +36 -6
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/LongPressGestureHandler.js +2 -1
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/ManualGestureHandler.js +15 -0
- package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -5
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +0 -5
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PinchGestureHandler.js +0 -1
- package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/RotationGestureHandler.js +0 -1
- package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/TapGestureHandler.js +0 -1
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/web/interfaces.js.map +1 -1
- package/lib/module/web/tools/InteractionManager.js.map +1 -1
- package/lib/module/web_hammer/GestureHandler.js.map +1 -1
- package/lib/module/web_hammer/NodeManager.js +4 -1
- package/lib/module/web_hammer/NodeManager.js.map +1 -1
- package/lib/module/web_hammer/PanGestureHandler.js +25 -6
- package/lib/module/web_hammer/PanGestureHandler.js.map +1 -1
- package/lib/typescript/RNGestureHandlerModule.macos.d.ts +1 -1
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
- package/lib/typescript/RNGestureHandlerModule.windows.d.ts +48 -0
- package/lib/typescript/components/DrawerLayout.d.ts +7 -0
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -1
- package/lib/typescript/handlers/PanGestureHandler.d.ts +1 -1
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +3 -1
- package/lib/typescript/handlers/gestures/GestureDetector.d.ts +3 -1
- package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/GestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +3 -1
- package/lib/typescript/web/interfaces.d.ts +3 -1
- package/lib/typescript/web/tools/NodeManager.d.ts +2 -2
- package/package.json +14 -10
- package/src/RNGestureHandlerModule.macos.ts +2 -2
- package/src/RNGestureHandlerModule.web.ts +2 -2
- package/src/RNGestureHandlerModule.windows.ts +140 -0
- package/src/components/DrawerLayout.tsx +14 -8
- package/src/components/Swipeable.tsx +2 -4
- package/src/components/touchables/TouchableOpacity.tsx +1 -1
- package/src/getShadowNodeFromRef.ts +3 -3
- package/src/handlers/createHandler.tsx +13 -15
- package/src/handlers/gestureHandlerCommon.ts +9 -4
- package/src/handlers/gestureHandlerTypesCompat.ts +34 -17
- package/src/handlers/gestures/GestureDetector.tsx +46 -19
- package/src/handlers/gestures/eventReceiver.ts +2 -1
- package/src/handlers/gestures/gesture.ts +8 -12
- package/src/handlers/gestures/gestureComposition.ts +19 -6
- package/src/jestUtils/jestUtils.ts +3 -4
- package/src/web/detectors/RotationGestureDetector.ts +2 -1
- package/src/web/handlers/FlingGestureHandler.ts +28 -20
- package/src/web/handlers/GestureHandler.ts +42 -17
- package/src/web/handlers/LongPressGestureHandler.ts +2 -2
- package/src/web/handlers/ManualGestureHandler.ts +10 -1
- package/src/web/handlers/NativeViewGestureHandler.ts +0 -5
- package/src/web/handlers/PanGestureHandler.ts +0 -6
- package/src/web/handlers/PinchGestureHandler.ts +0 -2
- package/src/web/handlers/RotationGestureHandler.ts +2 -5
- package/src/web/handlers/TapGestureHandler.ts +0 -2
- package/src/web/interfaces.ts +3 -0
- package/src/web/tools/InteractionManager.ts +2 -3
- package/src/web_hammer/GestureHandler.ts +6 -8
- package/src/web_hammer/NodeManager.ts +3 -1
- package/src/web_hammer/PanGestureHandler.ts +12 -6
- package/android/lib/build.gradle +0 -28
- 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
|
@@ -1,160 +1,158 @@
|
|
|
1
1
|
#import "RNGestureHandlerManager.h"
|
|
2
2
|
|
|
3
|
-
#import <React/RCTLog.h>
|
|
4
|
-
#import <React/RCTViewManager.h>
|
|
5
3
|
#import <React/RCTComponent.h>
|
|
6
|
-
#import <React/RCTRootView.h>
|
|
7
|
-
#import <React/RCTUIManager.h>
|
|
8
4
|
#import <React/RCTEventDispatcher.h>
|
|
5
|
+
#import <React/RCTLog.h>
|
|
9
6
|
#import <React/RCTRootContentView.h>
|
|
7
|
+
#import <React/RCTRootView.h>
|
|
8
|
+
#import <React/RCTUIManager.h>
|
|
9
|
+
#import <React/RCTViewManager.h>
|
|
10
10
|
|
|
11
|
-
#import "RNGestureHandlerActionType.h"
|
|
12
|
-
#import "RNGestureHandlerState.h"
|
|
13
11
|
#import "RNGestureHandler.h"
|
|
12
|
+
#import "RNGestureHandlerActionType.h"
|
|
14
13
|
#import "RNGestureHandlerRegistry.h"
|
|
14
|
+
#import "RNGestureHandlerState.h"
|
|
15
15
|
#import "RNRootViewGestureRecognizer.h"
|
|
16
16
|
|
|
17
17
|
#ifdef RN_FABRIC_ENABLED
|
|
18
|
-
#import <React/RCTViewComponentView.h>
|
|
19
18
|
#import <React/RCTSurfaceTouchHandler.h>
|
|
19
|
+
#import <React/RCTViewComponentView.h>
|
|
20
20
|
#else
|
|
21
21
|
#import <React/RCTTouchHandler.h>
|
|
22
22
|
#endif // RN_FABRIC_ENABLED
|
|
23
23
|
|
|
24
|
-
#import "Handlers/RNPanHandler.h"
|
|
25
|
-
#import "Handlers/RNTapHandler.h"
|
|
26
24
|
#import "Handlers/RNFlingHandler.h"
|
|
25
|
+
#import "Handlers/RNForceTouchHandler.h"
|
|
27
26
|
#import "Handlers/RNLongPressHandler.h"
|
|
27
|
+
#import "Handlers/RNManualHandler.h"
|
|
28
28
|
#import "Handlers/RNNativeViewHandler.h"
|
|
29
|
+
#import "Handlers/RNPanHandler.h"
|
|
29
30
|
#import "Handlers/RNPinchHandler.h"
|
|
30
31
|
#import "Handlers/RNRotationHandler.h"
|
|
31
|
-
#import "Handlers/
|
|
32
|
-
#import "Handlers/RNManualHandler.h"
|
|
32
|
+
#import "Handlers/RNTapHandler.h"
|
|
33
33
|
|
|
34
34
|
// We use the method below instead of RCTLog because we log out messages after the bridge gets
|
|
35
35
|
// turned down in some cases. Which normally with RCTLog would cause a crash in DEBUG mode
|
|
36
|
-
#define RCTLifecycleLog(...)
|
|
36
|
+
#define RCTLifecycleLog(...) \
|
|
37
|
+
RCTDefaultLogFunction( \
|
|
38
|
+
RCTLogLevelInfo, RCTLogSourceNative, @(__FILE__), @(__LINE__), [NSString stringWithFormat:__VA_ARGS__])
|
|
37
39
|
|
|
38
40
|
@interface RNGestureHandlerManager () <RNGestureHandlerEventEmitter, RNRootViewGestureRecognizerDelegate>
|
|
39
41
|
|
|
40
42
|
@end
|
|
41
43
|
|
|
42
|
-
@implementation RNGestureHandlerManager
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
id _reanimatedModule;
|
|
44
|
+
@implementation RNGestureHandlerManager {
|
|
45
|
+
RNGestureHandlerRegistry *_registry;
|
|
46
|
+
RCTUIManager *_uiManager;
|
|
47
|
+
NSHashTable<RNRootViewGestureRecognizer *> *_rootViewGestureRecognizers;
|
|
48
|
+
RCTEventDispatcher *_eventDispatcher;
|
|
49
|
+
id _reanimatedModule;
|
|
49
50
|
}
|
|
50
51
|
|
|
51
|
-
- (instancetype)initWithUIManager:(RCTUIManager *)uiManager
|
|
52
|
-
eventDispatcher:(RCTEventDispatcher *)eventDispatcher
|
|
52
|
+
- (instancetype)initWithUIManager:(RCTUIManager *)uiManager eventDispatcher:(RCTEventDispatcher *)eventDispatcher
|
|
53
53
|
{
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
54
|
+
if ((self = [super init])) {
|
|
55
|
+
_uiManager = uiManager;
|
|
56
|
+
_eventDispatcher = eventDispatcher;
|
|
57
|
+
_registry = [RNGestureHandlerRegistry new];
|
|
58
|
+
_rootViewGestureRecognizers = [NSHashTable hashTableWithOptions:NSPointerFunctionsWeakMemory];
|
|
59
|
+
_reanimatedModule = nil;
|
|
60
|
+
}
|
|
61
|
+
return self;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
- (void)createGestureHandler:(NSString *)handlerName
|
|
65
|
-
tag:(NSNumber *)handlerTag
|
|
66
|
-
config:(NSDictionary *)config
|
|
64
|
+
- (void)createGestureHandler:(NSString *)handlerName tag:(NSNumber *)handlerTag config:(NSDictionary *)config
|
|
67
65
|
{
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
66
|
+
static NSDictionary *map;
|
|
67
|
+
static dispatch_once_t mapToken;
|
|
68
|
+
dispatch_once(&mapToken, ^{
|
|
69
|
+
map = @{
|
|
70
|
+
@"PanGestureHandler" : [RNPanGestureHandler class],
|
|
71
|
+
@"TapGestureHandler" : [RNTapGestureHandler class],
|
|
72
|
+
@"FlingGestureHandler" : [RNFlingGestureHandler class],
|
|
73
|
+
@"LongPressGestureHandler" : [RNLongPressGestureHandler class],
|
|
74
|
+
@"NativeViewGestureHandler" : [RNNativeViewGestureHandler class],
|
|
75
|
+
@"PinchGestureHandler" : [RNPinchGestureHandler class],
|
|
76
|
+
@"RotationGestureHandler" : [RNRotationGestureHandler class],
|
|
77
|
+
@"ForceTouchGestureHandler" : [RNForceTouchHandler class],
|
|
78
|
+
@"ManualGestureHandler" : [RNManualGestureHandler class],
|
|
79
|
+
};
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
Class nodeClass = map[handlerName];
|
|
83
|
+
if (!nodeClass) {
|
|
84
|
+
RCTLogError(@"Gesture handler type %@ is not supported", handlerName);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
RNGestureHandler *gestureHandler = [[nodeClass alloc] initWithTag:handlerTag];
|
|
89
|
+
[gestureHandler configure:config];
|
|
90
|
+
[_registry registerGestureHandler:gestureHandler];
|
|
91
|
+
|
|
92
|
+
__weak id<RNGestureHandlerEventEmitter> emitter = self;
|
|
93
|
+
gestureHandler.emitter = emitter;
|
|
96
94
|
}
|
|
97
95
|
|
|
98
|
-
|
|
99
96
|
- (void)attachGestureHandler:(nonnull NSNumber *)handlerTag
|
|
100
97
|
toViewWithTag:(nonnull NSNumber *)viewTag
|
|
101
98
|
withActionType:(RNGestureHandlerActionType)actionType
|
|
102
99
|
{
|
|
103
|
-
|
|
104
|
-
|
|
100
|
+
UIView *view = [_uiManager viewForReactTag:viewTag];
|
|
101
|
+
|
|
105
102
|
#ifdef RN_FABRIC_ENABLED
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
103
|
+
if (view == nil) {
|
|
104
|
+
// Happens when the view with given tag has been flattened.
|
|
105
|
+
// We cannot attach gesture handler to a non-existent view.
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// I think it should be moved to RNNativeViewHandler, but that would require
|
|
110
|
+
// additional logic for setting contentView.reactTag, this works for now
|
|
111
|
+
if ([view isKindOfClass:[RCTViewComponentView class]]) {
|
|
112
|
+
RCTViewComponentView *componentView = (RCTViewComponentView *)view;
|
|
113
|
+
if (componentView.contentView != nil) {
|
|
114
|
+
view = componentView.contentView;
|
|
110
115
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
RCTViewComponentView *componentView = (RCTViewComponentView *)view;
|
|
116
|
-
if (componentView.contentView != nil) {
|
|
117
|
-
view = componentView.contentView;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
view.reactTag = viewTag; // necessary for RNReanimated eventHash (e.g. "42onGestureHandlerEvent"), also will be returned as event.target
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
view.reactTag = viewTag; // necessary for RNReanimated eventHash (e.g. "42onGestureHandlerEvent"), also will be
|
|
119
|
+
// returned as event.target
|
|
122
120
|
#endif // RN_FABRIC_ENABLED
|
|
123
121
|
|
|
124
|
-
|
|
122
|
+
[_registry attachHandlerWithTag:handlerTag toView:view withActionType:actionType];
|
|
125
123
|
|
|
126
|
-
|
|
127
|
-
|
|
124
|
+
// register view if not already there
|
|
125
|
+
[self registerViewWithGestureRecognizerAttachedIfNeeded:view];
|
|
128
126
|
}
|
|
129
127
|
|
|
130
128
|
- (void)updateGestureHandler:(NSNumber *)handlerTag config:(NSDictionary *)config
|
|
131
129
|
{
|
|
132
|
-
|
|
133
|
-
|
|
130
|
+
RNGestureHandler *handler = [_registry handlerWithTag:handlerTag];
|
|
131
|
+
[handler configure:config];
|
|
134
132
|
}
|
|
135
133
|
|
|
136
134
|
- (void)dropGestureHandler:(NSNumber *)handlerTag
|
|
137
135
|
{
|
|
138
|
-
|
|
136
|
+
[_registry dropHandlerWithTag:handlerTag];
|
|
139
137
|
}
|
|
140
138
|
|
|
141
139
|
- (void)dropAllGestureHandlers
|
|
142
140
|
{
|
|
143
|
-
|
|
141
|
+
[_registry dropAllHandlers];
|
|
144
142
|
}
|
|
145
143
|
|
|
146
144
|
- (void)handleSetJSResponder:(NSNumber *)viewTag blockNativeResponder:(NSNumber *)blockNativeResponder
|
|
147
145
|
{
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}
|
|
146
|
+
if ([blockNativeResponder boolValue]) {
|
|
147
|
+
for (RNRootViewGestureRecognizer *recognizer in _rootViewGestureRecognizers) {
|
|
148
|
+
[recognizer blockOtherRecognizers];
|
|
152
149
|
}
|
|
150
|
+
}
|
|
153
151
|
}
|
|
154
152
|
|
|
155
153
|
- (void)handleClearJSResponder
|
|
156
154
|
{
|
|
157
|
-
|
|
155
|
+
// ignore...
|
|
158
156
|
}
|
|
159
157
|
|
|
160
158
|
- (id)handlerWithTag:(NSNumber *)handlerTag
|
|
@@ -162,145 +160,145 @@
|
|
|
162
160
|
return [_registry handlerWithTag:handlerTag];
|
|
163
161
|
}
|
|
164
162
|
|
|
165
|
-
|
|
166
163
|
#pragma mark Root Views Management
|
|
167
164
|
|
|
168
165
|
- (void)registerViewWithGestureRecognizerAttachedIfNeeded:(UIView *)childView
|
|
169
166
|
{
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
167
|
+
UIView *parent = childView;
|
|
168
|
+
while (parent != nil && ![parent respondsToSelector:@selector(touchHandler)])
|
|
169
|
+
parent = parent.superview;
|
|
170
|
+
|
|
171
|
+
// Many views can return the same touchHandler so we check if the one we want to register
|
|
172
|
+
// is not already present in the set.
|
|
173
|
+
UIView *touchHandlerView = [[parent performSelector:@selector(touchHandler)] view];
|
|
174
|
+
|
|
175
|
+
if (touchHandlerView == nil) {
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
for (UIGestureRecognizer *recognizer in touchHandlerView.gestureRecognizers) {
|
|
180
|
+
if ([recognizer isKindOfClass:[RNRootViewGestureRecognizer class]]) {
|
|
178
181
|
return;
|
|
179
182
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
RNRootViewGestureRecognizer *recognizer = [RNRootViewGestureRecognizer new];
|
|
189
|
-
recognizer.delegate = self;
|
|
190
|
-
touchHandlerView.userInteractionEnabled = YES;
|
|
191
|
-
[touchHandlerView addGestureRecognizer:recognizer];
|
|
192
|
-
[_rootViewGestureRecognizers addObject:recognizer];
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
RCTLifecycleLog(@"[GESTURE HANDLER] Initialize gesture handler for view %@", touchHandlerView);
|
|
186
|
+
RNRootViewGestureRecognizer *recognizer = [RNRootViewGestureRecognizer new];
|
|
187
|
+
recognizer.delegate = self;
|
|
188
|
+
touchHandlerView.userInteractionEnabled = YES;
|
|
189
|
+
[touchHandlerView addGestureRecognizer:recognizer];
|
|
190
|
+
[_rootViewGestureRecognizers addObject:recognizer];
|
|
193
191
|
}
|
|
194
192
|
|
|
195
193
|
- (void)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
|
|
196
194
|
didActivateInViewWithTouchHandler:(UIView *)viewWithTouchHandler
|
|
197
195
|
{
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
196
|
+
// Cancel touches in RN's root view in order to cancel all in-js recognizers
|
|
197
|
+
|
|
198
|
+
// As scroll events are special-cased in RN responder implementation and sending them would
|
|
199
|
+
// trigger JS responder change, we don't cancel touches if the handler that got activated is
|
|
200
|
+
// a scroll recognizer. This way root view will keep sending touchMove and touchEnd events
|
|
201
|
+
// and therefore allow JS responder to properly release the responder at the end of the touch
|
|
202
|
+
// stream.
|
|
203
|
+
// NOTE: this is not a proper fix and solving this problem requires upstream fixes to RN. In
|
|
204
|
+
// particular if we have one PanHandler and ScrollView that can work simultaniously then when
|
|
205
|
+
// the Pan handler activates it would still tigger cancel events.
|
|
206
|
+
// Once the upstream fix lands the line below along with this comment can be removed
|
|
207
|
+
if ([gestureRecognizer.view isKindOfClass:[UIScrollView class]])
|
|
208
|
+
return;
|
|
210
209
|
|
|
211
210
|
#ifdef RN_FABRIC_ENABLED
|
|
212
|
-
|
|
211
|
+
RCTSurfaceTouchHandler *touchHandler = [viewWithTouchHandler performSelector:@selector(touchHandler)];
|
|
213
212
|
#else
|
|
214
|
-
|
|
213
|
+
RCTTouchHandler *touchHandler = [viewWithTouchHandler performSelector:@selector(touchHandler)];
|
|
215
214
|
#endif
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
215
|
+
[touchHandler setEnabled:NO];
|
|
216
|
+
[touchHandler setEnabled:YES];
|
|
219
217
|
}
|
|
220
218
|
|
|
221
219
|
#pragma mark Events
|
|
222
220
|
|
|
223
221
|
- (void)sendEvent:(RNGestureHandlerStateChange *)event withActionType:(RNGestureHandlerActionType)actionType
|
|
224
222
|
{
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
223
|
+
switch (actionType) {
|
|
224
|
+
case RNGestureHandlerActionTypeReanimatedWorklet:
|
|
225
|
+
[self sendEventForReanimated:event];
|
|
226
|
+
break;
|
|
227
|
+
|
|
228
|
+
case RNGestureHandlerActionTypeNativeAnimatedEvent:
|
|
229
|
+
if ([event.eventName isEqualToString:@"onGestureHandlerEvent"]) {
|
|
230
|
+
[self sendEventForNativeAnimatedEvent:event];
|
|
231
|
+
} else {
|
|
232
|
+
// Although onGestureEvent prop is an Animated.event with useNativeDriver: true,
|
|
233
|
+
// onHandlerStateChange prop is still a regular JS function.
|
|
234
|
+
// Also, Animated.event is only supported with old API.
|
|
235
|
+
[self sendEventForJSFunctionOldAPI:event];
|
|
236
|
+
}
|
|
237
|
+
break;
|
|
238
|
+
|
|
239
|
+
case RNGestureHandlerActionTypeJSFunctionOldAPI:
|
|
240
|
+
[self sendEventForJSFunctionOldAPI:event];
|
|
241
|
+
break;
|
|
242
|
+
|
|
243
|
+
case RNGestureHandlerActionTypeJSFunctionNewAPI:
|
|
244
|
+
[self sendEventForJSFunctionNewAPI:event];
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
249
247
|
}
|
|
250
248
|
|
|
251
249
|
- (void)sendEventForReanimated:(RNGestureHandlerStateChange *)event
|
|
252
250
|
{
|
|
253
|
-
|
|
251
|
+
// Delivers the event to Reanimated.
|
|
254
252
|
#ifdef RN_FABRIC_ENABLED
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
253
|
+
// Send event directly to Reanimated
|
|
254
|
+
if (_reanimatedModule == nil) {
|
|
255
|
+
_reanimatedModule = [_uiManager.bridge moduleForName:@"ReanimatedModule"];
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
[_reanimatedModule eventDispatcherWillDispatchEvent:event];
|
|
261
259
|
#else
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
260
|
+
// In the old architecture, Reanimated overwrites RCTEventDispatcher
|
|
261
|
+
// with REAEventDispatcher and intercepts all direct events.
|
|
262
|
+
[self sendEventForDirectEvent:event];
|
|
265
263
|
#endif // RN_FABRIC_ENABLED
|
|
266
264
|
}
|
|
267
265
|
|
|
268
266
|
- (void)sendEventForNativeAnimatedEvent:(RNGestureHandlerStateChange *)event
|
|
269
267
|
{
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
268
|
+
// Delivers the event to NativeAnimatedModule.
|
|
269
|
+
// Currently, NativeAnimated[Turbo]Module is RCTEventDispatcherObserver so we can
|
|
270
|
+
// simply send a direct event which is handled by the observer but ignored on JS side.
|
|
271
|
+
// TODO: send event directly to NativeAnimated[Turbo]Module
|
|
272
|
+
[self sendEventForDirectEvent:event];
|
|
275
273
|
}
|
|
276
274
|
|
|
277
275
|
- (void)sendEventForJSFunctionOldAPI:(RNGestureHandlerStateChange *)event
|
|
278
276
|
{
|
|
279
|
-
|
|
277
|
+
// Delivers the event to JS (old RNGH API).
|
|
280
278
|
#ifdef RN_FABRIC_ENABLED
|
|
281
|
-
|
|
279
|
+
[self sendEventForDeviceEvent:event];
|
|
282
280
|
#else
|
|
283
|
-
|
|
281
|
+
[self sendEventForDirectEvent:event];
|
|
284
282
|
#endif // RN_FABRIC_ENABLED
|
|
285
283
|
}
|
|
286
284
|
|
|
287
285
|
- (void)sendEventForJSFunctionNewAPI:(RNGestureHandlerStateChange *)event
|
|
288
286
|
{
|
|
289
|
-
|
|
290
|
-
|
|
287
|
+
// Delivers the event to JS (new RNGH API).
|
|
288
|
+
[self sendEventForDeviceEvent:event];
|
|
291
289
|
}
|
|
292
290
|
|
|
293
291
|
- (void)sendEventForDirectEvent:(RNGestureHandlerStateChange *)event
|
|
294
292
|
{
|
|
295
|
-
|
|
296
|
-
|
|
293
|
+
// Delivers the event to JS as a direct event.
|
|
294
|
+
[_eventDispatcher sendEvent:event];
|
|
297
295
|
}
|
|
298
296
|
|
|
299
297
|
- (void)sendEventForDeviceEvent:(RNGestureHandlerStateChange *)event
|
|
300
298
|
{
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
299
|
+
// Delivers the event to JS as a device event.
|
|
300
|
+
NSMutableDictionary *body = [[event arguments] objectAtIndex:2];
|
|
301
|
+
[_eventDispatcher sendDeviceEventWithName:@"onGestureHandlerStateChange" body:body];
|
|
304
302
|
}
|
|
305
303
|
|
|
306
304
|
@end
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["RNGestureHandlerModule.macos.ts"],"names":["Gestures","NativeViewGestureHandler","PanGestureHandler","TapGestureHandler","LongPressGestureHandler","PinchGestureHandler","RotationGestureHandler","FlingGestureHandler","ManualGestureHandler","HammerGestures","HammerNativeViewGestureHandler","HammerPanGestureHandler","HammerTapGestureHandler","HammerLongPressGestureHandler","HammerPinchGestureHandler","HammerRotationGestureHandler","HammerFlingGestureHandler","handleSetJSResponder","_tag","_blockNativeResponder","handleClearJSResponder","createGestureHandler","handlerName","handlerTag","config","Error","GestureClass","NodeManager","InteractionManager","getInstance","configureInteractions","getHandler","HammerNodeManager","updateGestureHandler","attachGestureHandler","newView","_actionType","propsRef","init","setView","newConfig","updateGestureConfig","getGestureHandlerNode","dropGestureHandler","flushOperations"],"mappings":";;;;;;;AACA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AApBA;AAYA;AAWO,MAAMA,QAAQ,GAAG;AACtBC,EAAAA,wBAAwB,EAAxBA,iCADsB;AAEtBC,EAAAA,iBAAiB,EAAjBA,0BAFsB;AAGtBC,EAAAA,iBAAiB,EAAjBA,0BAHsB;AAItBC,EAAAA,uBAAuB,EAAvBA,gCAJsB;AAKtBC,EAAAA,mBAAmB,EAAnBA,4BALsB;AAMtBC,EAAAA,sBAAsB,EAAtBA,+BANsB;AAOtBC,EAAAA,mBAAmB,EAAnBA,4BAPsB;AAQtBC,EAAAA,oBAAoB,EAApBA;AARsB,CAAjB;;AAWA,MAAMC,cAAc,GAAG;AAC5BR,EAAAA,wBAAwB,EAAES,kCADE;AAE5BR,EAAAA,iBAAiB,EAAES,2BAFS;AAG5BR,EAAAA,iBAAiB,EAAES,2BAHS;AAI5BR,EAAAA,uBAAuB,EAAES,iCAJG;AAK5BR,EAAAA,mBAAmB,EAAES,6BALO;AAM5BR,EAAAA,sBAAsB,EAAES,gCANI;AAO5BR,EAAAA,mBAAmB,EAAES;AAPO,CAAvB;;eAUQ;AACbC,EAAAA,oBAAoB,CAACC,IAAD,EAAeC,qBAAf,EAA+C,CACjE;AACD,GAHY;;AAIbC,EAAAA,sBAAsB,GAAG,CACvB;AACD,GANY;;AAObC,EAAAA,oBAAoB,CAClBC,WADkB,EAElBC,UAFkB,EAGlBC,MAHkB,EAIlB;AACA,QAAI,kFAAJ,EAA8C;AAC5C,UAAI,EAAEF,WAAW,IAAItB,QAAjB,CAAJ,EAAgC;AAC9B,cAAM,IAAIyB,KAAJ,CACH,iCAAgCH,WAAY,2BADzC,CAAN;AAGD;;AAED,YAAMI,YAAY,GAAG1B,QAAQ,CAACsB,WAAD,CAA7B;;AACAK,2BAAYN,oBAAZ,CAAiCE,UAAjC,EAA6C,IAAIG,YAAJ,EAA7C;;AACAE,kCAAmBC,WAAnB,GAAiCC,qBAAjC,CACEH,qBAAYI,UAAZ,CAAuBR,UAAvB,CADF,
|
|
1
|
+
{"version":3,"sources":["RNGestureHandlerModule.macos.ts"],"names":["Gestures","NativeViewGestureHandler","PanGestureHandler","TapGestureHandler","LongPressGestureHandler","PinchGestureHandler","RotationGestureHandler","FlingGestureHandler","ManualGestureHandler","HammerGestures","HammerNativeViewGestureHandler","HammerPanGestureHandler","HammerTapGestureHandler","HammerLongPressGestureHandler","HammerPinchGestureHandler","HammerRotationGestureHandler","HammerFlingGestureHandler","handleSetJSResponder","_tag","_blockNativeResponder","handleClearJSResponder","createGestureHandler","handlerName","handlerTag","config","Error","GestureClass","NodeManager","InteractionManager","getInstance","configureInteractions","getHandler","HammerNodeManager","updateGestureHandler","attachGestureHandler","newView","_actionType","propsRef","init","setView","newConfig","updateGestureConfig","getGestureHandlerNode","dropGestureHandler","flushOperations"],"mappings":"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","sourcesContent":["import { ActionType } from './ActionType';\nimport { isExperimentalWebImplementationEnabled } from './EnableExperimentalWebImplementation';\n\n//GestureHandlers\nimport InteractionManager from './web/tools/InteractionManager';\nimport NodeManager from './web/tools/NodeManager';\nimport PanGestureHandler from './web/handlers/PanGestureHandler';\nimport TapGestureHandler from './web/handlers/TapGestureHandler';\nimport LongPressGestureHandler from './web/handlers/LongPressGestureHandler';\nimport PinchGestureHandler from './web/handlers/PinchGestureHandler';\nimport RotationGestureHandler from './web/handlers/RotationGestureHandler';\nimport FlingGestureHandler from './web/handlers/FlingGestureHandler';\nimport NativeViewGestureHandler from './web/handlers/NativeViewGestureHandler';\nimport ManualGestureHandler from './web/handlers/ManualGestureHandler';\n\n//Hammer Handlers\nimport * as HammerNodeManager from './web_hammer/NodeManager';\nimport HammerNativeViewGestureHandler from './web_hammer/NativeViewGestureHandler';\nimport HammerPanGestureHandler from './web_hammer/PanGestureHandler';\nimport HammerTapGestureHandler from './web_hammer/TapGestureHandler';\nimport HammerLongPressGestureHandler from './web_hammer/LongPressGestureHandler';\nimport HammerPinchGestureHandler from './web_hammer/PinchGestureHandler';\nimport HammerRotationGestureHandler from './web_hammer/RotationGestureHandler';\nimport HammerFlingGestureHandler from './web_hammer/FlingGestureHandler';\nimport { Config } from './web/interfaces';\n\nexport const Gestures = {\n NativeViewGestureHandler,\n PanGestureHandler,\n TapGestureHandler,\n LongPressGestureHandler,\n PinchGestureHandler,\n RotationGestureHandler,\n FlingGestureHandler,\n ManualGestureHandler,\n};\n\nexport const HammerGestures = {\n NativeViewGestureHandler: HammerNativeViewGestureHandler,\n PanGestureHandler: HammerPanGestureHandler,\n TapGestureHandler: HammerTapGestureHandler,\n LongPressGestureHandler: HammerLongPressGestureHandler,\n PinchGestureHandler: HammerPinchGestureHandler,\n RotationGestureHandler: HammerRotationGestureHandler,\n FlingGestureHandler: HammerFlingGestureHandler,\n};\n\nexport default {\n handleSetJSResponder(_tag: number, _blockNativeResponder: boolean) {\n // NO-OP\n },\n handleClearJSResponder() {\n // NO-OP\n },\n createGestureHandler<T>(\n handlerName: keyof typeof Gestures,\n handlerTag: number,\n config: T\n ) {\n if (isExperimentalWebImplementationEnabled()) {\n if (!(handlerName in Gestures)) {\n throw new Error(\n `react-native-gesture-handler: ${handlerName} is not supported on web.`\n );\n }\n\n const GestureClass = Gestures[handlerName];\n NodeManager.createGestureHandler(handlerTag, new GestureClass());\n InteractionManager.getInstance().configureInteractions(\n NodeManager.getHandler(handlerTag),\n config as unknown as Config\n );\n } else {\n if (!(handlerName in HammerGestures)) {\n throw new Error(\n `react-native-gesture-handler: ${handlerName} is not supported on web.`\n );\n }\n\n // @ts-ignore If it doesn't exist, the error is thrown\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const GestureClass = HammerGestures[handlerName];\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n HammerNodeManager.createGestureHandler(handlerTag, new GestureClass());\n }\n\n this.updateGestureHandler(handlerTag, config as unknown as Config);\n },\n attachGestureHandler(\n handlerTag: number,\n newView: number,\n _actionType: ActionType,\n propsRef: React.RefObject<unknown>\n ) {\n if (isExperimentalWebImplementationEnabled()) {\n NodeManager.getHandler(handlerTag).init(newView, propsRef);\n } else {\n HammerNodeManager.getHandler(handlerTag).setView(newView, propsRef);\n }\n },\n updateGestureHandler(handlerTag: number, newConfig: Config) {\n if (isExperimentalWebImplementationEnabled()) {\n NodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);\n\n InteractionManager.getInstance().configureInteractions(\n NodeManager.getHandler(handlerTag),\n newConfig\n );\n } else {\n HammerNodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);\n }\n },\n getGestureHandlerNode(handlerTag: number) {\n if (isExperimentalWebImplementationEnabled()) {\n return NodeManager.getHandler(handlerTag);\n } else {\n return HammerNodeManager.getHandler(handlerTag);\n }\n },\n dropGestureHandler(handlerTag: number) {\n if (isExperimentalWebImplementationEnabled()) {\n NodeManager.dropGestureHandler(handlerTag);\n } else {\n HammerNodeManager.dropGestureHandler(handlerTag);\n }\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n flushOperations() {},\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["RNGestureHandlerModule.web.ts"],"names":["Gestures","NativeViewGestureHandler","PanGestureHandler","TapGestureHandler","LongPressGestureHandler","PinchGestureHandler","RotationGestureHandler","FlingGestureHandler","ManualGestureHandler","HammerGestures","HammerNativeViewGestureHandler","HammerPanGestureHandler","HammerTapGestureHandler","HammerLongPressGestureHandler","HammerPinchGestureHandler","HammerRotationGestureHandler","HammerFlingGestureHandler","handleSetJSResponder","tag","blockNativeResponder","console","warn","handleClearJSResponder","createGestureHandler","handlerName","handlerTag","config","Error","GestureClass","NodeManager","InteractionManager","getInstance","configureInteractions","getHandler","HammerNodeManager","updateGestureHandler","attachGestureHandler","newView","_actionType","propsRef","HTMLElement","React","Component","init","setView","newConfig","updateGestureConfig","getGestureHandlerNode","dropGestureHandler","flushOperations"],"mappings":";;;;;;;AAAA;;AAGA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AApBA;AAYA;AAWO,MAAMA,QAAQ,GAAG;AACtBC,EAAAA,wBAAwB,EAAxBA,iCADsB;AAEtBC,EAAAA,iBAAiB,EAAjBA,0BAFsB;AAGtBC,EAAAA,iBAAiB,EAAjBA,0BAHsB;AAItBC,EAAAA,uBAAuB,EAAvBA,gCAJsB;AAKtBC,EAAAA,mBAAmB,EAAnBA,4BALsB;AAMtBC,EAAAA,sBAAsB,EAAtBA,+BANsB;AAOtBC,EAAAA,mBAAmB,EAAnBA,4BAPsB;AAQtBC,EAAAA,oBAAoB,EAApBA;AARsB,CAAjB;;AAWA,MAAMC,cAAc,GAAG;AAC5BR,EAAAA,wBAAwB,EAAES,kCADE;AAE5BR,EAAAA,iBAAiB,EAAES,2BAFS;AAG5BR,EAAAA,iBAAiB,EAAES,2BAHS;AAI5BR,EAAAA,uBAAuB,EAAES,iCAJG;AAK5BR,EAAAA,mBAAmB,EAAES,6BALO;AAM5BR,EAAAA,sBAAsB,EAAES,gCANI;AAO5BR,EAAAA,mBAAmB,EAAES;AAPO,CAAvB;;eAUQ;AACbC,EAAAA,oBAAoB,CAACC,GAAD,EAAcC,oBAAd,EAA6C;AAC/DC,IAAAA,OAAO,CAACC,IAAR,CAAa,wBAAb,EAAuCH,GAAvC,EAA4CC,oBAA5C;AACD,GAHY;;AAIbG,EAAAA,sBAAsB,GAAG;AACvBF,IAAAA,OAAO,CAACC,IAAR,CAAa,0BAAb;AACD,GANY;;AAObE,EAAAA,oBAAoB,CAClBC,WADkB,EAElBC,UAFkB,EAGlBC,MAHkB,EAIlB;AACA,QAAI,kFAAJ,EAA8C;AAC5C,UAAI,EAAEF,WAAW,IAAIxB,QAAjB,CAAJ,EAAgC;AAC9B,cAAM,IAAI2B,KAAJ,CACH,iCAAgCH,WAAY,2BADzC,CAAN;AAGD;;AAED,YAAMI,YAAY,GAAG5B,QAAQ,CAACwB,WAAD,CAA7B;;AACAK,2BAAYN,oBAAZ,CAAiCE,UAAjC,EAA6C,IAAIG,YAAJ,EAA7C;;AACAE,kCAAmBC,WAAnB,GAAiCC,qBAAjC,CACEH,qBAAYI,UAAZ,CAAuBR,UAAvB,CADF,
|
|
1
|
+
{"version":3,"sources":["RNGestureHandlerModule.web.ts"],"names":["Gestures","NativeViewGestureHandler","PanGestureHandler","TapGestureHandler","LongPressGestureHandler","PinchGestureHandler","RotationGestureHandler","FlingGestureHandler","ManualGestureHandler","HammerGestures","HammerNativeViewGestureHandler","HammerPanGestureHandler","HammerTapGestureHandler","HammerLongPressGestureHandler","HammerPinchGestureHandler","HammerRotationGestureHandler","HammerFlingGestureHandler","handleSetJSResponder","tag","blockNativeResponder","console","warn","handleClearJSResponder","createGestureHandler","handlerName","handlerTag","config","Error","GestureClass","NodeManager","InteractionManager","getInstance","configureInteractions","getHandler","HammerNodeManager","updateGestureHandler","attachGestureHandler","newView","_actionType","propsRef","HTMLElement","React","Component","init","setView","newConfig","updateGestureConfig","getGestureHandlerNode","dropGestureHandler","flushOperations"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ActionType } from './ActionType';\nimport { isExperimentalWebImplementationEnabled } from './EnableExperimentalWebImplementation';\n\n//GestureHandlers\nimport InteractionManager from './web/tools/InteractionManager';\nimport NodeManager from './web/tools/NodeManager';\nimport PanGestureHandler from './web/handlers/PanGestureHandler';\nimport TapGestureHandler from './web/handlers/TapGestureHandler';\nimport LongPressGestureHandler from './web/handlers/LongPressGestureHandler';\nimport PinchGestureHandler from './web/handlers/PinchGestureHandler';\nimport RotationGestureHandler from './web/handlers/RotationGestureHandler';\nimport FlingGestureHandler from './web/handlers/FlingGestureHandler';\nimport NativeViewGestureHandler from './web/handlers/NativeViewGestureHandler';\nimport ManualGestureHandler from './web/handlers/ManualGestureHandler';\n\n//Hammer Handlers\nimport * as HammerNodeManager from './web_hammer/NodeManager';\nimport HammerNativeViewGestureHandler from './web_hammer/NativeViewGestureHandler';\nimport HammerPanGestureHandler from './web_hammer/PanGestureHandler';\nimport HammerTapGestureHandler from './web_hammer/TapGestureHandler';\nimport HammerLongPressGestureHandler from './web_hammer/LongPressGestureHandler';\nimport HammerPinchGestureHandler from './web_hammer/PinchGestureHandler';\nimport HammerRotationGestureHandler from './web_hammer/RotationGestureHandler';\nimport HammerFlingGestureHandler from './web_hammer/FlingGestureHandler';\nimport { Config } from './web/interfaces';\n\nexport const Gestures = {\n NativeViewGestureHandler,\n PanGestureHandler,\n TapGestureHandler,\n LongPressGestureHandler,\n PinchGestureHandler,\n RotationGestureHandler,\n FlingGestureHandler,\n ManualGestureHandler,\n};\n\nexport const HammerGestures = {\n NativeViewGestureHandler: HammerNativeViewGestureHandler,\n PanGestureHandler: HammerPanGestureHandler,\n TapGestureHandler: HammerTapGestureHandler,\n LongPressGestureHandler: HammerLongPressGestureHandler,\n PinchGestureHandler: HammerPinchGestureHandler,\n RotationGestureHandler: HammerRotationGestureHandler,\n FlingGestureHandler: HammerFlingGestureHandler,\n};\n\nexport default {\n handleSetJSResponder(tag: number, blockNativeResponder: boolean) {\n console.warn('handleSetJSResponder: ', tag, blockNativeResponder);\n },\n handleClearJSResponder() {\n console.warn('handleClearJSResponder: ');\n },\n createGestureHandler<T>(\n handlerName: keyof typeof Gestures,\n handlerTag: number,\n config: T\n ) {\n if (isExperimentalWebImplementationEnabled()) {\n if (!(handlerName in Gestures)) {\n throw new Error(\n `react-native-gesture-handler: ${handlerName} is not supported on web.`\n );\n }\n\n const GestureClass = Gestures[handlerName];\n NodeManager.createGestureHandler(handlerTag, new GestureClass());\n InteractionManager.getInstance().configureInteractions(\n NodeManager.getHandler(handlerTag),\n config as unknown as Config\n );\n } else {\n if (!(handlerName in HammerGestures)) {\n throw new Error(\n `react-native-gesture-handler: ${handlerName} is not supported on web.`\n );\n }\n\n // @ts-ignore If it doesn't exist, the error is thrown\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const GestureClass = HammerGestures[handlerName];\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n HammerNodeManager.createGestureHandler(handlerTag, new GestureClass());\n }\n\n this.updateGestureHandler(handlerTag, config as unknown as Config);\n },\n attachGestureHandler(\n handlerTag: number,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newView: any,\n _actionType: ActionType,\n propsRef: React.RefObject<unknown>\n ) {\n if (\n !(newView instanceof HTMLElement || newView instanceof React.Component)\n ) {\n return;\n }\n\n if (isExperimentalWebImplementationEnabled()) {\n //@ts-ignore Types should be HTMLElement or React.Component\n NodeManager.getHandler(handlerTag).init(newView, propsRef);\n } else {\n //@ts-ignore Types should be HTMLElement or React.Component\n HammerNodeManager.getHandler(handlerTag).setView(newView, propsRef);\n }\n },\n updateGestureHandler(handlerTag: number, newConfig: Config) {\n if (isExperimentalWebImplementationEnabled()) {\n NodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);\n\n InteractionManager.getInstance().configureInteractions(\n NodeManager.getHandler(handlerTag),\n newConfig\n );\n } else {\n HammerNodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);\n }\n },\n getGestureHandlerNode(handlerTag: number) {\n if (isExperimentalWebImplementationEnabled()) {\n return NodeManager.getHandler(handlerTag);\n } else {\n return HammerNodeManager.getHandler(handlerTag);\n }\n },\n dropGestureHandler(handlerTag: number) {\n if (isExperimentalWebImplementationEnabled()) {\n NodeManager.dropGestureHandler(handlerTag);\n } else {\n HammerNodeManager.dropGestureHandler(handlerTag);\n }\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n flushOperations() {},\n};\n"]}
|