react-native-gesture-handler 2.7.1 → 2.9.0
Sign up to get free protection for your applications and to get access to all the features.
- package/RNGestureHandler.podspec +1 -1
- package/android/build.gradle +53 -46
- package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +3 -3
- package/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +7 -7
- package/android/src/fabric/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +2 -2
- package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +3 -3
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/FlingGestureHandler.kt +12 -9
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandler.kt +39 -31
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerInteractionController.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerOrchestrator.kt +28 -19
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerRegistry.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureUtils.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/LongPressGestureHandler.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ManualGestureHandler.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/NativeViewGestureHandler.kt +5 -5
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/OnTouchEventListener.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PanGestureHandler.kt +7 -5
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PinchGestureHandler.kt +11 -4
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PointerEventsConfig.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureDetector.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureHandler.kt +7 -2
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ScaleGestureDetector.java +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/TapGestureHandler.kt +3 -3
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ViewConfigurationHelper.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/react}/Extensions.kt +3 -3
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +8 -6
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +1 -5
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +20 -8
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +3 -3
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +40 -15
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +2 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +8 -6
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +0 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +4 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +7 -7
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +5 -5
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +2 -2
- package/android/src/main/jni/CMakeLists.txt +10 -44
- package/android/src/main/jni/cpp-adapter.cpp +16 -13
- package/android/src/paper/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +5 -5
- 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 +23 -8
- package/ios/Handlers/RNNativeViewHandler.mm +92 -88
- 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.mm +7 -8
- 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 +176 -178
- package/ios/RNGestureHandlerModule.h +1 -2
- package/ios/RNGestureHandlerModule.mm +126 -122
- 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/RNGestureHandlerState.h +6 -6
- package/ios/RNGestureHandlerStateManager.h +1 -1
- package/ios/RNManualActivationRecognizer.m +9 -9
- package/ios/RNRootViewGestureRecognizer.m +36 -39
- package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.windows.js +156 -0
- package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -0
- package/lib/commonjs/components/DrawerLayout.js +1 -0
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/commonjs/gestureHandlerRootHOC.js +2 -1
- package/lib/commonjs/gestureHandlerRootHOC.js.map +1 -1
- package/lib/commonjs/getShadowNodeFromRef.js +2 -2
- package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
- 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.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js +5 -2
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +4 -0
- package/lib/commonjs/handlers/gestures/GestureDetector.js +87 -38
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/longPressGesture.js +1 -0
- package/lib/commonjs/handlers/gestures/longPressGesture.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/jestUtils/jestUtils.js.map +1 -1
- package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/GestureHandler.js +28 -3
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +0 -2
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/ManualGestureHandler.js +15 -0
- package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -2
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js +0 -5
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -1
- package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -1
- package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -2
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web/interfaces.js.map +1 -1
- package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
- package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/NodeManager.js +4 -1
- package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
- package/lib/commonjs/web_hammer/PanGestureHandler.js +25 -6
- package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.windows.js +117 -0
- package/lib/module/RNGestureHandlerModule.windows.js.map +1 -0
- package/lib/module/components/DrawerLayout.js +1 -0
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/module/gestureHandlerRootHOC.js +2 -1
- package/lib/module/gestureHandlerRootHOC.js.map +1 -1
- package/lib/module/getShadowNodeFromRef.js +2 -2
- package/lib/module/getShadowNodeFromRef.js.map +1 -1
- 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.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js +5 -2
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/module/handlers/gestureHandlerTypesCompat.js +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +89 -39
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/handlers/gestures/longPressGesture.js +1 -0
- package/lib/module/handlers/gestures/longPressGesture.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/jestUtils/jestUtils.js.map +1 -1
- package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js +0 -1
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +28 -3
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/LongPressGestureHandler.js +0 -2
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/ManualGestureHandler.js +15 -0
- package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -2
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +0 -5
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PinchGestureHandler.js +0 -1
- package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/RotationGestureHandler.js +0 -1
- package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/TapGestureHandler.js +0 -2
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/web/interfaces.js.map +1 -1
- package/lib/module/web/tools/InteractionManager.js.map +1 -1
- package/lib/module/web_hammer/GestureHandler.js.map +1 -1
- package/lib/module/web_hammer/NodeManager.js +4 -1
- package/lib/module/web_hammer/NodeManager.js.map +1 -1
- package/lib/module/web_hammer/PanGestureHandler.js +25 -6
- package/lib/module/web_hammer/PanGestureHandler.js.map +1 -1
- package/lib/typescript/RNGestureHandlerModule.macos.d.ts +1 -1
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
- package/lib/typescript/RNGestureHandlerModule.windows.d.ts +48 -0
- package/lib/typescript/components/DrawerLayout.d.ts +10 -1
- package/lib/typescript/components/Swipeable.d.ts +3 -2
- package/lib/typescript/fabric/RNGestureHandlerButtonNativeComponent.d.ts +1 -1
- package/lib/typescript/fabric/RNGestureHandlerRootViewNativeComponent.d.ts +1 -1
- package/lib/typescript/gestureHandlerRootHOC.d.ts +1 -1
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -1
- package/lib/typescript/handlers/PanGestureHandler.d.ts +1 -1
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +3 -1
- package/lib/typescript/handlers/gestures/GestureDetector.d.ts +3 -1
- package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +3 -1
- package/lib/typescript/web/interfaces.d.ts +3 -1
- package/lib/typescript/web/tools/NodeManager.d.ts +2 -2
- package/package.json +17 -14
- package/src/RNGestureHandlerModule.macos.ts +2 -2
- package/src/RNGestureHandlerModule.web.ts +2 -2
- package/src/RNGestureHandlerModule.windows.ts +140 -0
- package/src/components/DrawerLayout.tsx +22 -12
- package/src/components/Swipeable.tsx +16 -13
- package/src/components/touchables/TouchableOpacity.tsx +1 -1
- package/src/gestureHandlerRootHOC.tsx +4 -1
- package/src/getShadowNodeFromRef.ts +3 -3
- package/src/handlers/LongPressGestureHandler.ts +3 -1
- package/src/handlers/TapGestureHandler.ts +3 -1
- package/src/handlers/createHandler.tsx +13 -15
- package/src/handlers/gestureHandlerCommon.ts +9 -4
- package/src/handlers/gestureHandlerTypesCompat.ts +34 -17
- package/src/handlers/gestures/GestureDetector.tsx +117 -44
- package/src/handlers/gestures/eventReceiver.ts +2 -1
- package/src/handlers/gestures/gesture.ts +8 -12
- package/src/handlers/gestures/longPressGesture.ts +1 -0
- package/src/handlers/gestures/tapGesture.ts +1 -0
- package/src/jestUtils/jestUtils.ts +3 -4
- package/src/web/detectors/RotationGestureDetector.ts +2 -1
- package/src/web/handlers/FlingGestureHandler.ts +2 -3
- package/src/web/handlers/GestureHandler.ts +30 -11
- package/src/web/handlers/LongPressGestureHandler.ts +0 -3
- package/src/web/handlers/ManualGestureHandler.ts +10 -1
- package/src/web/handlers/NativeViewGestureHandler.ts +0 -2
- package/src/web/handlers/PanGestureHandler.ts +0 -6
- package/src/web/handlers/PinchGestureHandler.ts +0 -2
- package/src/web/handlers/RotationGestureHandler.ts +2 -5
- package/src/web/handlers/TapGestureHandler.ts +0 -3
- package/src/web/interfaces.ts +3 -0
- package/src/web/tools/InteractionManager.ts +2 -3
- package/src/web_hammer/GestureHandler.ts +6 -8
- package/src/web_hammer/NodeManager.ts +3 -1
- package/src/web_hammer/PanGestureHandler.ts +12 -6
- package/android/lib/build.gradle +0 -28
@@ -3,57 +3,23 @@ cmake_minimum_required(VERSION 3.9.0)
|
|
3
3
|
|
4
4
|
set(CMAKE_VERBOSE_MAKEFILE ON)
|
5
5
|
set(CMAKE_CXX_STANDARD 17)
|
6
|
-
|
6
|
+
|
7
|
+
set(REACT_ANDROID_DIR "${REACT_NATIVE_DIR}/ReactAndroid")
|
8
|
+
|
9
|
+
include(${REACT_ANDROID_DIR}/cmake-utils/folly-flags.cmake)
|
10
|
+
add_compile_options(${folly_FLAGS})
|
7
11
|
|
8
12
|
add_library(gesturehandler
|
9
13
|
SHARED
|
10
14
|
cpp-adapter.cpp
|
11
15
|
)
|
12
16
|
|
13
|
-
|
14
|
-
set(REACT_COMMON_DIR "${REACT_NATIVE_DIR}/ReactCommon")
|
15
|
-
set(REACT_NDK_EXPORT_DIR "${APP_BUILD_DIR}/react-ndk/exported")
|
16
|
-
|
17
|
-
# copied from react-native/ReactAndroid/cmake-utils/Android-prebuilt.cmake
|
18
|
-
|
19
|
-
## jsi
|
20
|
-
add_library(jsi SHARED IMPORTED GLOBAL)
|
21
|
-
set_target_properties(jsi
|
22
|
-
PROPERTIES
|
23
|
-
IMPORTED_LOCATION
|
24
|
-
${REACT_NDK_EXPORT_DIR}/${ANDROID_ABI}/libjsi.so)
|
25
|
-
target_include_directories(jsi INTERFACE ${REACT_COMMON_DIR}/jsi)
|
26
|
-
|
27
|
-
## react_render_core
|
28
|
-
add_library(react_render_core SHARED IMPORTED GLOBAL)
|
29
|
-
set_target_properties(react_render_core
|
30
|
-
PROPERTIES
|
31
|
-
IMPORTED_LOCATION
|
32
|
-
${REACT_NDK_EXPORT_DIR}/${ANDROID_ABI}/libreact_render_core.so)
|
33
|
-
target_include_directories(react_render_core
|
34
|
-
INTERFACE
|
35
|
-
${REACT_COMMON_DIR}
|
36
|
-
${REACT_COMMON_DIR}/react/renderer/core)
|
37
|
-
|
38
|
-
## react_render_uimanager
|
39
|
-
add_library(react_render_uimanager SHARED IMPORTED GLOBAL)
|
40
|
-
set_target_properties(react_render_uimanager
|
41
|
-
PROPERTIES
|
42
|
-
IMPORTED_LOCATION
|
43
|
-
${REACT_NDK_EXPORT_DIR}/${ANDROID_ABI}/libreact_render_uimanager.so)
|
44
|
-
target_include_directories(react_render_uimanager INTERFACE ${REACT_COMMON_DIR}/react/renderer/uimanager)
|
45
|
-
|
46
|
-
target_include_directories(
|
47
|
-
gesturehandler
|
48
|
-
PRIVATE
|
49
|
-
"${REACT_ANDROID_DIR}/build/third-party-ndk/boost/boost_1_76_0"
|
50
|
-
"${REACT_ANDROID_DIR}/build/third-party-ndk/double-conversion"
|
51
|
-
"${REACT_ANDROID_DIR}/build/third-party-ndk/folly"
|
52
|
-
)
|
17
|
+
find_package(ReactAndroid REQUIRED CONFIG)
|
53
18
|
|
54
19
|
target_link_libraries(
|
55
20
|
gesturehandler
|
56
|
-
|
57
|
-
react_render_uimanager
|
58
|
-
|
21
|
+
ReactAndroid::react_render_core
|
22
|
+
ReactAndroid::react_render_uimanager
|
23
|
+
ReactAndroid::jsi
|
24
|
+
ReactAndroid::react_nativemodule_core
|
59
25
|
)
|
@@ -6,8 +6,7 @@
|
|
6
6
|
using namespace facebook;
|
7
7
|
using namespace react;
|
8
8
|
|
9
|
-
void decorateRuntime(jsi::Runtime &runtime)
|
10
|
-
{
|
9
|
+
void decorateRuntime(jsi::Runtime &runtime) {
|
11
10
|
auto isFormsStackingContext = jsi::Function::createFromHostFunction(
|
12
11
|
runtime,
|
13
12
|
jsi::PropNameID::forAscii(runtime, "isFormsStackingContext"),
|
@@ -15,27 +14,31 @@ void decorateRuntime(jsi::Runtime &runtime)
|
|
15
14
|
[](jsi::Runtime &runtime,
|
16
15
|
const jsi::Value &thisValue,
|
17
16
|
const jsi::Value *arguments,
|
18
|
-
size_t count) -> jsi::Value
|
19
|
-
|
20
|
-
if (!arguments[0].isObject())
|
21
|
-
{
|
17
|
+
size_t count) -> jsi::Value {
|
18
|
+
if (!arguments[0].isObject()) {
|
22
19
|
return jsi::Value::null();
|
23
20
|
}
|
24
21
|
|
25
|
-
auto shadowNode = arguments[0]
|
26
|
-
|
22
|
+
auto shadowNode = arguments[0]
|
23
|
+
.asObject(runtime)
|
24
|
+
.getHostObject<ShadowNodeWrapper>(runtime)
|
25
|
+
->shadowNode;
|
26
|
+
bool isFormsStackingContext = shadowNode->getTraits().check(
|
27
|
+
ShadowNodeTraits::FormsStackingContext);
|
27
28
|
|
28
29
|
return jsi::Value(isFormsStackingContext);
|
29
30
|
});
|
30
|
-
runtime.global().setProperty(
|
31
|
+
runtime.global().setProperty(
|
32
|
+
runtime, "isFormsStackingContext", std::move(isFormsStackingContext));
|
31
33
|
}
|
32
34
|
|
33
35
|
extern "C" JNIEXPORT void JNICALL
|
34
|
-
Java_com_swmansion_gesturehandler_react_RNGestureHandlerModule_decorateRuntime(
|
35
|
-
|
36
|
+
Java_com_swmansion_gesturehandler_react_RNGestureHandlerModule_decorateRuntime(
|
37
|
+
JNIEnv *env,
|
38
|
+
jobject clazz,
|
39
|
+
jlong jsiPtr) {
|
36
40
|
jsi::Runtime *runtime = reinterpret_cast<jsi::Runtime *>(jsiPtr);
|
37
|
-
if (runtime)
|
38
|
-
{
|
41
|
+
if (runtime) {
|
39
42
|
decorateRuntime(*runtime);
|
40
43
|
}
|
41
44
|
}
|
@@ -5,9 +5,9 @@ import com.facebook.react.uimanager.UIManagerModule
|
|
5
5
|
import com.facebook.react.uimanager.events.Event
|
6
6
|
|
7
7
|
fun ReactContext.dispatchEvent(event: Event<*>) {
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
try {
|
9
|
+
this.getNativeModule(UIManagerModule::class.java)!!.eventDispatcher.dispatchEvent(event)
|
10
|
+
} catch (e: NullPointerException) {
|
11
|
+
throw Exception("Couldn't get an instance of UIManagerModule. Gesture Handler is unable to send an event.", e)
|
12
|
+
}
|
13
13
|
}
|
@@ -2,12 +2,12 @@
|
|
2
2
|
|
3
3
|
@interface RNBetterSwipeGestureRecognizer : UISwipeGestureRecognizer
|
4
4
|
|
5
|
-
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler;
|
5
|
+
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler;
|
6
6
|
|
7
7
|
@end
|
8
8
|
|
9
9
|
@implementation RNBetterSwipeGestureRecognizer {
|
10
|
-
__weak RNGestureHandler*
|
10
|
+
__weak RNGestureHandler *_gestureHandler;
|
11
11
|
CGPoint _lastPoint; // location of the most recently updated touch, relative to the view
|
12
12
|
bool _hasBegan; // whether the `BEGAN` event has been sent
|
13
13
|
}
|
@@ -27,6 +27,7 @@
|
|
27
27
|
_lastPoint = [[[touches allObjects] objectAtIndex:0] locationInView:_gestureHandler.recognizer.view];
|
28
28
|
[_gestureHandler reset];
|
29
29
|
[super touchesBegan:touches withEvent:event];
|
30
|
+
[_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
|
30
31
|
|
31
32
|
// self.numberOfTouches doesn't work for this because in case than one finger is required,
|
32
33
|
// when holding one finger on the screen and tapping with the second one, numberOfTouches is equal
|
@@ -35,8 +36,6 @@
|
|
35
36
|
[self triggerAction];
|
36
37
|
_hasBegan = YES;
|
37
38
|
}
|
38
|
-
|
39
|
-
[_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
|
40
39
|
}
|
41
40
|
|
42
41
|
- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
@@ -73,7 +72,8 @@
|
|
73
72
|
[super reset];
|
74
73
|
}
|
75
74
|
|
76
|
-
- (CGPoint)getLastLocation
|
75
|
+
- (CGPoint)getLastLocation
|
76
|
+
{
|
77
77
|
// I think keeping the location of only one touch is enough since it would be used to determine the direction
|
78
78
|
// of the movement, and if it's wrong the recognizer fails anyway.
|
79
79
|
// In case the location of all touches is required, touch events are the way to go
|
@@ -103,48 +103,50 @@
|
|
103
103
|
|
104
104
|
- (void)configure:(NSDictionary *)config
|
105
105
|
{
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
106
|
+
[super configure:config];
|
107
|
+
UISwipeGestureRecognizer *recognizer = (UISwipeGestureRecognizer *)_recognizer;
|
108
|
+
|
109
|
+
id prop = config[@"direction"];
|
110
|
+
if (prop != nil) {
|
111
|
+
recognizer.direction = [RCTConvert NSInteger:prop];
|
112
|
+
}
|
113
|
+
|
114
114
|
#if !TARGET_OS_TV
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
115
|
+
prop = config[@"numberOfPointers"];
|
116
|
+
if (prop != nil) {
|
117
|
+
recognizer.numberOfTouchesRequired = [RCTConvert NSInteger:prop];
|
118
|
+
}
|
119
119
|
#endif
|
120
120
|
}
|
121
121
|
|
122
122
|
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
|
123
123
|
{
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
124
|
+
RNGestureHandlerState savedState = _lastState;
|
125
|
+
BOOL shouldBegin = [super gestureRecognizerShouldBegin:gestureRecognizer];
|
126
|
+
_lastState = savedState;
|
127
|
+
|
128
|
+
return shouldBegin;
|
129
129
|
}
|
130
130
|
|
131
131
|
- (RNGestureHandlerEventExtraData *)eventExtraData:(id)_recognizer
|
132
132
|
{
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
133
|
+
// For some weird reason [recognizer locationInView:recognizer.view.window] returns (0, 0).
|
134
|
+
// To calculate the correct absolute position, first calculate the absolute position of the
|
135
|
+
// view inside the root view controller (https://stackoverflow.com/a/7448573) and then
|
136
|
+
// add the relative touch position to it.
|
137
|
+
|
138
|
+
RNBetterSwipeGestureRecognizer *recognizer = (RNBetterSwipeGestureRecognizer *)_recognizer;
|
139
|
+
|
140
|
+
CGPoint viewAbsolutePosition =
|
141
|
+
[recognizer.view convertPoint:recognizer.view.bounds.origin
|
142
|
+
toView:[UIApplication sharedApplication].keyWindow.rootViewController.view];
|
143
|
+
CGPoint locationInView = [recognizer getLastLocation];
|
144
|
+
|
145
|
+
return [RNGestureHandlerEventExtraData
|
146
|
+
forPosition:locationInView
|
147
|
+
withAbsolutePosition:CGPointMake(
|
148
|
+
viewAbsolutePosition.x + locationInView.x, viewAbsolutePosition.y + locationInView.y)
|
149
|
+
withNumberOfTouches:recognizer.numberOfTouches];
|
147
150
|
}
|
148
151
|
|
149
152
|
@end
|
150
|
-
|
@@ -11,7 +11,7 @@
|
|
11
11
|
@property (nonatomic) CGFloat force;
|
12
12
|
@property (nonatomic) BOOL feedbackOnActivation;
|
13
13
|
|
14
|
-
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler;
|
14
|
+
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler;
|
15
15
|
|
16
16
|
@end
|
17
17
|
|
@@ -25,7 +25,7 @@ static const CGFloat defaultMinForce = 0.2;
|
|
25
25
|
static const CGFloat defaultMaxForce = NAN;
|
26
26
|
static const BOOL defaultFeedbackOnActivation = NO;
|
27
27
|
|
28
|
-
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler
|
28
|
+
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler
|
29
29
|
{
|
30
30
|
if ((self = [super initWithTarget:gestureHandler action:@selector(handleGesture:)])) {
|
31
31
|
_gestureHandler = gestureHandler;
|
@@ -45,7 +45,7 @@ static const BOOL defaultFeedbackOnActivation = NO;
|
|
45
45
|
}
|
46
46
|
[super touchesBegan:touches withEvent:event];
|
47
47
|
[_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
|
48
|
-
|
48
|
+
|
49
49
|
_firstTouch = [touches anyObject];
|
50
50
|
[self handleForceWithTouches:touches];
|
51
51
|
self.state = UIGestureRecognizerStatePossible;
|
@@ -59,25 +59,27 @@ static const BOOL defaultFeedbackOnActivation = NO;
|
|
59
59
|
}
|
60
60
|
[super touchesMoved:touches withEvent:event];
|
61
61
|
[_gestureHandler.pointerTracker touchesMoved:touches withEvent:event];
|
62
|
-
|
62
|
+
|
63
63
|
[self handleForceWithTouches:touches];
|
64
|
-
|
64
|
+
|
65
65
|
if ([self shouldFail]) {
|
66
66
|
self.state = UIGestureRecognizerStateFailed;
|
67
67
|
return;
|
68
68
|
}
|
69
|
-
|
69
|
+
|
70
70
|
if (self.state == UIGestureRecognizerStatePossible && [self shouldActivate]) {
|
71
71
|
[self performFeedbackIfRequired];
|
72
72
|
self.state = UIGestureRecognizerStateBegan;
|
73
73
|
}
|
74
74
|
}
|
75
75
|
|
76
|
-
- (BOOL)shouldActivate
|
76
|
+
- (BOOL)shouldActivate
|
77
|
+
{
|
77
78
|
return (_force >= _minForce);
|
78
79
|
}
|
79
80
|
|
80
|
-
- (BOOL)shouldFail
|
81
|
+
- (BOOL)shouldFail
|
82
|
+
{
|
81
83
|
return TEST_MAX_IF_NOT_NAN(_force, _maxForce);
|
82
84
|
}
|
83
85
|
|
@@ -113,11 +115,13 @@ static const BOOL defaultFeedbackOnActivation = NO;
|
|
113
115
|
[_gestureHandler.pointerTracker touchesCancelled:touches withEvent:event];
|
114
116
|
}
|
115
117
|
|
116
|
-
- (void)handleForceWithTouches:(NSSet<UITouch *> *)touches
|
118
|
+
- (void)handleForceWithTouches:(NSSet<UITouch *> *)touches
|
119
|
+
{
|
117
120
|
_force = _firstTouch.force / _firstTouch.maximumPossibleForce;
|
118
121
|
}
|
119
122
|
|
120
|
-
- (void)reset
|
123
|
+
- (void)reset
|
124
|
+
{
|
121
125
|
[_gestureHandler.pointerTracker reset];
|
122
126
|
[super reset];
|
123
127
|
_force = 0;
|
@@ -140,7 +144,7 @@ static const BOOL defaultFeedbackOnActivation = NO;
|
|
140
144
|
{
|
141
145
|
[super resetConfig];
|
142
146
|
RNForceTouchGestureRecognizer *recognizer = (RNForceTouchGestureRecognizer *)_recognizer;
|
143
|
-
|
147
|
+
|
144
148
|
recognizer.feedbackOnActivation = defaultFeedbackOnActivation;
|
145
149
|
recognizer.maxForce = defaultMaxForce;
|
146
150
|
recognizer.minForce = defaultMinForce;
|
@@ -162,12 +166,10 @@ static const BOOL defaultFeedbackOnActivation = NO;
|
|
162
166
|
|
163
167
|
- (RNGestureHandlerEventExtraData *)eventExtraData:(RNForceTouchGestureRecognizer *)recognizer
|
164
168
|
{
|
165
|
-
return [RNGestureHandlerEventExtraData
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
withNumberOfTouches:recognizer.numberOfTouches];
|
169
|
+
return [RNGestureHandlerEventExtraData forForce:recognizer.force
|
170
|
+
forPosition:[recognizer locationInView:recognizer.view]
|
171
|
+
withAbsolutePosition:[recognizer locationInView:recognizer.view.window]
|
172
|
+
withNumberOfTouches:recognizer.numberOfTouches];
|
170
173
|
}
|
171
174
|
|
172
175
|
@end
|
173
|
-
|
@@ -19,9 +19,9 @@
|
|
19
19
|
uint64_t previousTime;
|
20
20
|
}
|
21
21
|
|
22
|
-
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler;
|
22
|
+
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler;
|
23
23
|
- (void)handleGesture:(UIGestureRecognizer *)recognizer;
|
24
|
-
- (NSUInteger)
|
24
|
+
- (NSUInteger)getDuration;
|
25
25
|
|
26
26
|
@end
|
27
27
|
|
@@ -30,7 +30,7 @@
|
|
30
30
|
CGPoint _initPosition;
|
31
31
|
}
|
32
32
|
|
33
|
-
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler
|
33
|
+
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler
|
34
34
|
{
|
35
35
|
if ((self = [super initWithTarget:self action:@selector(handleGesture:)])) {
|
36
36
|
_gestureHandler = gestureHandler;
|
@@ -70,10 +70,11 @@
|
|
70
70
|
{
|
71
71
|
[super touchesMoved:touches withEvent:event];
|
72
72
|
[_gestureHandler.pointerTracker touchesMoved:touches withEvent:event];
|
73
|
-
|
73
|
+
|
74
74
|
CGPoint trans = [self translationInView];
|
75
|
-
if ((_gestureHandler.shouldCancelWhenOutside && ![_gestureHandler containsPointInView])
|
76
|
-
|
75
|
+
if ((_gestureHandler.shouldCancelWhenOutside && ![_gestureHandler containsPointInView]) ||
|
76
|
+
(TEST_MAX_IF_NOT_NAN(
|
77
|
+
fabs(trans.y * trans.y + trans.x + trans.x), self.allowableMovement * self.allowableMovement))) {
|
77
78
|
self.enabled = NO;
|
78
79
|
self.enabled = YES;
|
79
80
|
}
|
@@ -96,26 +97,25 @@
|
|
96
97
|
if (self.state == UIGestureRecognizerStateFailed) {
|
97
98
|
[self triggerAction];
|
98
99
|
}
|
99
|
-
|
100
|
+
|
100
101
|
[_gestureHandler.pointerTracker reset];
|
101
|
-
|
102
|
+
|
102
103
|
[super reset];
|
103
104
|
}
|
104
105
|
|
105
106
|
- (NSUInteger)getDuration
|
106
107
|
{
|
107
108
|
static mach_timebase_info_data_t sTimebaseInfo;
|
108
|
-
|
109
|
+
|
109
110
|
if (sTimebaseInfo.denom == 0) {
|
110
111
|
mach_timebase_info(&sTimebaseInfo);
|
111
112
|
}
|
112
|
-
|
113
|
+
|
113
114
|
return (NSUInteger)(((previousTime - startTime) * sTimebaseInfo.numer / (sTimebaseInfo.denom * 1000000)));
|
114
115
|
}
|
115
116
|
|
116
117
|
@end
|
117
118
|
|
118
|
-
|
119
119
|
@implementation RNLongPressGestureHandler
|
120
120
|
|
121
121
|
- (instancetype)initWithTag:(NSNumber *)tag
|
@@ -130,7 +130,7 @@
|
|
130
130
|
{
|
131
131
|
[super resetConfig];
|
132
132
|
UILongPressGestureRecognizer *recognizer = (UILongPressGestureRecognizer *)_recognizer;
|
133
|
-
|
133
|
+
|
134
134
|
recognizer.minimumPressDuration = 0.5;
|
135
135
|
recognizer.allowableMovement = 10;
|
136
136
|
}
|
@@ -139,12 +139,12 @@
|
|
139
139
|
{
|
140
140
|
[super configure:config];
|
141
141
|
UILongPressGestureRecognizer *recognizer = (UILongPressGestureRecognizer *)_recognizer;
|
142
|
-
|
142
|
+
|
143
143
|
id prop = config[@"minDurationMs"];
|
144
144
|
if (prop != nil) {
|
145
145
|
recognizer.minimumPressDuration = [RCTConvert CGFloat:prop] / 1000.0;
|
146
146
|
}
|
147
|
-
|
147
|
+
|
148
148
|
prop = config[@"maxDist"];
|
149
149
|
if (prop != nil) {
|
150
150
|
recognizer.allowableMovement = [RCTConvert CGFloat:prop];
|
@@ -165,21 +165,19 @@
|
|
165
165
|
|
166
166
|
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
|
167
167
|
{
|
168
|
-
//same as TapGH, this needs to be unified when all handlers are updated
|
168
|
+
// same as TapGH, this needs to be unified when all handlers are updated
|
169
169
|
RNGestureHandlerState savedState = _lastState;
|
170
170
|
BOOL shouldBegin = [super gestureRecognizerShouldBegin:gestureRecognizer];
|
171
171
|
_lastState = savedState;
|
172
|
-
|
172
|
+
|
173
173
|
return shouldBegin;
|
174
174
|
}
|
175
175
|
|
176
176
|
- (RNGestureHandlerEventExtraData *)eventExtraData:(UIGestureRecognizer *)recognizer
|
177
177
|
{
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
withDuration:[(RNBetterLongPressGestureRecognizer*)recognizer getDuration]];
|
178
|
+
return [RNGestureHandlerEventExtraData forPosition:[recognizer locationInView:recognizer.view]
|
179
|
+
withAbsolutePosition:[recognizer locationInView:recognizer.view.window]
|
180
|
+
withNumberOfTouches:recognizer.numberOfTouches
|
181
|
+
withDuration:[(RNBetterLongPressGestureRecognizer *)recognizer getDuration]];
|
183
182
|
}
|
184
183
|
@end
|
185
|
-
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
@interface RNManualRecognizer : UIGestureRecognizer
|
4
4
|
|
5
|
-
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler;
|
5
|
+
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler;
|
6
6
|
|
7
7
|
@end
|
8
8
|
|
@@ -24,7 +24,7 @@
|
|
24
24
|
{
|
25
25
|
[super touchesBegan:touches withEvent:event];
|
26
26
|
[_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
|
27
|
-
|
27
|
+
|
28
28
|
if (_shouldSendBeginEvent) {
|
29
29
|
[_gestureHandler handleGesture:self];
|
30
30
|
_shouldSendBeginEvent = NO;
|
@@ -35,6 +35,13 @@
|
|
35
35
|
{
|
36
36
|
[super touchesMoved:touches withEvent:event];
|
37
37
|
[_gestureHandler.pointerTracker touchesMoved:touches withEvent:event];
|
38
|
+
|
39
|
+
if ([self shouldFail]) {
|
40
|
+
self.state = (self.state == UIGestureRecognizerStatePossible) ? UIGestureRecognizerStateFailed
|
41
|
+
: UIGestureRecognizerStateCancelled;
|
42
|
+
|
43
|
+
[self reset];
|
44
|
+
}
|
38
45
|
}
|
39
46
|
|
40
47
|
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
@@ -53,21 +60,29 @@
|
|
53
60
|
{
|
54
61
|
[_gestureHandler.pointerTracker reset];
|
55
62
|
[super reset];
|
56
|
-
|
63
|
+
|
57
64
|
_shouldSendBeginEvent = YES;
|
58
65
|
}
|
59
66
|
|
67
|
+
- (BOOL)shouldFail
|
68
|
+
{
|
69
|
+
if (_gestureHandler.shouldCancelWhenOutside && ![_gestureHandler containsPointInView]) {
|
70
|
+
return YES;
|
71
|
+
} else {
|
72
|
+
return NO;
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
60
76
|
@end
|
61
77
|
|
62
78
|
@implementation RNManualGestureHandler
|
63
79
|
|
64
80
|
- (instancetype)initWithTag:(NSNumber *)tag
|
65
81
|
{
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
return self;
|
82
|
+
if ((self = [super initWithTag:tag])) {
|
83
|
+
_recognizer = [[RNManualRecognizer alloc] initWithGestureHandler:self];
|
84
|
+
}
|
85
|
+
return self;
|
71
86
|
}
|
72
87
|
|
73
88
|
@end
|