react-native-gesture-handler 2.8.0 → 2.10.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/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
|
}
|