react-native-gesture-handler 2.3.2 → 2.4.2
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/RNGestureHandler.podspec +2 -1
- package/android/build.gradle +38 -6
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.kt +14 -2
- package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +10 -0
- package/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +17 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +3 -41
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +6 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +10 -54
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +2 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +6 -0
- package/ios/RNGHTouchEventType.h +9 -0
- package/ios/RNGestureHandler.h +2 -2
- package/ios/RNGestureHandler.m +21 -8
- package/ios/RNGestureHandlerButton.h +1 -0
- package/ios/RNGestureHandlerButton.m +9 -1
- package/ios/RNGestureHandlerButtonComponentView.mm +14 -1
- package/ios/RNGestureHandlerButtonManager.m +4 -1
- package/ios/RNGestureHandlerEvents.h +2 -2
- package/ios/RNGestureHandlerEvents.m +2 -2
- package/ios/RNGestureHandlerManager.h +2 -0
- package/ios/RNGestureHandlerManager.mm +30 -20
- package/ios/RNGestureHandlerModule.mm +18 -0
- package/ios/RNGestureHandlerPointerTracker.h +2 -2
- package/ios/RNGestureHandlerPointerTracker.m +9 -6
- package/ios/RNGestureHandlerRegistry.h +1 -0
- package/ios/RNGestureHandlerRegistry.m +10 -0
- package/lib/commonjs/GestureHandlerRootView.android.js +7 -1
- package/lib/commonjs/GestureHandlerRootView.android.js.map +1 -1
- package/lib/commonjs/GestureHandlerRootView.js +6 -0
- package/lib/commonjs/GestureHandlerRootView.js.map +1 -1
- package/lib/commonjs/GestureHandlerRootView.web.js +19 -0
- package/lib/commonjs/GestureHandlerRootView.web.js.map +1 -0
- package/lib/commonjs/RNGestureHandlerModule.js +5 -0
- package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js +4 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/{EventType.js → TouchEventType.js} +4 -4
- package/lib/commonjs/TouchEventType.js.map +1 -0
- package/lib/commonjs/components/DrawerLayout.js +38 -11
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/GestureButtons.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerButton.js +1 -1
- package/lib/commonjs/components/GestureHandlerButton.js.map +1 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js +2 -0
- package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/commonjs/fabric/RNGestureHandlerButtonNativeComponent.js +4 -6
- package/lib/commonjs/fabric/RNGestureHandlerButtonNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/RNGestureHandlerRootViewNativeComponent.js +4 -6
- package/lib/commonjs/fabric/RNGestureHandlerRootViewNativeComponent.js.map +1 -1
- package/lib/commonjs/getShadowNodeFromRef.js +12 -9
- package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js +2 -1
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js +25 -20
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js +18 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector.js +120 -80
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/commonjs/handlers/gestures/eventReceiver.js +6 -5
- package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js +24 -4
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/init.js +10 -1
- package/lib/commonjs/init.js.map +1 -1
- package/lib/commonjs/mocks.js +2 -0
- package/lib/commonjs/mocks.js.map +1 -1
- package/lib/commonjs/utils.js +23 -1
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/commonjs/web/GestureHandler.js +4 -1
- package/lib/commonjs/web/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/utils.js.map +1 -1
- package/lib/module/GestureHandlerRootView.android.js +7 -2
- package/lib/module/GestureHandlerRootView.android.js.map +1 -1
- package/lib/module/GestureHandlerRootView.js +5 -0
- package/lib/module/GestureHandlerRootView.js.map +1 -1
- package/lib/module/GestureHandlerRootView.web.js +6 -0
- package/lib/module/GestureHandlerRootView.web.js.map +1 -0
- package/lib/module/RNGestureHandlerModule.js +5 -0
- package/lib/module/RNGestureHandlerModule.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js +4 -1
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/{EventType.js → TouchEventType.js} +2 -2
- package/lib/module/TouchEventType.js.map +1 -0
- package/lib/module/components/DrawerLayout.js +38 -11
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/GestureButtons.js.map +1 -1
- package/lib/module/components/GestureHandlerButton.js +2 -2
- package/lib/module/components/GestureHandlerButton.js.map +1 -1
- package/lib/module/components/touchables/GenericTouchable.js +2 -0
- package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/module/fabric/RNGestureHandlerButtonNativeComponent.js +5 -7
- package/lib/module/fabric/RNGestureHandlerButtonNativeComponent.js.map +1 -1
- package/lib/module/fabric/RNGestureHandlerRootViewNativeComponent.js +5 -8
- package/lib/module/fabric/RNGestureHandlerRootViewNativeComponent.js.map +1 -1
- package/lib/module/getShadowNodeFromRef.js +11 -8
- package/lib/module/getShadowNodeFromRef.js.map +1 -1
- package/lib/module/handlers/ForceTouchGestureHandler.js +1 -1
- package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/module/handlers/createHandler.js +25 -22
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js +11 -1
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +120 -81
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/module/handlers/gestures/eventReceiver.js +6 -7
- package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/module/handlers/gestures/gesture.js +23 -4
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/init.js +6 -1
- package/lib/module/init.js.map +1 -1
- package/lib/module/mocks.js +2 -0
- package/lib/module/mocks.js.map +1 -1
- package/lib/module/utils.js +17 -1
- package/lib/module/utils.js.map +1 -1
- package/lib/module/web/GestureHandler.js +4 -1
- package/lib/module/web/GestureHandler.js.map +1 -1
- package/lib/module/web/utils.js.map +1 -1
- package/lib/typescript/GestureHandlerRootView.web.d.ts +5 -0
- package/lib/typescript/RNGestureHandlerModule.d.ts +1 -0
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -0
- package/lib/typescript/{EventType.d.ts → TouchEventType.d.ts} +2 -2
- package/lib/typescript/components/DrawerLayout.d.ts +3 -0
- package/lib/typescript/components/GestureButtons.d.ts +18 -6
- package/lib/typescript/fabric/RNGestureHandlerButtonNativeComponent.d.ts +13 -0
- package/lib/typescript/fabric/RNGestureHandlerRootViewNativeComponent.d.ts +5 -0
- package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +2 -2
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -1
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +6 -3
- package/lib/typescript/handlers/gestures/GestureDetector.d.ts +2 -4
- package/lib/typescript/handlers/gestures/eventReceiver.d.ts +2 -0
- package/lib/typescript/handlers/gestures/gesture.d.ts +5 -0
- package/lib/typescript/init.d.ts +1 -0
- package/lib/typescript/mocks.d.ts +1 -0
- package/lib/typescript/utils.d.ts +2 -0
- package/lib/typescript/web/GestureHandler.d.ts +1 -1
- package/package.json +4 -2
- package/src/GestureHandlerRootView.android.tsx +8 -2
- package/src/GestureHandlerRootView.tsx +6 -0
- package/src/GestureHandlerRootView.web.tsx +12 -0
- package/src/RNGestureHandlerModule.ts +7 -0
- package/src/RNGestureHandlerModule.web.ts +2 -0
- package/src/{EventType.ts → TouchEventType.ts} +2 -2
- package/src/components/DrawerLayout.tsx +34 -10
- package/src/components/GestureButtons.tsx +21 -7
- package/src/components/GestureHandlerButton.tsx +2 -2
- package/src/components/touchables/GenericTouchable.tsx +2 -0
- package/src/fabric/RNGestureHandlerButtonNativeComponent.ts +27 -0
- package/src/fabric/RNGestureHandlerRootViewNativeComponent.ts +12 -0
- package/src/getShadowNodeFromRef.ts +12 -9
- package/src/handlers/ForceTouchGestureHandler.ts +3 -2
- package/src/handlers/createHandler.ts +30 -26
- package/src/handlers/gestureHandlerCommon.ts +21 -2
- package/src/handlers/gestures/GestureDetector.tsx +164 -105
- package/src/handlers/gestures/eventReceiver.ts +6 -6
- package/src/handlers/gestures/gesture.ts +29 -2
- package/src/init.ts +8 -1
- package/src/mocks.ts +2 -0
- package/src/utils.ts +20 -0
- package/src/web/GestureHandler.ts +7 -1
- package/src/web/utils.ts +1 -1
- package/ios/RNTouchEventType.h +0 -9
- package/lib/commonjs/EventType.js.map +0 -1
- package/lib/module/EventType.js.map +0 -1
- package/src/fabric/RNGestureHandlerButtonNativeComponent.js +0 -27
- package/src/fabric/RNGestureHandlerRootViewNativeComponent.js +0 -19
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
RCTUIManager *_uiManager;
|
|
49
49
|
NSHashTable<RNRootViewGestureRecognizer *> *_rootViewGestureRecognizers;
|
|
50
50
|
RCTEventDispatcher *_eventDispatcher;
|
|
51
|
+
id _reanimatedModule;
|
|
51
52
|
}
|
|
52
53
|
|
|
53
54
|
- (instancetype)initWithUIManager:(RCTUIManager *)uiManager
|
|
@@ -58,6 +59,7 @@
|
|
|
58
59
|
_eventDispatcher = eventDispatcher;
|
|
59
60
|
_registry = [RNGestureHandlerRegistry new];
|
|
60
61
|
_rootViewGestureRecognizers = [NSHashTable hashTableWithOptions:NSPointerFunctionsWeakMemory];
|
|
62
|
+
_reanimatedModule = nil;
|
|
61
63
|
}
|
|
62
64
|
return self;
|
|
63
65
|
}
|
|
@@ -139,6 +141,11 @@
|
|
|
139
141
|
[_registry dropHandlerWithTag:handlerTag];
|
|
140
142
|
}
|
|
141
143
|
|
|
144
|
+
- (void)dropAllGestureHandlers
|
|
145
|
+
{
|
|
146
|
+
[_registry dropAllHandlers];
|
|
147
|
+
}
|
|
148
|
+
|
|
142
149
|
- (void)handleSetJSResponder:(NSNumber *)viewTag blockNativeResponder:(NSNumber *)blockNativeResponder
|
|
143
150
|
{
|
|
144
151
|
if ([blockNativeResponder boolValue]) {
|
|
@@ -210,80 +217,83 @@
|
|
|
210
217
|
|
|
211
218
|
#pragma mark Events
|
|
212
219
|
|
|
213
|
-
- (void)
|
|
220
|
+
- (void)sendEvent:(RNGestureHandlerStateChange *)event withActionType:(RNGestureHandlerActionType)actionType
|
|
214
221
|
{
|
|
215
222
|
switch (actionType) {
|
|
216
223
|
case RNGestureHandlerActionTypeReanimatedWorklet:
|
|
217
|
-
[self
|
|
224
|
+
[self sendEventForReanimated:event];
|
|
218
225
|
break;
|
|
219
226
|
|
|
220
227
|
case RNGestureHandlerActionTypeNativeAnimatedEvent:
|
|
221
228
|
if ([event.eventName isEqualToString:@"onGestureHandlerEvent"]) {
|
|
222
|
-
[self
|
|
229
|
+
[self sendEventForNativeAnimatedEvent:event];
|
|
223
230
|
} else {
|
|
224
231
|
// Although onGestureEvent prop is an Animated.event with useNativeDriver: true,
|
|
225
232
|
// onHandlerStateChange prop is still a regular JS function.
|
|
226
233
|
// Also, Animated.event is only supported with old API.
|
|
227
|
-
[self
|
|
234
|
+
[self sendEventForJSFunctionOldAPI:event];
|
|
228
235
|
}
|
|
229
236
|
break;
|
|
230
237
|
|
|
231
238
|
case RNGestureHandlerActionTypeJSFunctionOldAPI:
|
|
232
|
-
[self
|
|
239
|
+
[self sendEventForJSFunctionOldAPI:event];
|
|
233
240
|
break;
|
|
234
241
|
|
|
235
242
|
case RNGestureHandlerActionTypeJSFunctionNewAPI:
|
|
236
|
-
[self
|
|
243
|
+
[self sendEventForJSFunctionNewAPI:event];
|
|
237
244
|
break;
|
|
238
245
|
}
|
|
239
246
|
}
|
|
240
247
|
|
|
241
|
-
- (void)
|
|
248
|
+
- (void)sendEventForReanimated:(RNGestureHandlerStateChange *)event
|
|
242
249
|
{
|
|
243
250
|
// Delivers the event to Reanimated.
|
|
244
251
|
#ifdef RN_FABRIC_ENABLED
|
|
245
|
-
//
|
|
246
|
-
|
|
247
|
-
|
|
252
|
+
// Send event directly to Reanimated
|
|
253
|
+
if (_reanimatedModule == nil) {
|
|
254
|
+
_reanimatedModule = [_uiManager.bridge moduleForName:@"ReanimatedModule"];
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
[_reanimatedModule eventDispatcherWillDispatchEvent:event];
|
|
248
258
|
#else
|
|
249
259
|
// In the old architecture, Reanimated overwrites RCTEventDispatcher
|
|
250
260
|
// with REAEventDispatcher and intercepts all direct events.
|
|
251
|
-
[self
|
|
261
|
+
[self sendEventForDirectEvent:event];
|
|
252
262
|
#endif // RN_FABRIC_ENABLED
|
|
253
263
|
}
|
|
254
264
|
|
|
255
|
-
- (void)
|
|
265
|
+
- (void)sendEventForNativeAnimatedEvent:(RNGestureHandlerStateChange *)event
|
|
256
266
|
{
|
|
257
267
|
// Delivers the event to NativeAnimatedModule.
|
|
258
268
|
// Currently, NativeAnimated[Turbo]Module is RCTEventDispatcherObserver so we can
|
|
259
269
|
// simply send a direct event which is handled by the observer but ignored on JS side.
|
|
260
270
|
// TODO: send event directly to NativeAnimated[Turbo]Module
|
|
261
|
-
[self
|
|
271
|
+
[self sendEventForDirectEvent:event];
|
|
262
272
|
}
|
|
263
273
|
|
|
264
|
-
- (void)
|
|
274
|
+
- (void)sendEventForJSFunctionOldAPI:(RNGestureHandlerStateChange *)event
|
|
265
275
|
{
|
|
266
276
|
// Delivers the event to JS (old RNGH API).
|
|
267
277
|
#ifdef RN_FABRIC_ENABLED
|
|
268
|
-
[self
|
|
278
|
+
[self sendEventForDeviceEvent:event];
|
|
269
279
|
#else
|
|
270
|
-
[self
|
|
280
|
+
[self sendEventForDirectEvent:event];
|
|
271
281
|
#endif // RN_FABRIC_ENABLED
|
|
272
282
|
}
|
|
273
283
|
|
|
274
|
-
- (void)
|
|
284
|
+
- (void)sendEventForJSFunctionNewAPI:(RNGestureHandlerStateChange *)event
|
|
275
285
|
{
|
|
276
286
|
// Delivers the event to JS (new RNGH API).
|
|
277
|
-
[self
|
|
287
|
+
[self sendEventForDeviceEvent:event];
|
|
278
288
|
}
|
|
279
289
|
|
|
280
|
-
- (void)
|
|
290
|
+
- (void)sendEventForDirectEvent:(RNGestureHandlerStateChange *)event
|
|
281
291
|
{
|
|
282
292
|
// Delivers the event to JS as a direct event.
|
|
283
293
|
[_eventDispatcher sendEvent:event];
|
|
284
294
|
}
|
|
285
295
|
|
|
286
|
-
- (void)
|
|
296
|
+
- (void)sendEventForDeviceEvent:(RNGestureHandlerStateChange *)event
|
|
287
297
|
{
|
|
288
298
|
// Delivers the event to JS as a device event.
|
|
289
299
|
NSMutableDictionary *body = [[event arguments] objectAtIndex:2];
|
|
@@ -60,6 +60,8 @@ RCT_EXPORT_MODULE()
|
|
|
60
60
|
|
|
61
61
|
- (void)invalidate
|
|
62
62
|
{
|
|
63
|
+
[_manager dropAllGestureHandlers];
|
|
64
|
+
|
|
63
65
|
_manager = nil;
|
|
64
66
|
|
|
65
67
|
#ifdef RN_FABRIC_ENABLED
|
|
@@ -173,6 +175,22 @@ RCT_EXPORT_METHOD(handleClearJSResponder)
|
|
|
173
175
|
}];
|
|
174
176
|
}
|
|
175
177
|
|
|
178
|
+
RCT_EXPORT_METHOD(flushOperations)
|
|
179
|
+
{
|
|
180
|
+
if (_operations.count == 0) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
NSArray<GestureHandlerOperation> *operations = _operations;
|
|
185
|
+
_operations = [NSMutableArray new];
|
|
186
|
+
|
|
187
|
+
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager, __unused NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
|
188
|
+
for (GestureHandlerOperation operation in operations) {
|
|
189
|
+
operation(self->_manager);
|
|
190
|
+
}
|
|
191
|
+
}];
|
|
192
|
+
}
|
|
193
|
+
|
|
176
194
|
- (void)setGestureState:(int)state forHandler:(int)handlerTag
|
|
177
195
|
{
|
|
178
196
|
RNGestureHandler *handler = [_manager handlerWithTag:@(handlerTag)];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#import <Foundation/Foundation.h>
|
|
2
2
|
|
|
3
|
-
#import "
|
|
3
|
+
#import "RNGHTouchEventType.h"
|
|
4
4
|
|
|
5
5
|
#define MAX_POINTERS_COUNT 12
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
@interface RNGestureHandlerPointerTracker : NSObject
|
|
10
10
|
|
|
11
|
-
@property (nonatomic)
|
|
11
|
+
@property (nonatomic) RNGHTouchEventType eventType;
|
|
12
12
|
@property (nonatomic) NSArray<NSDictionary *> *changedPointersData;
|
|
13
13
|
@property (nonatomic) NSArray<NSDictionary *> *allPointersData;
|
|
14
14
|
@property (nonatomic) int trackedPointersCount;
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
return;
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
_eventType =
|
|
106
|
+
_eventType = RNGHTouchEventTypePointerDown;
|
|
107
107
|
|
|
108
108
|
NSDictionary *data[touches.count];
|
|
109
109
|
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
return;
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
_eventType =
|
|
132
|
+
_eventType = RNGHTouchEventTypePointerMove;
|
|
133
133
|
|
|
134
134
|
NSDictionary *data[touches.count];
|
|
135
135
|
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
// extract all touches first to include the ones that were just lifted
|
|
154
154
|
[self extractAllTouches];
|
|
155
155
|
|
|
156
|
-
_eventType =
|
|
156
|
+
_eventType = RNGHTouchEventTypePointerUp;
|
|
157
157
|
|
|
158
158
|
NSDictionary *data[touches.count];
|
|
159
159
|
|
|
@@ -188,7 +188,7 @@
|
|
|
188
188
|
|
|
189
189
|
if (_trackedPointersCount == 0) {
|
|
190
190
|
// gesture has finished because all pointers were lifted, reset event type to send state change event
|
|
191
|
-
_eventType =
|
|
191
|
+
_eventType = RNGHTouchEventTypeUndetermined;
|
|
192
192
|
} else {
|
|
193
193
|
// turns out that the gesture may be made to fail without calling touchesCancelled in that case there
|
|
194
194
|
// are still tracked pointers but the recognizer state is already set to UIGestureRecognizerStateFailed
|
|
@@ -218,7 +218,7 @@
|
|
|
218
218
|
}
|
|
219
219
|
}
|
|
220
220
|
|
|
221
|
-
_eventType =
|
|
221
|
+
_eventType = RNGHTouchEventTypeCancelled;
|
|
222
222
|
_changedPointersData = [[NSArray alloc] initWithObjects:data count:registeredTouches];
|
|
223
223
|
[self sendEvent];
|
|
224
224
|
_trackedPointersCount = 0;
|
|
@@ -227,7 +227,10 @@
|
|
|
227
227
|
|
|
228
228
|
- (void)sendEvent
|
|
229
229
|
{
|
|
230
|
-
|
|
230
|
+
// it may happen that the gesture recognizer is reset after it's been unbound from the view,
|
|
231
|
+
// it that recognizer tried to send event, the app would crash because the target of the event
|
|
232
|
+
// would be nil.
|
|
233
|
+
if (!_gestureHandler.needsPointerData || _gestureHandler.recognizer.view.reactTag == nil) {
|
|
231
234
|
return;
|
|
232
235
|
}
|
|
233
236
|
|
|
@@ -14,5 +14,6 @@
|
|
|
14
14
|
- (void)registerGestureHandler:(nonnull RNGestureHandler *)gestureHandler;
|
|
15
15
|
- (void)attachHandlerWithTag:(nonnull NSNumber *)handlerTag toView:(nonnull UIView *)view withActionType:(RNGestureHandlerActionType)actionType;
|
|
16
16
|
- (void)dropHandlerWithTag:(nonnull NSNumber *)handlerTag;
|
|
17
|
+
- (void)dropAllHandlers;
|
|
17
18
|
|
|
18
19
|
@end
|
|
@@ -48,4 +48,14 @@
|
|
|
48
48
|
[_handlers removeObjectForKey:handlerTag];
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
- (void)dropAllHandlers
|
|
52
|
+
{
|
|
53
|
+
for (NSNumber* tag in _handlers) {
|
|
54
|
+
RNGestureHandler *handler = _handlers[tag];
|
|
55
|
+
[handler unbindFromView];
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
[_handlers removeAllObjects];
|
|
59
|
+
}
|
|
60
|
+
|
|
51
61
|
@end
|
|
@@ -9,6 +9,8 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _reactNative = require("react-native");
|
|
11
11
|
|
|
12
|
+
var _init = require("./init");
|
|
13
|
+
|
|
12
14
|
var _utils = require("./utils");
|
|
13
15
|
|
|
14
16
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
@@ -16,9 +18,13 @@ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return
|
|
|
16
18
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
19
|
|
|
18
20
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
19
|
-
const GestureHandlerRootViewNativeComponent = (0, _utils.
|
|
21
|
+
const GestureHandlerRootViewNativeComponent = (0, _utils.shouldUseCodegenNativeComponent)() ? require('./fabric/RNGestureHandlerRootViewNativeComponent').default : (0, _reactNative.requireNativeComponent)('RNGestureHandlerRootView');
|
|
20
22
|
|
|
21
23
|
function GestureHandlerRootView(props) {
|
|
24
|
+
// try initialize fabric on the first render, at this point we can
|
|
25
|
+
// reliably check if fabric is enabled (the function contains a flag
|
|
26
|
+
// to make sure it's called only once)
|
|
27
|
+
(0, _init.maybeInitializeFabric)();
|
|
22
28
|
return /*#__PURE__*/React.createElement(GestureHandlerRootViewNativeComponent, props);
|
|
23
29
|
}
|
|
24
30
|
//# sourceMappingURL=GestureHandlerRootView.android.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["GestureHandlerRootView.android.tsx"],"names":["GestureHandlerRootViewNativeComponent","require","default","GestureHandlerRootView","props"],"mappings":";;;;;;;AACA;;AAEA;;AACA;;;;;;
|
|
1
|
+
{"version":3,"sources":["GestureHandlerRootView.android.tsx"],"names":["GestureHandlerRootViewNativeComponent","require","default","GestureHandlerRootView","props"],"mappings":";;;;;;;AACA;;AAEA;;AACA;;AACA;;;;;;AALA;AAOA,MAAMA,qCAAqC,GAAG,gDAC1CC,OAAO,CAAC,kDAAD,CAAP,CAA4DC,OADlB,GAE1C,yCAAuB,0BAAvB,CAFJ;;AAOe,SAASC,sBAAT,CACbC,KADa,EAEb;AACA;AACA;AACA;AACA;AAEA,sBAAO,oBAAC,qCAAD,EAA2CA,KAA3C,CAAP;AACD","sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport * as React from 'react';\nimport { PropsWithChildren } from 'react';\nimport { requireNativeComponent, ViewProps } from 'react-native';\nimport { maybeInitializeFabric } from './init';\nimport { shouldUseCodegenNativeComponent } from './utils';\n\nconst GestureHandlerRootViewNativeComponent = shouldUseCodegenNativeComponent()\n ? require('./fabric/RNGestureHandlerRootViewNativeComponent').default\n : requireNativeComponent('RNGestureHandlerRootView');\n\nexport interface GestureHandlerRootViewProps\n extends PropsWithChildren<ViewProps> {}\n\nexport default function GestureHandlerRootView(\n props: GestureHandlerRootViewProps\n) {\n // try initialize fabric on the first render, at this point we can\n // reliably check if fabric is enabled (the function contains a flag\n // to make sure it's called only once)\n maybeInitializeFabric();\n\n return <GestureHandlerRootViewNativeComponent {...props} />;\n}\n"]}
|
|
@@ -9,11 +9,17 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _reactNative = require("react-native");
|
|
11
11
|
|
|
12
|
+
var _init = require("./init");
|
|
13
|
+
|
|
12
14
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
13
15
|
|
|
14
16
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
17
|
|
|
16
18
|
function GestureHandlerRootView(props) {
|
|
19
|
+
// try initialize fabric on the first render, at this point we can
|
|
20
|
+
// reliably check if fabric is enabled (the function contains a flag
|
|
21
|
+
// to make sure it's called only once)
|
|
22
|
+
(0, _init.maybeInitializeFabric)();
|
|
17
23
|
return /*#__PURE__*/React.createElement(_reactNative.View, props);
|
|
18
24
|
}
|
|
19
25
|
//# sourceMappingURL=GestureHandlerRootView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["GestureHandlerRootView.tsx"],"names":["GestureHandlerRootView","props"],"mappings":";;;;;;;AAAA;;AAEA;;;;;;AAKe,SAASA,sBAAT,CACbC,KADa,EAEb;AACA,sBAAO,oBAAC,iBAAD,EAAUA,KAAV,CAAP;AACD","sourcesContent":["import * as React from 'react';\nimport { PropsWithChildren } from 'react';\nimport { View, ViewProps } from 'react-native';\n\nexport interface GestureHandlerRootViewProps\n extends PropsWithChildren<ViewProps> {}\n\nexport default function GestureHandlerRootView(\n props: GestureHandlerRootViewProps\n) {\n return <View {...props} />;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["GestureHandlerRootView.tsx"],"names":["GestureHandlerRootView","props"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;;;;;AAKe,SAASA,sBAAT,CACbC,KADa,EAEb;AACA;AACA;AACA;AACA;AAEA,sBAAO,oBAAC,iBAAD,EAAUA,KAAV,CAAP;AACD","sourcesContent":["import * as React from 'react';\nimport { PropsWithChildren } from 'react';\nimport { View, ViewProps } from 'react-native';\nimport { maybeInitializeFabric } from './init';\n\nexport interface GestureHandlerRootViewProps\n extends PropsWithChildren<ViewProps> {}\n\nexport default function GestureHandlerRootView(\n props: GestureHandlerRootViewProps\n) {\n // try initialize fabric on the first render, at this point we can\n // reliably check if fabric is enabled (the function contains a flag\n // to make sure it's called only once)\n maybeInitializeFabric();\n\n return <View {...props} />;\n}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = GestureHandlerRootView;
|
|
7
|
+
|
|
8
|
+
var React = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _reactNative = require("react-native");
|
|
11
|
+
|
|
12
|
+
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
13
|
+
|
|
14
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
+
|
|
16
|
+
function GestureHandlerRootView(props) {
|
|
17
|
+
return /*#__PURE__*/React.createElement(_reactNative.View, props);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=GestureHandlerRootView.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["GestureHandlerRootView.web.tsx"],"names":["GestureHandlerRootView","props"],"mappings":";;;;;;;AAAA;;AAEA;;;;;;AAKe,SAASA,sBAAT,CACbC,KADa,EAEb;AACA,sBAAO,oBAAC,iBAAD,EAAUA,KAAV,CAAP;AACD","sourcesContent":["import * as React from 'react';\nimport { PropsWithChildren } from 'react';\nimport { View, ViewProps } from 'react-native';\n\nexport interface GestureHandlerRootViewProps\n extends PropsWithChildren<ViewProps> {}\n\nexport default function GestureHandlerRootView(\n props: GestureHandlerRootViewProps\n) {\n return <View {...props} />;\n}\n"]}
|
|
@@ -19,6 +19,11 @@ if (RNGestureHandlerModule == null) {
|
|
|
19
19
|
For installation instructions, please refer to https://docs.swmansion.com/react-native-gesture-handler/docs/#installation`.split('\n').map(line => line.trim()).join('\n')));
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
if (RNGestureHandlerModule.flushOperations === undefined) {
|
|
23
|
+
RNGestureHandlerModule.flushOperations = () => {// NO-OP if not defined
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
22
27
|
var _default = RNGestureHandlerModule;
|
|
23
28
|
exports.default = _default;
|
|
24
29
|
//# sourceMappingURL=RNGestureHandlerModule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["RNGestureHandlerModule.ts"],"names":["RNGestureHandlerModule","NativeModules","console","error","split","map","line","trim","join"],"mappings":";;;;;;;AAAA;;AAEA;;AACA,MAAM;AAAEA,EAAAA;AAAF,IAA6BC,0BAAnC;;AAEA,IAAID,sBAAsB,IAAI,IAA9B,EAAoC;AAClCE,EAAAA,OAAO,CAACC,KAAR,CACE,uBACG;AACP;AACA,gIAFM,CAGGC,KAHH,CAGS,IAHT,EAIGC,GAJH,CAIQC,IAAD,IAAUA,IAAI,CAACC,IAAL,EAJjB,EAKGC,IALH,CAKQ,IALR,CADF,CADF;AAUD;;
|
|
1
|
+
{"version":3,"sources":["RNGestureHandlerModule.ts"],"names":["RNGestureHandlerModule","NativeModules","console","error","split","map","line","trim","join","flushOperations","undefined"],"mappings":";;;;;;;AAAA;;AAEA;;AACA,MAAM;AAAEA,EAAAA;AAAF,IAA6BC,0BAAnC;;AAEA,IAAID,sBAAsB,IAAI,IAA9B,EAAoC;AAClCE,EAAAA,OAAO,CAACC,KAAR,CACE,uBACG;AACP;AACA,gIAFM,CAGGC,KAHH,CAGS,IAHT,EAIGC,GAJH,CAIQC,IAAD,IAAUA,IAAI,CAACC,IAAL,EAJjB,EAKGC,IALH,CAKQ,IALR,CADF,CADF;AAUD;;AAED,IAAIR,sBAAsB,CAACS,eAAvB,KAA2CC,SAA/C,EAA0D;AACxDV,EAAAA,sBAAsB,CAACS,eAAvB,GAAyC,MAAM,CAC7C;AACD,GAFD;AAGD;;eAwBcT,sB","sourcesContent":["import { NativeModules } from 'react-native';\nimport { ActionType } from './ActionType';\nimport { tagMessage } from './utils';\nconst { RNGestureHandlerModule } = NativeModules;\n\nif (RNGestureHandlerModule == null) {\n console.error(\n tagMessage(\n `react-native-gesture-handler module was not found. Make sure you're running your app on the native platform and your code is linked properly (cd ios && pod install && cd ..).\n\n For installation instructions, please refer to https://docs.swmansion.com/react-native-gesture-handler/docs/#installation`\n .split('\\n')\n .map((line) => line.trim())\n .join('\\n')\n )\n );\n}\n\nif (RNGestureHandlerModule.flushOperations === undefined) {\n RNGestureHandlerModule.flushOperations = () => {\n // NO-OP if not defined\n };\n}\n\nexport type RNGestureHandlerModuleProps = {\n handleSetJSResponder: (tag: number, blockNativeResponder: boolean) => void;\n handleClearJSResponder: () => void;\n createGestureHandler: (\n handlerName: string,\n handlerTag: number,\n config: Readonly<Record<string, unknown>>\n ) => void;\n attachGestureHandler: (\n handlerTag: number,\n newView: number,\n actionType: ActionType\n ) => void;\n updateGestureHandler: (\n handlerTag: number,\n newConfig: Readonly<Record<string, unknown>>\n ) => void;\n dropGestureHandler: (handlerTag: number) => void;\n install: () => void;\n flushOperations: () => void;\n};\n\nexport default RNGestureHandlerModule as RNGestureHandlerModuleProps;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["RNGestureHandlerModule.web.ts"],"names":["Gestures","PanGestureHandler","RotationGestureHandler","PinchGestureHandler","TapGestureHandler","NativeViewGestureHandler","LongPressGestureHandler","FlingGestureHandler","Direction","handleSetJSResponder","tag","blockNativeResponder","console","warn","handleClearJSResponder","createGestureHandler","handlerName","handlerTag","config","Error","GestureClass","NodeManager","updateGestureHandler","attachGestureHandler","newView","_actionType","propsRef","getHandler","setView","newConfig","updateGestureConfig","getGestureHandlerNode","dropGestureHandler"],"mappings":";;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEO,MAAMA,QAAQ,GAAG;AACtBC,EAAAA,iBAAiB,EAAjBA,0BADsB;AAEtBC,EAAAA,sBAAsB,EAAtBA,+BAFsB;AAGtBC,EAAAA,mBAAmB,EAAnBA,4BAHsB;AAItBC,EAAAA,iBAAiB,EAAjBA,0BAJsB;AAKtBC,EAAAA,wBAAwB,EAAxBA,iCALsB;AAMtBC,EAAAA,uBAAuB,EAAvBA,gCANsB;AAOtBC,EAAAA,mBAAmB,EAAnBA,4BAPsB,CAQtB;;AARsB,CAAjB;;eAWQ;AACbC,EAAAA,SAAS,EAATA,oBADa;;AAEbC,EAAAA,oBAAoB,CAACC,GAAD,EAAcC,oBAAd,EAA6C;AAC/DC,IAAAA,OAAO,CAACC,IAAR,CAAa,wBAAb,EAAuCH,GAAvC,EAA4CC,oBAA5C;AACD,GAJY;;AAKbG,EAAAA,sBAAsB,GAAG;AACvBF,IAAAA,OAAO,CAACC,IAAR,CAAa,0BAAb;AACD,GAPY;;AAQbE,EAAAA,oBAAoB,CAClBC,WADkB,EAElBC,UAFkB,EAGlBC,MAHkB,EAIlB;AACA;AACA,QAAI,EAAEF,WAAW,IAAIhB,QAAjB,CAAJ,EACE,MAAM,IAAImB,KAAJ,CACH,iCAAgCH,WAAY,2BADzC,CAAN;AAGF,UAAMI,YAAY,GAAGpB,QAAQ,CAACgB,WAAD,CAA7B;AACAK,IAAAA,WAAW,CAACN,oBAAZ,CAAiCE,UAAjC,EAA6C,IAAIG,YAAJ,EAA7C;AACA,SAAKE,oBAAL,CAA0BL,UAA1B,EAAsCC,MAAtC;AACD,GArBY;;AAsBbK,EAAAA,oBAAoB,CAClBN,UADkB,EAElBO,OAFkB,EAGlBC,WAHkB,EAIlBC,QAJkB,EAKlB;AACAL,IAAAA,WAAW,CAACM,UAAZ,CAAuBV,UAAvB,EAAmCW,OAAnC,CAA2CJ,OAA3C,EAAoDE,QAApD;AACD,GA7BY;;AA8BbJ,EAAAA,oBAAoB,CAACL,UAAD,EAAqBY,SAArB,EAAqC;AACvDR,IAAAA,WAAW,CAACM,UAAZ,CAAuBV,UAAvB,EAAmCa,mBAAnC,CAAuDD,SAAvD;AACD,GAhCY;;AAiCbE,EAAAA,qBAAqB,CAACd,UAAD,EAAqB;AACxC,WAAOI,WAAW,CAACM,UAAZ,CAAuBV,UAAvB,CAAP;AACD,GAnCY;;AAoCbe,EAAAA,kBAAkB,CAACf,UAAD,EAAqB;AACrCI,IAAAA,WAAW,CAACW,kBAAZ,CAA+Bf,UAA/B;AACD;;
|
|
1
|
+
{"version":3,"sources":["RNGestureHandlerModule.web.ts"],"names":["Gestures","PanGestureHandler","RotationGestureHandler","PinchGestureHandler","TapGestureHandler","NativeViewGestureHandler","LongPressGestureHandler","FlingGestureHandler","Direction","handleSetJSResponder","tag","blockNativeResponder","console","warn","handleClearJSResponder","createGestureHandler","handlerName","handlerTag","config","Error","GestureClass","NodeManager","updateGestureHandler","attachGestureHandler","newView","_actionType","propsRef","getHandler","setView","newConfig","updateGestureConfig","getGestureHandlerNode","dropGestureHandler","flushOperations"],"mappings":";;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEO,MAAMA,QAAQ,GAAG;AACtBC,EAAAA,iBAAiB,EAAjBA,0BADsB;AAEtBC,EAAAA,sBAAsB,EAAtBA,+BAFsB;AAGtBC,EAAAA,mBAAmB,EAAnBA,4BAHsB;AAItBC,EAAAA,iBAAiB,EAAjBA,0BAJsB;AAKtBC,EAAAA,wBAAwB,EAAxBA,iCALsB;AAMtBC,EAAAA,uBAAuB,EAAvBA,gCANsB;AAOtBC,EAAAA,mBAAmB,EAAnBA,4BAPsB,CAQtB;;AARsB,CAAjB;;eAWQ;AACbC,EAAAA,SAAS,EAATA,oBADa;;AAEbC,EAAAA,oBAAoB,CAACC,GAAD,EAAcC,oBAAd,EAA6C;AAC/DC,IAAAA,OAAO,CAACC,IAAR,CAAa,wBAAb,EAAuCH,GAAvC,EAA4CC,oBAA5C;AACD,GAJY;;AAKbG,EAAAA,sBAAsB,GAAG;AACvBF,IAAAA,OAAO,CAACC,IAAR,CAAa,0BAAb;AACD,GAPY;;AAQbE,EAAAA,oBAAoB,CAClBC,WADkB,EAElBC,UAFkB,EAGlBC,MAHkB,EAIlB;AACA;AACA,QAAI,EAAEF,WAAW,IAAIhB,QAAjB,CAAJ,EACE,MAAM,IAAImB,KAAJ,CACH,iCAAgCH,WAAY,2BADzC,CAAN;AAGF,UAAMI,YAAY,GAAGpB,QAAQ,CAACgB,WAAD,CAA7B;AACAK,IAAAA,WAAW,CAACN,oBAAZ,CAAiCE,UAAjC,EAA6C,IAAIG,YAAJ,EAA7C;AACA,SAAKE,oBAAL,CAA0BL,UAA1B,EAAsCC,MAAtC;AACD,GArBY;;AAsBbK,EAAAA,oBAAoB,CAClBN,UADkB,EAElBO,OAFkB,EAGlBC,WAHkB,EAIlBC,QAJkB,EAKlB;AACAL,IAAAA,WAAW,CAACM,UAAZ,CAAuBV,UAAvB,EAAmCW,OAAnC,CAA2CJ,OAA3C,EAAoDE,QAApD;AACD,GA7BY;;AA8BbJ,EAAAA,oBAAoB,CAACL,UAAD,EAAqBY,SAArB,EAAqC;AACvDR,IAAAA,WAAW,CAACM,UAAZ,CAAuBV,UAAvB,EAAmCa,mBAAnC,CAAuDD,SAAvD;AACD,GAhCY;;AAiCbE,EAAAA,qBAAqB,CAACd,UAAD,EAAqB;AACxC,WAAOI,WAAW,CAACM,UAAZ,CAAuBV,UAAvB,CAAP;AACD,GAnCY;;AAoCbe,EAAAA,kBAAkB,CAACf,UAAD,EAAqB;AACrCI,IAAAA,WAAW,CAACW,kBAAZ,CAA+Bf,UAA/B;AACD,GAtCY;;AAuCb;AACAgB,EAAAA,eAAe,GAAG,CAAE;;AAxCP,C","sourcesContent":["import { ActionType } from './ActionType';\nimport { Direction } from './web/constants';\nimport FlingGestureHandler from './web/FlingGestureHandler';\nimport LongPressGestureHandler from './web/LongPressGestureHandler';\nimport NativeViewGestureHandler from './web/NativeViewGestureHandler';\nimport * as NodeManager from './web/NodeManager';\nimport PanGestureHandler from './web/PanGestureHandler';\nimport PinchGestureHandler from './web/PinchGestureHandler';\nimport RotationGestureHandler from './web/RotationGestureHandler';\nimport TapGestureHandler from './web/TapGestureHandler';\n\nexport const Gestures = {\n PanGestureHandler,\n RotationGestureHandler,\n PinchGestureHandler,\n TapGestureHandler,\n NativeViewGestureHandler,\n LongPressGestureHandler,\n FlingGestureHandler,\n // ForceTouchGestureHandler,\n};\n\nexport default {\n Direction,\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 //TODO(TS) extends config\n if (!(handlerName in Gestures))\n throw new Error(\n `react-native-gesture-handler: ${handlerName} is not supported on web.`\n );\n const GestureClass = Gestures[handlerName];\n NodeManager.createGestureHandler(handlerTag, new GestureClass());\n this.updateGestureHandler(handlerTag, config);\n },\n attachGestureHandler(\n handlerTag: number,\n newView: number,\n _actionType: ActionType,\n propsRef: React.RefObject<unknown>\n ) {\n NodeManager.getHandler(handlerTag).setView(newView, propsRef);\n },\n updateGestureHandler(handlerTag: number, newConfig: any) {\n NodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);\n },\n getGestureHandlerNode(handlerTag: number) {\n return NodeManager.getHandler(handlerTag);\n },\n dropGestureHandler(handlerTag: number) {\n NodeManager.dropGestureHandler(handlerTag);\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n flushOperations() {},\n};\n"]}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
const
|
|
6
|
+
exports.TouchEventType = void 0;
|
|
7
|
+
const TouchEventType = {
|
|
8
8
|
UNDETERMINED: 0,
|
|
9
9
|
TOUCHES_DOWN: 1,
|
|
10
10
|
TOUCHES_MOVE: 2,
|
|
@@ -12,5 +12,5 @@ const EventType = {
|
|
|
12
12
|
TOUCHES_CANCELLED: 4
|
|
13
13
|
}; // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value
|
|
14
14
|
|
|
15
|
-
exports.
|
|
16
|
-
//# sourceMappingURL=
|
|
15
|
+
exports.TouchEventType = TouchEventType;
|
|
16
|
+
//# sourceMappingURL=TouchEventType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["TouchEventType.ts"],"names":["TouchEventType","UNDETERMINED","TOUCHES_DOWN","TOUCHES_MOVE","TOUCHES_UP","TOUCHES_CANCELLED"],"mappings":";;;;;;AAAO,MAAMA,cAAc,GAAG;AAC5BC,EAAAA,YAAY,EAAE,CADc;AAE5BC,EAAAA,YAAY,EAAE,CAFc;AAG5BC,EAAAA,YAAY,EAAE,CAHc;AAI5BC,EAAAA,UAAU,EAAE,CAJgB;AAK5BC,EAAAA,iBAAiB,EAAE;AALS,CAAvB,C,CAQP","sourcesContent":["export const TouchEventType = {\n UNDETERMINED: 0,\n TOUCHES_DOWN: 1,\n TOUCHES_MOVE: 2,\n TOUCHES_UP: 3,\n TOUCHES_CANCELLED: 4,\n} as const;\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value\nexport type TouchEventType = typeof TouchEventType[keyof typeof TouchEventType];\n"]}
|
|
@@ -165,6 +165,9 @@ class DrawerLayout extends React.Component {
|
|
|
165
165
|
});
|
|
166
166
|
} else if (nativeEvent.state === _State.State.ACTIVE) {
|
|
167
167
|
this.emitStateChanged(DRAGGING, false);
|
|
168
|
+
this.setState({
|
|
169
|
+
drawerState: DRAGGING
|
|
170
|
+
});
|
|
168
171
|
|
|
169
172
|
if (this.props.keyboardDismissMode === 'on-drag') {
|
|
170
173
|
_reactNative.Keyboard.dismiss();
|
|
@@ -289,6 +292,9 @@ class DrawerLayout extends React.Component {
|
|
|
289
292
|
const willShow = toValue !== 0;
|
|
290
293
|
this.updateShowing(willShow);
|
|
291
294
|
this.emitStateChanged(SETTLING, willShow);
|
|
295
|
+
this.setState({
|
|
296
|
+
drawerState: SETTLING
|
|
297
|
+
});
|
|
292
298
|
|
|
293
299
|
if (this.props.hideStatusBar) {
|
|
294
300
|
_reactNative.StatusBar.setHidden(willShow, this.props.statusBarAnimation || 'slide');
|
|
@@ -305,6 +311,17 @@ class DrawerLayout extends React.Component {
|
|
|
305
311
|
}) => {
|
|
306
312
|
if (finished) {
|
|
307
313
|
this.emitStateChanged(IDLE, willShow);
|
|
314
|
+
this.setState({
|
|
315
|
+
drawerOpened: willShow
|
|
316
|
+
});
|
|
317
|
+
|
|
318
|
+
if (this.state.drawerState !== DRAGGING) {
|
|
319
|
+
// it's possilbe that user started drag while the drawer
|
|
320
|
+
// was settling, don't override state in this case
|
|
321
|
+
this.setState({
|
|
322
|
+
drawerState: IDLE
|
|
323
|
+
});
|
|
324
|
+
}
|
|
308
325
|
|
|
309
326
|
if (willShow) {
|
|
310
327
|
var _this$props$onDrawerO, _this$props3;
|
|
@@ -338,11 +355,14 @@ class DrawerLayout extends React.Component {
|
|
|
338
355
|
_defineProperty(this, "renderOverlay", () => {
|
|
339
356
|
/* Overlay styles */
|
|
340
357
|
(0, _invariant.default)(this.openValue, 'should be set');
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
}
|
|
358
|
+
let overlayOpacity;
|
|
359
|
+
|
|
360
|
+
if (this.state.drawerState !== IDLE) {
|
|
361
|
+
overlayOpacity = this.openValue;
|
|
362
|
+
} else {
|
|
363
|
+
overlayOpacity = this.state.drawerOpened ? 1 : 0;
|
|
364
|
+
}
|
|
365
|
+
|
|
346
366
|
const dynamicOverlayStyles = {
|
|
347
367
|
opacity: overlayOpacity,
|
|
348
368
|
backgroundColor: this.props.overlayColor
|
|
@@ -398,11 +418,16 @@ class DrawerLayout extends React.Component {
|
|
|
398
418
|
|
|
399
419
|
if (drawerSlide) {
|
|
400
420
|
const closedDrawerOffset = fromLeft ? -drawerWidth : drawerWidth;
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
421
|
+
|
|
422
|
+
if (this.state.drawerState !== IDLE) {
|
|
423
|
+
drawerTranslateX = openValue.interpolate({
|
|
424
|
+
inputRange: [0, 1],
|
|
425
|
+
outputRange: [closedDrawerOffset, 0],
|
|
426
|
+
extrapolate: 'clamp'
|
|
427
|
+
});
|
|
428
|
+
} else {
|
|
429
|
+
drawerTranslateX = this.state.drawerOpened ? 0 : closedDrawerOffset;
|
|
430
|
+
}
|
|
406
431
|
}
|
|
407
432
|
|
|
408
433
|
const drawerStyles = {
|
|
@@ -446,7 +471,9 @@ class DrawerLayout extends React.Component {
|
|
|
446
471
|
dragX: _dragX,
|
|
447
472
|
touchX: _touchX,
|
|
448
473
|
drawerTranslation: _drawerTranslation,
|
|
449
|
-
containerWidth: 0
|
|
474
|
+
containerWidth: 0,
|
|
475
|
+
drawerState: IDLE,
|
|
476
|
+
drawerOpened: false
|
|
450
477
|
};
|
|
451
478
|
this.updateAnimatedEvent(_props, this.state);
|
|
452
479
|
}
|