react-native-gesture-handler 2.8.0 → 2.10.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +1 -0
- package/RNGestureHandler.podspec +2 -2
- package/android/build.gradle +107 -65
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +2 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt +39 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +9 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +14 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +5 -1
- package/android/src/main/jni/CMakeLists.txt +10 -44
- package/android/src/main/jni/cpp-adapter.cpp +16 -13
- package/ios/Handlers/RNFlingHandler.m +39 -37
- package/ios/Handlers/RNForceTouchHandler.m +19 -17
- package/ios/Handlers/RNLongPressHandler.m +20 -22
- package/ios/Handlers/RNManualHandler.m +2 -3
- package/ios/Handlers/RNNativeViewHandler.mm +96 -92
- package/ios/Handlers/RNPanHandler.m +28 -32
- package/ios/Handlers/RNPinchHandler.m +9 -10
- package/ios/Handlers/RNRotationHandler.m +11 -14
- package/ios/Handlers/RNTapHandler.m +26 -26
- package/ios/RNGestureHandler.h +31 -24
- package/ios/RNGestureHandler.m +278 -273
- package/ios/RNGestureHandlerActionType.h +6 -4
- package/ios/RNGestureHandlerButton.m +11 -12
- package/ios/RNGestureHandlerButtonComponentView.h +2 -2
- package/ios/RNGestureHandlerButtonComponentView.mm +2 -2
- package/ios/RNGestureHandlerButtonManager.m +6 -5
- package/ios/RNGestureHandlerDirection.h +4 -4
- package/ios/RNGestureHandlerEvents.h +3 -4
- package/ios/RNGestureHandlerEvents.m +114 -119
- package/ios/RNGestureHandlerManager.h +1 -2
- package/ios/RNGestureHandlerManager.mm +9 -9
- package/ios/RNGestureHandlerModule.h +1 -2
- package/ios/RNGestureHandlerModule.mm +142 -138
- package/ios/RNGestureHandlerPointerTracker.h +1 -1
- package/ios/RNGestureHandlerPointerTracker.m +40 -37
- package/ios/RNGestureHandlerRegistry.h +3 -1
- package/ios/RNGestureHandlerRegistry.m +24 -22
- package/ios/RNGestureHandlerRootViewComponentView.mm +2 -2
- package/ios/RNGestureHandlerState.h +6 -6
- package/ios/RNGestureHandlerStateManager.h +1 -1
- package/ios/RNManualActivationRecognizer.m +9 -9
- package/ios/RNRootViewGestureRecognizer.m +39 -42
- package/lib/commonjs/EnableNewWebImplementation.js +35 -0
- package/lib/commonjs/EnableNewWebImplementation.js.map +1 -0
- package/lib/commonjs/GestureHandlerRootViewContext.js +15 -0
- package/lib/commonjs/GestureHandlerRootViewContext.js.map +1 -0
- package/lib/commonjs/RNGestureHandlerModule.macos.js +6 -6
- package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js +6 -6
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.windows.js +6 -6
- package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -1
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.web.js +6 -5
- package/lib/commonjs/components/GestureComponents.web.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerButton.js +3 -5
- package/lib/commonjs/components/GestureHandlerButton.js.map +1 -1
- package/lib/commonjs/{GestureHandlerRootView.android.js → components/GestureHandlerRootView.android.js} +8 -7
- package/lib/commonjs/components/GestureHandlerRootView.android.js.map +1 -0
- package/lib/commonjs/{GestureHandlerRootView.js → components/GestureHandlerRootView.js} +8 -2
- package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -0
- package/lib/commonjs/{GestureHandlerRootView.web.js → components/GestureHandlerRootView.web.js} +7 -1
- package/lib/commonjs/components/GestureHandlerRootView.web.js.map +1 -0
- package/lib/commonjs/components/Swipeable.js +17 -3
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/{gestureHandlerRootHOC.js → components/gestureHandlerRootHOC.js} +2 -1
- package/lib/commonjs/components/gestureHandlerRootHOC.js.map +1 -0
- package/lib/commonjs/handlers/LongPressGestureHandler.js +3 -1
- package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/TapGestureHandler.js +3 -1
- package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js +21 -13
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js +5 -4
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector.js +89 -37
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/commonjs/handlers/gestures/longPressGesture.js +1 -0
- package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +22 -19
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/commonjs/handlers/gestures/tapGesture.js +1 -0
- package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -1
- package/lib/commonjs/index.js +16 -4
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils.js +0 -6
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -5
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/GestureHandler.js +3 -0
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +0 -1
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/ManualGestureHandler.js +0 -5
- package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -6
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js +2 -12
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -5
- package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -6
- package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -7
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web/tools/CircularBuffer.js +59 -0
- package/lib/commonjs/web/tools/CircularBuffer.js.map +1 -0
- package/lib/commonjs/web/tools/LeastSquareSolver.js +204 -0
- package/lib/commonjs/web/tools/LeastSquareSolver.js.map +1 -0
- package/lib/commonjs/web/tools/PointerEventManager.js +27 -0
- package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
- package/lib/commonjs/web/tools/PointerTracker.js +11 -7
- package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
- package/lib/commonjs/web/tools/VelocityTracker.js +111 -0
- package/lib/commonjs/web/tools/VelocityTracker.js.map +1 -0
- package/lib/commonjs/web_hammer/GestureHandler.js +1 -1
- package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
- package/lib/module/EnableNewWebImplementation.js +22 -0
- package/lib/module/EnableNewWebImplementation.js.map +1 -0
- package/lib/module/GestureHandlerRootViewContext.js +3 -0
- package/lib/module/GestureHandlerRootViewContext.js.map +1 -0
- package/lib/module/RNGestureHandlerModule.macos.js +6 -6
- package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js +6 -6
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.windows.js +6 -6
- package/lib/module/RNGestureHandlerModule.windows.js.map +1 -1
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/GestureComponents.web.js +5 -6
- package/lib/module/components/GestureComponents.web.js.map +1 -1
- package/lib/module/components/GestureHandlerButton.js +1 -4
- package/lib/module/components/GestureHandlerButton.js.map +1 -1
- package/lib/module/components/GestureHandlerRootView.android.js +14 -0
- package/lib/module/components/GestureHandlerRootView.android.js.map +1 -0
- package/lib/module/{GestureHandlerRootView.js → components/GestureHandlerRootView.js} +5 -2
- package/lib/module/components/GestureHandlerRootView.js.map +1 -0
- package/lib/module/components/GestureHandlerRootView.web.js +9 -0
- package/lib/module/components/GestureHandlerRootView.web.js.map +1 -0
- package/lib/module/components/Swipeable.js +17 -3
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/{gestureHandlerRootHOC.js → components/gestureHandlerRootHOC.js} +2 -1
- package/lib/module/components/gestureHandlerRootHOC.js.map +1 -0
- package/lib/module/handlers/LongPressGestureHandler.js +3 -1
- package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/handlers/TapGestureHandler.js +3 -1
- package/lib/module/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/handlers/createHandler.js +20 -13
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js +5 -4
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +89 -38
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/module/handlers/gestures/longPressGesture.js +1 -0
- package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
- package/lib/module/handlers/gestures/reanimatedWrapper.js +19 -16
- package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/module/handlers/gestures/tapGesture.js +1 -0
- package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
- package/lib/module/index.js +4 -4
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils.js +0 -4
- package/lib/module/utils.js.map +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js +0 -5
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +3 -0
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/LongPressGestureHandler.js +0 -1
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/ManualGestureHandler.js +0 -5
- package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -6
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +2 -9
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PinchGestureHandler.js +0 -5
- package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/RotationGestureHandler.js +0 -6
- package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/TapGestureHandler.js +0 -7
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/web/tools/CircularBuffer.js +50 -0
- package/lib/module/web/tools/CircularBuffer.js.map +1 -0
- package/lib/module/web/tools/LeastSquareSolver.js +195 -0
- package/lib/module/web/tools/LeastSquareSolver.js.map +1 -0
- package/lib/module/web/tools/PointerEventManager.js +27 -0
- package/lib/module/web/tools/PointerEventManager.js.map +1 -1
- package/lib/module/web/tools/PointerTracker.js +8 -7
- package/lib/module/web/tools/PointerTracker.js.map +1 -1
- package/lib/module/web/tools/VelocityTracker.js +98 -0
- package/lib/module/web/tools/VelocityTracker.js.map +1 -0
- package/lib/module/web_hammer/GestureHandler.js +1 -1
- package/lib/module/web_hammer/GestureHandler.js.map +1 -1
- package/lib/typescript/EnableNewWebImplementation.d.ts +3 -0
- package/lib/typescript/GestureHandlerRootViewContext.d.ts +3 -0
- package/lib/typescript/components/DrawerLayout.d.ts +3 -1
- package/lib/typescript/components/GestureComponents.web.d.ts +1 -1
- package/lib/typescript/components/Swipeable.d.ts +14 -2
- package/lib/typescript/components/gestureHandlerRootHOC.d.ts +3 -0
- package/lib/typescript/index.d.ts +4 -4
- package/lib/typescript/{fabric → specs}/RNGestureHandlerButtonNativeComponent.d.ts +1 -1
- package/lib/typescript/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.d.ts +1 -1
- package/lib/typescript/utils.d.ts +0 -1
- package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/PanGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/TapGestureHandler.d.ts +0 -1
- package/lib/typescript/web/tools/CircularBuffer.d.ts +11 -0
- package/lib/typescript/web/tools/LeastSquareSolver.d.ts +12 -0
- package/lib/typescript/web/tools/PointerEventManager.d.ts +2 -0
- package/lib/typescript/web/tools/PointerTracker.d.ts +1 -0
- package/lib/typescript/web/tools/VelocityTracker.d.ts +13 -0
- package/package.json +6 -7
- package/src/EnableNewWebImplementation.ts +35 -0
- package/src/GestureHandlerRootViewContext.ts +3 -0
- package/src/RNGestureHandlerModule.macos.ts +6 -6
- package/src/RNGestureHandlerModule.web.ts +6 -6
- package/src/RNGestureHandlerModule.windows.ts +6 -6
- package/src/components/DrawerLayout.tsx +8 -4
- package/src/components/GestureComponents.web.tsx +5 -6
- package/src/components/GestureHandlerButton.tsx +2 -7
- package/src/components/GestureHandlerRootView.android.tsx +24 -0
- package/src/{GestureHandlerRootView.tsx → components/GestureHandlerRootView.tsx} +7 -2
- package/src/{GestureHandlerRootView.web.tsx → components/GestureHandlerRootView.web.tsx} +6 -1
- package/src/components/Swipeable.tsx +43 -12
- package/src/{gestureHandlerRootHOC.tsx → components/gestureHandlerRootHOC.tsx} +4 -1
- package/src/handlers/LongPressGestureHandler.ts +3 -1
- package/src/handlers/TapGestureHandler.ts +3 -1
- package/src/handlers/createHandler.tsx +20 -9
- package/src/handlers/gestureHandlerCommon.ts +5 -6
- package/src/handlers/gestures/GestureDetector.tsx +99 -36
- package/src/handlers/gestures/longPressGesture.ts +1 -0
- package/src/handlers/gestures/reanimatedWrapper.ts +21 -20
- package/src/handlers/gestures/tapGesture.ts +1 -0
- package/src/index.ts +7 -3
- package/src/utils.ts +0 -5
- package/src/web/handlers/FlingGestureHandler.ts +0 -5
- package/src/web/handlers/GestureHandler.ts +3 -0
- package/src/web/handlers/LongPressGestureHandler.ts +0 -1
- package/src/web/handlers/ManualGestureHandler.ts +0 -5
- package/src/web/handlers/NativeViewGestureHandler.ts +0 -6
- package/src/web/handlers/PanGestureHandler.ts +2 -9
- package/src/web/handlers/PinchGestureHandler.ts +0 -5
- package/src/web/handlers/RotationGestureHandler.ts +0 -7
- package/src/web/handlers/TapGestureHandler.ts +0 -7
- package/src/web/tools/CircularBuffer.ts +42 -0
- package/src/web/tools/LeastSquareSolver.ts +182 -0
- package/src/web/tools/PointerEventManager.ts +29 -0
- package/src/web/tools/PointerTracker.ts +7 -7
- package/src/web/tools/VelocityTracker.ts +98 -0
- package/src/web_hammer/GestureHandler.ts +1 -1
- package/lib/commonjs/EnableExperimentalWebImplementation.js +0 -31
- package/lib/commonjs/EnableExperimentalWebImplementation.js.map +0 -1
- package/lib/commonjs/GestureHandlerRootView.android.js.map +0 -1
- package/lib/commonjs/GestureHandlerRootView.js.map +0 -1
- package/lib/commonjs/GestureHandlerRootView.web.js.map +0 -1
- package/lib/commonjs/gestureHandlerRootHOC.js.map +0 -1
- package/lib/module/EnableExperimentalWebImplementation.js +0 -20
- package/lib/module/EnableExperimentalWebImplementation.js.map +0 -1
- package/lib/module/GestureHandlerRootView.android.js +0 -14
- package/lib/module/GestureHandlerRootView.android.js.map +0 -1
- package/lib/module/GestureHandlerRootView.js.map +0 -1
- package/lib/module/GestureHandlerRootView.web.js +0 -6
- package/lib/module/GestureHandlerRootView.web.js.map +0 -1
- package/lib/module/gestureHandlerRootHOC.js.map +0 -1
- package/lib/typescript/EnableExperimentalWebImplementation.d.ts +0 -2
- package/lib/typescript/gestureHandlerRootHOC.d.ts +0 -3
- package/src/EnableExperimentalWebImplementation.ts +0 -27
- package/src/GestureHandlerRootView.android.tsx +0 -24
- /package/lib/commonjs/{fabric → specs}/RNGestureHandlerButtonNativeComponent.js +0 -0
- /package/lib/commonjs/{fabric → specs}/RNGestureHandlerButtonNativeComponent.js.map +0 -0
- /package/lib/commonjs/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.js +0 -0
- /package/lib/commonjs/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.js.map +0 -0
- /package/lib/module/{fabric → specs}/RNGestureHandlerButtonNativeComponent.js +0 -0
- /package/lib/module/{fabric → specs}/RNGestureHandlerButtonNativeComponent.js.map +0 -0
- /package/lib/module/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.js +0 -0
- /package/lib/module/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.js.map +0 -0
- /package/lib/typescript/{GestureHandlerRootView.android.d.ts → components/GestureHandlerRootView.android.d.ts} +0 -0
- /package/lib/typescript/{GestureHandlerRootView.d.ts → components/GestureHandlerRootView.d.ts} +0 -0
- /package/lib/typescript/{GestureHandlerRootView.web.d.ts → components/GestureHandlerRootView.web.d.ts} +0 -0
- /package/src/{fabric → specs}/RNGestureHandlerButtonNativeComponent.ts +0 -0
- /package/src/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.ts +0 -0
@@ -3,6 +3,7 @@ import { Component } from 'react';
|
|
3
3
|
import { Animated, StyleProp, ViewStyle } from 'react-native';
|
4
4
|
import { PanGestureHandlerProps } from '../handlers/PanGestureHandler';
|
5
5
|
declare type SwipeableExcludes = Exclude<keyof PanGestureHandlerProps, 'onGestureEvent' | 'onHandlerStateChange'>;
|
6
|
+
declare type AnimatedInterpolation = ReturnType<Animated.Value['interpolate']>;
|
6
7
|
export interface SwipeableProps extends Pick<PanGestureHandlerProps, SwipeableExcludes> {
|
7
8
|
/**
|
8
9
|
* Enables two-finger gestures on supported devices, for example iPads with
|
@@ -30,6 +31,16 @@ export interface SwipeableProps extends Pick<PanGestureHandlerProps, SwipeableEx
|
|
30
31
|
* default it's a half of the panel's width.
|
31
32
|
*/
|
32
33
|
rightThreshold?: number;
|
34
|
+
/**
|
35
|
+
* Distance that the panel must be dragged from the left edge to be considered
|
36
|
+
* a swipe. The default value is 10.
|
37
|
+
*/
|
38
|
+
dragOffsetFromLeftEdge?: number;
|
39
|
+
/**
|
40
|
+
* Distance that the panel must be dragged from the right edge to be considered
|
41
|
+
* a swipe. The default value is 10.
|
42
|
+
*/
|
43
|
+
dragOffsetFromRightEdge?: number;
|
33
44
|
/**
|
34
45
|
* Value indicating if the swipeable panel can be pulled further than the left
|
35
46
|
* actions panel's width. It is set to true by default as long as the left
|
@@ -97,7 +108,7 @@ export interface SwipeableProps extends Pick<PanGestureHandlerProps, SwipeableEx
|
|
97
108
|
*
|
98
109
|
* To support `rtl` flexbox layouts use `flexDirection` styling.
|
99
110
|
* */
|
100
|
-
renderLeftActions?: (progressAnimatedValue:
|
111
|
+
renderLeftActions?: (progressAnimatedValue: AnimatedInterpolation, dragAnimatedValue: AnimatedInterpolation, swipeable: Swipeable) => React.ReactNode;
|
101
112
|
/**
|
102
113
|
*
|
103
114
|
* This map describes the values to use as inputRange for extra interpolation:
|
@@ -107,7 +118,7 @@ export interface SwipeableProps extends Pick<PanGestureHandlerProps, SwipeableEx
|
|
107
118
|
*
|
108
119
|
* To support `rtl` flexbox layouts use `flexDirection` styling.
|
109
120
|
* */
|
110
|
-
renderRightActions?: (progressAnimatedValue:
|
121
|
+
renderRightActions?: (progressAnimatedValue: AnimatedInterpolation, dragAnimatedValue: AnimatedInterpolation, swipeable: Swipeable) => React.ReactNode;
|
111
122
|
useNativeAnimations?: boolean;
|
112
123
|
animationOptions?: Record<string, unknown>;
|
113
124
|
/**
|
@@ -153,6 +164,7 @@ export default class Swipeable extends Component<SwipeableProps, SwipeableState>
|
|
153
164
|
close: () => void;
|
154
165
|
openLeft: () => void;
|
155
166
|
openRight: () => void;
|
167
|
+
reset: () => void;
|
156
168
|
render(): JSX.Element;
|
157
169
|
}
|
158
170
|
export {};
|
@@ -1,7 +1,7 @@
|
|
1
1
|
export { Directions } from './Directions';
|
2
2
|
export { State } from './State';
|
3
|
-
export { default as gestureHandlerRootHOC } from './gestureHandlerRootHOC';
|
4
|
-
export { default as GestureHandlerRootView } from './GestureHandlerRootView';
|
3
|
+
export { default as gestureHandlerRootHOC } from './components/gestureHandlerRootHOC';
|
4
|
+
export { default as GestureHandlerRootView } from './components/GestureHandlerRootView';
|
5
5
|
export type { GestureEvent, HandlerStateChangeEvent, GestureEventPayload, HandlerStateChangeEventPayload, GestureTouchEvent, TouchData, GestureUpdateEvent, GestureStateChangeEvent, } from './handlers/gestureHandlerCommon';
|
6
6
|
export type { GestureType } from './handlers/gestures/gesture';
|
7
7
|
export type { TapGestureHandlerEventPayload, TapGestureHandlerProps, } from './handlers/TapGestureHandler';
|
@@ -38,11 +38,11 @@ export type { ComposedGestureType as ComposedGesture, RaceGestureType as RaceGes
|
|
38
38
|
export type { GestureStateManagerType as GestureStateManager } from './handlers/gestures/gestureStateManager';
|
39
39
|
export { NativeViewGestureHandler } from './handlers/NativeViewGestureHandler';
|
40
40
|
export type { RawButtonProps, BaseButtonProps, RectButtonProps, BorderlessButtonProps, } from './components/GestureButtons';
|
41
|
-
export { RawButton, BaseButton, RectButton, BorderlessButton, } from './components/GestureButtons';
|
41
|
+
export { RawButton, BaseButton, RectButton, BorderlessButton, PureNativeButton, } from './components/GestureButtons';
|
42
42
|
export { TouchableHighlight, TouchableNativeFeedback, TouchableOpacity, TouchableWithoutFeedback, } from './components/touchables';
|
43
43
|
export { ScrollView, Switch, TextInput, DrawerLayoutAndroid, FlatList, RefreshControl, } from './components/GestureComponents';
|
44
44
|
export type { GestureHandlerGestureEvent, GestureHandlerStateChangeEvent, GestureHandlerGestureEventNativeEvent, GestureHandlerStateChangeNativeEvent, NativeViewGestureHandlerGestureEvent, NativeViewGestureHandlerStateChangeEvent, TapGestureHandlerGestureEvent, TapGestureHandlerStateChangeEvent, ForceTouchGestureHandlerGestureEvent, ForceTouchGestureHandlerStateChangeEvent, LongPressGestureHandlerGestureEvent, LongPressGestureHandlerStateChangeEvent, PanGestureHandlerGestureEvent, PanGestureHandlerStateChangeEvent, PinchGestureHandlerGestureEvent, PinchGestureHandlerStateChangeEvent, RotationGestureHandlerGestureEvent, RotationGestureHandlerStateChangeEvent, FlingGestureHandlerGestureEvent, FlingGestureHandlerStateChangeEvent, NativeViewGestureHandlerProperties, TapGestureHandlerProperties, LongPressGestureHandlerProperties, PanGestureHandlerProperties, PinchGestureHandlerProperties, RotationGestureHandlerProperties, FlingGestureHandlerProperties, ForceTouchGestureHandlerProperties, RawButtonProperties, BaseButtonProperties, RectButtonProperties, BorderlessButtonProperties, } from './handlers/gestureHandlerTypesCompat';
|
45
45
|
export { default as Swipeable } from './components/Swipeable';
|
46
46
|
export type { DrawerLayoutProps, DrawerPosition, DrawerState, DrawerType, DrawerLockMode, DrawerKeyboardDismissMode, } from './components/DrawerLayout';
|
47
47
|
export { default as DrawerLayout } from './components/DrawerLayout';
|
48
|
-
export { enableExperimentalWebImplementation } from './
|
48
|
+
export { enableExperimentalWebImplementation, enableLegacyWebImplementation, } from './EnableNewWebImplementation';
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/// <reference types="react-native/codegen" />
|
1
|
+
/// <reference types="react-native/types/modules/codegen" />
|
2
2
|
import type { Int32, WithDefault } from 'react-native/Libraries/Types/CodegenTypes';
|
3
3
|
import type { ViewProps, ColorValue } from 'react-native';
|
4
4
|
interface NativeProps extends ViewProps {
|
@@ -9,5 +9,4 @@ export declare function hasProperty(object: object, key: string): boolean;
|
|
9
9
|
export declare function isJestEnv(): boolean;
|
10
10
|
export declare function tagMessage(msg: string): string;
|
11
11
|
export declare function isFabric(): boolean;
|
12
|
-
export declare function shouldUseCodegenNativeComponent(): boolean;
|
13
12
|
export declare function isRemoteDebuggingEnabled(): boolean;
|
@@ -28,7 +28,6 @@ export default class FlingGestureHandler extends GestureHandler {
|
|
28
28
|
protected onPointerUp(event: AdaptedEvent): void;
|
29
29
|
protected onPointerRemove(event: AdaptedEvent): void;
|
30
30
|
private onUp;
|
31
|
-
protected onPointerCancel(event: AdaptedEvent): void;
|
32
31
|
activate(force?: boolean): void;
|
33
32
|
protected resetConfig(): void;
|
34
33
|
}
|
@@ -9,5 +9,4 @@ export default class ManualGestureHandler extends GestureHandler {
|
|
9
9
|
protected onPointerOutOfBounds(event: AdaptedEvent): void;
|
10
10
|
protected onPointerUp(event: AdaptedEvent): void;
|
11
11
|
protected onPointerRemove(event: AdaptedEvent): void;
|
12
|
-
protected onPointerCancel(event: AdaptedEvent): void;
|
13
12
|
}
|
@@ -18,7 +18,6 @@ export default class NativeViewGestureHandler extends GestureHandler {
|
|
18
18
|
protected onPointerUp(event: AdaptedEvent): void;
|
19
19
|
protected onPointerRemove(event: AdaptedEvent): void;
|
20
20
|
private onUp;
|
21
|
-
protected onPointerCancel(event: AdaptedEvent): void;
|
22
21
|
shouldRecognizeSimultaneously(handler: GestureHandler): boolean;
|
23
22
|
shouldBeCancelledByOther(_handler: GestureHandler): boolean;
|
24
23
|
disallowsInterruption(): boolean;
|
@@ -47,7 +47,6 @@ export default class PanGestureHandler extends GestureHandler {
|
|
47
47
|
protected onPointerUp(event: AdaptedEvent): void;
|
48
48
|
protected onPointerRemove(event: AdaptedEvent): void;
|
49
49
|
protected onPointerMove(event: AdaptedEvent): void;
|
50
|
-
protected onPointerCancel(event: AdaptedEvent): void;
|
51
50
|
protected onPointerOutOfBounds(event: AdaptedEvent): void;
|
52
51
|
private shouldActivate;
|
53
52
|
private shouldFail;
|
@@ -21,7 +21,6 @@ export default class PinchGestureHandler extends GestureHandler {
|
|
21
21
|
protected onPointerRemove(event: AdaptedEvent): void;
|
22
22
|
protected onPointerMove(event: AdaptedEvent): void;
|
23
23
|
protected onPointerOutOfBounds(event: AdaptedEvent): void;
|
24
|
-
protected onPointerCancel(event: AdaptedEvent): void;
|
25
24
|
private tryBegin;
|
26
25
|
activate(force?: boolean): void;
|
27
26
|
protected onReset(): void;
|
@@ -23,7 +23,6 @@ export default class RotationGestureHandler extends GestureHandler {
|
|
23
23
|
protected onPointerOutOfBounds(event: AdaptedEvent): void;
|
24
24
|
protected onPointerUp(event: AdaptedEvent): void;
|
25
25
|
protected onPointerRemove(event: AdaptedEvent): void;
|
26
|
-
protected onPointerCancel(event: AdaptedEvent): void;
|
27
26
|
protected tryBegin(): void;
|
28
27
|
activate(_force?: boolean): void;
|
29
28
|
protected onReset(): void;
|
@@ -36,7 +36,6 @@ export default class TapGestureHandler extends GestureHandler {
|
|
36
36
|
protected onPointerRemove(event: AdaptedEvent): void;
|
37
37
|
protected onPointerMove(event: AdaptedEvent): void;
|
38
38
|
protected onPointerOutOfBounds(event: AdaptedEvent): void;
|
39
|
-
protected onPointerCancel(event: AdaptedEvent): void;
|
40
39
|
private updateState;
|
41
40
|
private trySettingPosition;
|
42
41
|
private shouldFail;
|
@@ -0,0 +1,12 @@
|
|
1
|
+
declare class PolynomialFit {
|
2
|
+
coefficients: number[];
|
3
|
+
constructor(degree: number);
|
4
|
+
}
|
5
|
+
export default class LeastSquareSolver {
|
6
|
+
private x;
|
7
|
+
private y;
|
8
|
+
private w;
|
9
|
+
constructor(x: number[], y: number[], w: number[]);
|
10
|
+
solve(degree: number): PolynomialFit | null;
|
11
|
+
}
|
12
|
+
export {};
|
@@ -1,6 +1,8 @@
|
|
1
1
|
import { AdaptedEvent, EventTypes } from '../interfaces';
|
2
2
|
import EventManager from './EventManager';
|
3
3
|
export default class PointerEventManager extends EventManager {
|
4
|
+
private trackedPointers;
|
4
5
|
setListeners(): void;
|
5
6
|
protected mapEvent(event: PointerEvent, eventType: EventTypes): AdaptedEvent;
|
7
|
+
resetManager(): void;
|
6
8
|
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { AdaptedEvent } from '../interfaces';
|
2
|
+
export default class VelocityTracker {
|
3
|
+
private assumePointerMoveStoppedMilliseconds;
|
4
|
+
private historySize;
|
5
|
+
private horizonMilliseconds;
|
6
|
+
private minSampleSize;
|
7
|
+
private samples;
|
8
|
+
constructor();
|
9
|
+
add(event: AdaptedEvent): void;
|
10
|
+
private getVelocityEstimate;
|
11
|
+
getVelocity(): [number, number];
|
12
|
+
reset(): void;
|
13
|
+
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "react-native-gesture-handler",
|
3
|
-
"version": "2.
|
3
|
+
"version": "2.10.0",
|
4
4
|
"description": "Experimental implementation of a new declarative API for gesture handling in react-native",
|
5
5
|
"scripts": {
|
6
6
|
"prepare": "bob build && husky install",
|
@@ -82,8 +82,7 @@
|
|
82
82
|
"@types/hammerjs": "^2.0.38",
|
83
83
|
"@types/hoist-non-react-statics": "^3.3.1",
|
84
84
|
"@types/jest": "^27.0.3",
|
85
|
-
"@types/react": "^
|
86
|
-
"@types/react-native": "^0.69.6",
|
85
|
+
"@types/react": "^18.0.24",
|
87
86
|
"@types/react-test-renderer": "^17.0.0",
|
88
87
|
"@typescript-eslint/eslint-plugin": "^4.33.0",
|
89
88
|
"@typescript-eslint/parser": "^4.33.0",
|
@@ -100,9 +99,9 @@
|
|
100
99
|
"lint-staged": "^12.3.2",
|
101
100
|
"metro-react-native-babel-preset": "^0.64.0",
|
102
101
|
"prettier": "^2.7.1",
|
103
|
-
"react": "
|
102
|
+
"react": "18.2.0",
|
104
103
|
"react-dom": "^16.12.0",
|
105
|
-
"react-native": "
|
104
|
+
"react-native": "0.71.0",
|
106
105
|
"react-native-builder-bob": "^0.17.1",
|
107
106
|
"react-native-reanimated": "^2.3.1",
|
108
107
|
"react-native-web": "^0.11.7",
|
@@ -143,11 +142,11 @@
|
|
143
142
|
"eslintIgnore": [
|
144
143
|
"node_modules/",
|
145
144
|
"lib/",
|
146
|
-
"src/
|
145
|
+
"src/specs/*NativeComponent.js"
|
147
146
|
],
|
148
147
|
"codegenConfig": {
|
149
148
|
"name": "rngesturehandler_codegen",
|
150
149
|
"type": "components",
|
151
|
-
"jsSrcsDir": "./src/
|
150
|
+
"jsSrcsDir": "./src/specs"
|
152
151
|
}
|
153
152
|
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import { Platform } from 'react-native';
|
2
|
+
|
3
|
+
let useNewWebImplementation = true;
|
4
|
+
let getWasCalled = false;
|
5
|
+
|
6
|
+
export function enableExperimentalWebImplementation(
|
7
|
+
_shouldEnable = true
|
8
|
+
): void {
|
9
|
+
// NO-OP since the new implementation is now the default
|
10
|
+
}
|
11
|
+
|
12
|
+
export function enableLegacyWebImplementation(
|
13
|
+
shouldUseLegacyImplementation = true
|
14
|
+
): void {
|
15
|
+
if (
|
16
|
+
Platform.OS !== 'web' ||
|
17
|
+
useNewWebImplementation === !shouldUseLegacyImplementation
|
18
|
+
) {
|
19
|
+
return;
|
20
|
+
}
|
21
|
+
|
22
|
+
if (getWasCalled) {
|
23
|
+
console.error(
|
24
|
+
'Some parts of this application have already started using the new gesture handler implementation. No changes will be applied. You can try enabling legacy implementation earlier.'
|
25
|
+
);
|
26
|
+
return;
|
27
|
+
}
|
28
|
+
|
29
|
+
useNewWebImplementation = !shouldUseLegacyImplementation;
|
30
|
+
}
|
31
|
+
|
32
|
+
export function isNewWebImplementationEnabled(): boolean {
|
33
|
+
getWasCalled = true;
|
34
|
+
return useNewWebImplementation;
|
35
|
+
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ActionType } from './ActionType';
|
2
|
-
import {
|
2
|
+
import { isNewWebImplementationEnabled } from './EnableNewWebImplementation';
|
3
3
|
|
4
4
|
//GestureHandlers
|
5
5
|
import InteractionManager from './web/tools/InteractionManager';
|
@@ -57,7 +57,7 @@ export default {
|
|
57
57
|
handlerTag: number,
|
58
58
|
config: T
|
59
59
|
) {
|
60
|
-
if (
|
60
|
+
if (isNewWebImplementationEnabled()) {
|
61
61
|
if (!(handlerName in Gestures)) {
|
62
62
|
throw new Error(
|
63
63
|
`react-native-gesture-handler: ${handlerName} is not supported on web.`
|
@@ -92,14 +92,14 @@ export default {
|
|
92
92
|
_actionType: ActionType,
|
93
93
|
propsRef: React.RefObject<unknown>
|
94
94
|
) {
|
95
|
-
if (
|
95
|
+
if (isNewWebImplementationEnabled()) {
|
96
96
|
NodeManager.getHandler(handlerTag).init(newView, propsRef);
|
97
97
|
} else {
|
98
98
|
HammerNodeManager.getHandler(handlerTag).setView(newView, propsRef);
|
99
99
|
}
|
100
100
|
},
|
101
101
|
updateGestureHandler(handlerTag: number, newConfig: Config) {
|
102
|
-
if (
|
102
|
+
if (isNewWebImplementationEnabled()) {
|
103
103
|
NodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);
|
104
104
|
|
105
105
|
InteractionManager.getInstance().configureInteractions(
|
@@ -111,14 +111,14 @@ export default {
|
|
111
111
|
}
|
112
112
|
},
|
113
113
|
getGestureHandlerNode(handlerTag: number) {
|
114
|
-
if (
|
114
|
+
if (isNewWebImplementationEnabled()) {
|
115
115
|
return NodeManager.getHandler(handlerTag);
|
116
116
|
} else {
|
117
117
|
return HammerNodeManager.getHandler(handlerTag);
|
118
118
|
}
|
119
119
|
},
|
120
120
|
dropGestureHandler(handlerTag: number) {
|
121
|
-
if (
|
121
|
+
if (isNewWebImplementationEnabled()) {
|
122
122
|
NodeManager.dropGestureHandler(handlerTag);
|
123
123
|
} else {
|
124
124
|
HammerNodeManager.dropGestureHandler(handlerTag);
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
|
3
3
|
import { ActionType } from './ActionType';
|
4
|
-
import {
|
4
|
+
import { isNewWebImplementationEnabled } from './EnableNewWebImplementation';
|
5
5
|
|
6
6
|
//GestureHandlers
|
7
7
|
import InteractionManager from './web/tools/InteractionManager';
|
@@ -59,7 +59,7 @@ export default {
|
|
59
59
|
handlerTag: number,
|
60
60
|
config: T
|
61
61
|
) {
|
62
|
-
if (
|
62
|
+
if (isNewWebImplementationEnabled()) {
|
63
63
|
if (!(handlerName in Gestures)) {
|
64
64
|
throw new Error(
|
65
65
|
`react-native-gesture-handler: ${handlerName} is not supported on web.`
|
@@ -101,7 +101,7 @@ export default {
|
|
101
101
|
return;
|
102
102
|
}
|
103
103
|
|
104
|
-
if (
|
104
|
+
if (isNewWebImplementationEnabled()) {
|
105
105
|
//@ts-ignore Types should be HTMLElement or React.Component
|
106
106
|
NodeManager.getHandler(handlerTag).init(newView, propsRef);
|
107
107
|
} else {
|
@@ -110,7 +110,7 @@ export default {
|
|
110
110
|
}
|
111
111
|
},
|
112
112
|
updateGestureHandler(handlerTag: number, newConfig: Config) {
|
113
|
-
if (
|
113
|
+
if (isNewWebImplementationEnabled()) {
|
114
114
|
NodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);
|
115
115
|
|
116
116
|
InteractionManager.getInstance().configureInteractions(
|
@@ -122,14 +122,14 @@ export default {
|
|
122
122
|
}
|
123
123
|
},
|
124
124
|
getGestureHandlerNode(handlerTag: number) {
|
125
|
-
if (
|
125
|
+
if (isNewWebImplementationEnabled()) {
|
126
126
|
return NodeManager.getHandler(handlerTag);
|
127
127
|
} else {
|
128
128
|
return HammerNodeManager.getHandler(handlerTag);
|
129
129
|
}
|
130
130
|
},
|
131
131
|
dropGestureHandler(handlerTag: number) {
|
132
|
-
if (
|
132
|
+
if (isNewWebImplementationEnabled()) {
|
133
133
|
NodeManager.dropGestureHandler(handlerTag);
|
134
134
|
} else {
|
135
135
|
HammerNodeManager.dropGestureHandler(handlerTag);
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
|
3
3
|
import { ActionType } from './ActionType';
|
4
|
-
import {
|
4
|
+
import { isNewWebImplementationEnabled } from './EnableNewWebImplementation';
|
5
5
|
|
6
6
|
//GestureHandlers
|
7
7
|
import InteractionManager from './web/tools/InteractionManager';
|
@@ -59,7 +59,7 @@ export default {
|
|
59
59
|
handlerTag: number,
|
60
60
|
config: T
|
61
61
|
) {
|
62
|
-
if (
|
62
|
+
if (isNewWebImplementationEnabled()) {
|
63
63
|
if (!(handlerName in Gestures)) {
|
64
64
|
throw new Error(
|
65
65
|
`react-native-gesture-handler: ${handlerName} is not supported on web.`
|
@@ -101,7 +101,7 @@ export default {
|
|
101
101
|
return;
|
102
102
|
}
|
103
103
|
|
104
|
-
if (
|
104
|
+
if (isNewWebImplementationEnabled()) {
|
105
105
|
//@ts-ignore Types should be HTMLElement or React.Component
|
106
106
|
NodeManager.getHandler(handlerTag).init(newView, propsRef);
|
107
107
|
} else {
|
@@ -110,7 +110,7 @@ export default {
|
|
110
110
|
}
|
111
111
|
},
|
112
112
|
updateGestureHandler(handlerTag: number, newConfig: Config) {
|
113
|
-
if (
|
113
|
+
if (isNewWebImplementationEnabled()) {
|
114
114
|
NodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);
|
115
115
|
|
116
116
|
InteractionManager.getInstance().configureInteractions(
|
@@ -122,14 +122,14 @@ export default {
|
|
122
122
|
}
|
123
123
|
},
|
124
124
|
getGestureHandlerNode(handlerTag: number) {
|
125
|
-
if (
|
125
|
+
if (isNewWebImplementationEnabled()) {
|
126
126
|
return NodeManager.getHandler(handlerTag);
|
127
127
|
} else {
|
128
128
|
return HammerNodeManager.getHandler(handlerTag);
|
129
129
|
}
|
130
130
|
},
|
131
131
|
dropGestureHandler(handlerTag: number) {
|
132
|
-
if (
|
132
|
+
if (isNewWebImplementationEnabled()) {
|
133
133
|
NodeManager.dropGestureHandler(handlerTag);
|
134
134
|
} else {
|
135
135
|
HammerNodeManager.dropGestureHandler(handlerTag);
|
@@ -54,6 +54,10 @@ export type DrawerLockMode = 'unlocked' | 'locked-closed' | 'locked-open';
|
|
54
54
|
|
55
55
|
export type DrawerKeyboardDismissMode = 'none' | 'on-drag';
|
56
56
|
|
57
|
+
// Animated.AnimatedInterpolation has been converted to a generic type
|
58
|
+
// in @types/react-native 0.70. This way we can maintain compatibility
|
59
|
+
// with all versions of @types/react-native`
|
60
|
+
type AnimatedInterpolation = ReturnType<Animated.Value['interpolate']>;
|
57
61
|
export interface DrawerLayoutProps {
|
58
62
|
/**
|
59
63
|
* This attribute is present in the standard implementation already and is one
|
@@ -153,7 +157,7 @@ export interface DrawerLayoutProps {
|
|
153
157
|
// implicit `children` prop has been removed in @types/react^18.0.0
|
154
158
|
children?:
|
155
159
|
| React.ReactNode
|
156
|
-
| ((openValue?:
|
160
|
+
| ((openValue?: AnimatedInterpolation) => React.ReactNode);
|
157
161
|
|
158
162
|
/**
|
159
163
|
* @default 'none'
|
@@ -224,7 +228,7 @@ export default class DrawerLayout extends Component<
|
|
224
228
|
return true;
|
225
229
|
}
|
226
230
|
|
227
|
-
private openValue?:
|
231
|
+
private openValue?: AnimatedInterpolation;
|
228
232
|
private onGestureEvent?: (
|
229
233
|
event: GestureEvent<PanGestureHandlerEventPayload>
|
230
234
|
) => void;
|
@@ -603,7 +607,7 @@ export default class DrawerLayout extends Component<
|
|
603
607
|
};
|
604
608
|
}
|
605
609
|
|
606
|
-
let drawerTranslateX: number |
|
610
|
+
let drawerTranslateX: number | AnimatedInterpolation = 0;
|
607
611
|
if (drawerSlide) {
|
608
612
|
const closedDrawerOffset = fromLeft ? -drawerWidth! : drawerWidth!;
|
609
613
|
if (this.state.drawerState !== IDLE) {
|
@@ -617,7 +621,7 @@ export default class DrawerLayout extends Component<
|
|
617
621
|
}
|
618
622
|
}
|
619
623
|
const drawerStyles: {
|
620
|
-
transform: { translateX: number |
|
624
|
+
transform: { translateX: number | AnimatedInterpolation }[];
|
621
625
|
flexDirection: 'row-reverse' | 'row';
|
622
626
|
} = {
|
623
627
|
transform: [{ translateX: drawerTranslateX }],
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import * as React from 'react';
|
2
2
|
import {
|
3
|
-
DrawerLayoutAndroid as RNDrawerLayoutAndroid,
|
4
3
|
FlatList as RNFlatList,
|
5
4
|
Switch as RNSwitch,
|
6
5
|
TextInput as RNTextInput,
|
@@ -21,11 +20,11 @@ export const Switch = createNativeWrapper(RNSwitch, {
|
|
21
20
|
disallowInterruption: true,
|
22
21
|
});
|
23
22
|
export const TextInput = createNativeWrapper(RNTextInput);
|
24
|
-
export const DrawerLayoutAndroid =
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
23
|
+
export const DrawerLayoutAndroid = () => {
|
24
|
+
console.warn('DrawerLayoutAndroid is not supported on web!');
|
25
|
+
return <View />;
|
26
|
+
};
|
27
|
+
|
29
28
|
// RefreshControl is implemented as a functional component, rendering a View
|
30
29
|
// NativeViewGestureHandler needs to set a ref on its child, which cannot be done
|
31
30
|
// on functional components
|
@@ -1,10 +1,5 @@
|
|
1
|
-
|
2
|
-
import { HostComponent, requireNativeComponent } from 'react-native';
|
1
|
+
import { HostComponent } from 'react-native';
|
3
2
|
import { RawButtonProps } from './GestureButtons';
|
4
|
-
import
|
5
|
-
|
6
|
-
const RNGestureHandlerButtonNativeComponent = shouldUseCodegenNativeComponent()
|
7
|
-
? require('../fabric/RNGestureHandlerButtonNativeComponent').default
|
8
|
-
: requireNativeComponent('RNGestureHandlerButton');
|
3
|
+
import RNGestureHandlerButtonNativeComponent from '../specs/RNGestureHandlerButtonNativeComponent';
|
9
4
|
|
10
5
|
export default RNGestureHandlerButtonNativeComponent as HostComponent<RawButtonProps>;
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
import { PropsWithChildren } from 'react';
|
3
|
+
import { ViewProps } from 'react-native';
|
4
|
+
import { maybeInitializeFabric } from '../init';
|
5
|
+
import GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';
|
6
|
+
import GestureHandlerRootViewNativeComponent from '../specs/RNGestureHandlerRootViewNativeComponent';
|
7
|
+
|
8
|
+
export interface GestureHandlerRootViewProps
|
9
|
+
extends PropsWithChildren<ViewProps> {}
|
10
|
+
|
11
|
+
export default function GestureHandlerRootView(
|
12
|
+
props: GestureHandlerRootViewProps
|
13
|
+
) {
|
14
|
+
// try initialize fabric on the first render, at this point we can
|
15
|
+
// reliably check if fabric is enabled (the function contains a flag
|
16
|
+
// to make sure it's called only once)
|
17
|
+
maybeInitializeFabric();
|
18
|
+
|
19
|
+
return (
|
20
|
+
<GestureHandlerRootViewContext.Provider value>
|
21
|
+
<GestureHandlerRootViewNativeComponent {...props} />
|
22
|
+
</GestureHandlerRootViewContext.Provider>
|
23
|
+
);
|
24
|
+
}
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import * as React from 'react';
|
2
2
|
import { PropsWithChildren } from 'react';
|
3
3
|
import { View, ViewProps } from 'react-native';
|
4
|
-
import { maybeInitializeFabric } from '
|
4
|
+
import { maybeInitializeFabric } from '../init';
|
5
|
+
import GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';
|
5
6
|
|
6
7
|
export interface GestureHandlerRootViewProps
|
7
8
|
extends PropsWithChildren<ViewProps> {}
|
@@ -14,5 +15,9 @@ export default function GestureHandlerRootView(
|
|
14
15
|
// to make sure it's called only once)
|
15
16
|
maybeInitializeFabric();
|
16
17
|
|
17
|
-
return
|
18
|
+
return (
|
19
|
+
<GestureHandlerRootViewContext.Provider value>
|
20
|
+
<View {...props} />
|
21
|
+
</GestureHandlerRootViewContext.Provider>
|
22
|
+
);
|
18
23
|
}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import * as React from 'react';
|
2
2
|
import { PropsWithChildren } from 'react';
|
3
3
|
import { View, ViewProps } from 'react-native';
|
4
|
+
import GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';
|
4
5
|
|
5
6
|
export interface GestureHandlerRootViewProps
|
6
7
|
extends PropsWithChildren<ViewProps> {}
|
@@ -8,5 +9,9 @@ export interface GestureHandlerRootViewProps
|
|
8
9
|
export default function GestureHandlerRootView(
|
9
10
|
props: GestureHandlerRootViewProps
|
10
11
|
) {
|
11
|
-
return
|
12
|
+
return (
|
13
|
+
<GestureHandlerRootViewContext.Provider value>
|
14
|
+
<View {...props} />
|
15
|
+
</GestureHandlerRootViewContext.Provider>
|
16
|
+
);
|
12
17
|
}
|