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.
Files changed (232) hide show
  1. package/RNGestureHandler.podspec +1 -1
  2. package/android/build.gradle +53 -46
  3. package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +3 -3
  4. package/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +7 -7
  5. package/android/src/fabric/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +2 -2
  6. package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +3 -3
  7. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/FlingGestureHandler.kt +12 -9
  8. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandler.kt +39 -31
  9. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerInteractionController.kt +1 -1
  10. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerOrchestrator.kt +28 -19
  11. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerRegistry.kt +1 -1
  12. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureUtils.kt +1 -1
  13. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/LongPressGestureHandler.kt +1 -1
  14. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ManualGestureHandler.kt +1 -1
  15. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/NativeViewGestureHandler.kt +5 -5
  16. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/OnTouchEventListener.kt +1 -1
  17. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PanGestureHandler.kt +7 -5
  18. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PinchGestureHandler.kt +11 -4
  19. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PointerEventsConfig.kt +1 -1
  20. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureDetector.kt +1 -1
  21. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureHandler.kt +7 -2
  22. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ScaleGestureDetector.java +1 -1
  23. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/TapGestureHandler.kt +3 -3
  24. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ViewConfigurationHelper.kt +1 -1
  25. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/react}/Extensions.kt +3 -3
  26. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +8 -6
  27. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +1 -5
  28. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +20 -8
  29. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt +1 -1
  30. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +3 -3
  31. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +40 -15
  32. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +2 -2
  33. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +8 -6
  34. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +0 -2
  35. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +4 -2
  36. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +7 -7
  37. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +5 -5
  38. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +2 -2
  39. package/android/src/main/jni/CMakeLists.txt +10 -44
  40. package/android/src/main/jni/cpp-adapter.cpp +16 -13
  41. package/android/src/paper/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +5 -5
  42. package/ios/Handlers/RNFlingHandler.m +39 -37
  43. package/ios/Handlers/RNForceTouchHandler.m +19 -17
  44. package/ios/Handlers/RNLongPressHandler.m +20 -22
  45. package/ios/Handlers/RNManualHandler.m +23 -8
  46. package/ios/Handlers/RNNativeViewHandler.mm +92 -88
  47. package/ios/Handlers/RNPanHandler.m +28 -32
  48. package/ios/Handlers/RNPinchHandler.m +9 -10
  49. package/ios/Handlers/RNRotationHandler.m +11 -14
  50. package/ios/Handlers/RNTapHandler.m +26 -26
  51. package/ios/RNGestureHandler.h +31 -24
  52. package/ios/RNGestureHandler.m +278 -273
  53. package/ios/RNGestureHandlerActionType.h +6 -4
  54. package/ios/RNGestureHandlerButton.m +11 -12
  55. package/ios/RNGestureHandlerButtonComponentView.mm +7 -8
  56. package/ios/RNGestureHandlerButtonManager.m +6 -5
  57. package/ios/RNGestureHandlerDirection.h +4 -4
  58. package/ios/RNGestureHandlerEvents.h +3 -4
  59. package/ios/RNGestureHandlerEvents.m +114 -119
  60. package/ios/RNGestureHandlerManager.h +1 -2
  61. package/ios/RNGestureHandlerManager.mm +176 -178
  62. package/ios/RNGestureHandlerModule.h +1 -2
  63. package/ios/RNGestureHandlerModule.mm +126 -122
  64. package/ios/RNGestureHandlerPointerTracker.h +1 -1
  65. package/ios/RNGestureHandlerPointerTracker.m +40 -37
  66. package/ios/RNGestureHandlerRegistry.h +3 -1
  67. package/ios/RNGestureHandlerRegistry.m +24 -22
  68. package/ios/RNGestureHandlerState.h +6 -6
  69. package/ios/RNGestureHandlerStateManager.h +1 -1
  70. package/ios/RNManualActivationRecognizer.m +9 -9
  71. package/ios/RNRootViewGestureRecognizer.m +36 -39
  72. package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
  73. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  74. package/lib/commonjs/RNGestureHandlerModule.windows.js +156 -0
  75. package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -0
  76. package/lib/commonjs/components/DrawerLayout.js +1 -0
  77. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  78. package/lib/commonjs/components/Swipeable.js.map +1 -1
  79. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
  80. package/lib/commonjs/gestureHandlerRootHOC.js +2 -1
  81. package/lib/commonjs/gestureHandlerRootHOC.js.map +1 -1
  82. package/lib/commonjs/getShadowNodeFromRef.js +2 -2
  83. package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
  84. package/lib/commonjs/handlers/LongPressGestureHandler.js +3 -1
  85. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
  86. package/lib/commonjs/handlers/TapGestureHandler.js +3 -1
  87. package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
  88. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  89. package/lib/commonjs/handlers/gestureHandlerCommon.js +5 -2
  90. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
  91. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +4 -0
  92. package/lib/commonjs/handlers/gestures/GestureDetector.js +87 -38
  93. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
  94. package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
  95. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
  96. package/lib/commonjs/handlers/gestures/longPressGesture.js +1 -0
  97. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
  98. package/lib/commonjs/handlers/gestures/tapGesture.js +1 -0
  99. package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -1
  100. package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
  101. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
  102. package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -1
  103. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  104. package/lib/commonjs/web/handlers/GestureHandler.js +28 -3
  105. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  106. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +0 -2
  107. package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
  108. package/lib/commonjs/web/handlers/ManualGestureHandler.js +15 -0
  109. package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
  110. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -2
  111. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
  112. package/lib/commonjs/web/handlers/PanGestureHandler.js +0 -5
  113. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  114. package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -1
  115. package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
  116. package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -1
  117. package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
  118. package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -2
  119. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
  120. package/lib/commonjs/web/interfaces.js.map +1 -1
  121. package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
  122. package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
  123. package/lib/commonjs/web_hammer/NodeManager.js +4 -1
  124. package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
  125. package/lib/commonjs/web_hammer/PanGestureHandler.js +25 -6
  126. package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -1
  127. package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
  128. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  129. package/lib/module/RNGestureHandlerModule.windows.js +117 -0
  130. package/lib/module/RNGestureHandlerModule.windows.js.map +1 -0
  131. package/lib/module/components/DrawerLayout.js +1 -0
  132. package/lib/module/components/DrawerLayout.js.map +1 -1
  133. package/lib/module/components/Swipeable.js.map +1 -1
  134. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
  135. package/lib/module/gestureHandlerRootHOC.js +2 -1
  136. package/lib/module/gestureHandlerRootHOC.js.map +1 -1
  137. package/lib/module/getShadowNodeFromRef.js +2 -2
  138. package/lib/module/getShadowNodeFromRef.js.map +1 -1
  139. package/lib/module/handlers/LongPressGestureHandler.js +3 -1
  140. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
  141. package/lib/module/handlers/TapGestureHandler.js +3 -1
  142. package/lib/module/handlers/TapGestureHandler.js.map +1 -1
  143. package/lib/module/handlers/createHandler.js.map +1 -1
  144. package/lib/module/handlers/gestureHandlerCommon.js +5 -2
  145. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
  146. package/lib/module/handlers/gestureHandlerTypesCompat.js +1 -1
  147. package/lib/module/handlers/gestures/GestureDetector.js +89 -39
  148. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
  149. package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
  150. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  151. package/lib/module/handlers/gestures/longPressGesture.js +1 -0
  152. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
  153. package/lib/module/handlers/gestures/tapGesture.js +1 -0
  154. package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
  155. package/lib/module/jestUtils/jestUtils.js.map +1 -1
  156. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
  157. package/lib/module/web/handlers/FlingGestureHandler.js +0 -1
  158. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  159. package/lib/module/web/handlers/GestureHandler.js +28 -3
  160. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  161. package/lib/module/web/handlers/LongPressGestureHandler.js +0 -2
  162. package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
  163. package/lib/module/web/handlers/ManualGestureHandler.js +15 -0
  164. package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
  165. package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -2
  166. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  167. package/lib/module/web/handlers/PanGestureHandler.js +0 -5
  168. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  169. package/lib/module/web/handlers/PinchGestureHandler.js +0 -1
  170. package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
  171. package/lib/module/web/handlers/RotationGestureHandler.js +0 -1
  172. package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
  173. package/lib/module/web/handlers/TapGestureHandler.js +0 -2
  174. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
  175. package/lib/module/web/interfaces.js.map +1 -1
  176. package/lib/module/web/tools/InteractionManager.js.map +1 -1
  177. package/lib/module/web_hammer/GestureHandler.js.map +1 -1
  178. package/lib/module/web_hammer/NodeManager.js +4 -1
  179. package/lib/module/web_hammer/NodeManager.js.map +1 -1
  180. package/lib/module/web_hammer/PanGestureHandler.js +25 -6
  181. package/lib/module/web_hammer/PanGestureHandler.js.map +1 -1
  182. package/lib/typescript/RNGestureHandlerModule.macos.d.ts +1 -1
  183. package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
  184. package/lib/typescript/RNGestureHandlerModule.windows.d.ts +48 -0
  185. package/lib/typescript/components/DrawerLayout.d.ts +10 -1
  186. package/lib/typescript/components/Swipeable.d.ts +3 -2
  187. package/lib/typescript/fabric/RNGestureHandlerButtonNativeComponent.d.ts +1 -1
  188. package/lib/typescript/fabric/RNGestureHandlerRootViewNativeComponent.d.ts +1 -1
  189. package/lib/typescript/gestureHandlerRootHOC.d.ts +1 -1
  190. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -1
  191. package/lib/typescript/handlers/PanGestureHandler.d.ts +1 -1
  192. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +3 -1
  193. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +3 -1
  194. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +3 -1
  195. package/lib/typescript/web/interfaces.d.ts +3 -1
  196. package/lib/typescript/web/tools/NodeManager.d.ts +2 -2
  197. package/package.json +17 -14
  198. package/src/RNGestureHandlerModule.macos.ts +2 -2
  199. package/src/RNGestureHandlerModule.web.ts +2 -2
  200. package/src/RNGestureHandlerModule.windows.ts +140 -0
  201. package/src/components/DrawerLayout.tsx +22 -12
  202. package/src/components/Swipeable.tsx +16 -13
  203. package/src/components/touchables/TouchableOpacity.tsx +1 -1
  204. package/src/gestureHandlerRootHOC.tsx +4 -1
  205. package/src/getShadowNodeFromRef.ts +3 -3
  206. package/src/handlers/LongPressGestureHandler.ts +3 -1
  207. package/src/handlers/TapGestureHandler.ts +3 -1
  208. package/src/handlers/createHandler.tsx +13 -15
  209. package/src/handlers/gestureHandlerCommon.ts +9 -4
  210. package/src/handlers/gestureHandlerTypesCompat.ts +34 -17
  211. package/src/handlers/gestures/GestureDetector.tsx +117 -44
  212. package/src/handlers/gestures/eventReceiver.ts +2 -1
  213. package/src/handlers/gestures/gesture.ts +8 -12
  214. package/src/handlers/gestures/longPressGesture.ts +1 -0
  215. package/src/handlers/gestures/tapGesture.ts +1 -0
  216. package/src/jestUtils/jestUtils.ts +3 -4
  217. package/src/web/detectors/RotationGestureDetector.ts +2 -1
  218. package/src/web/handlers/FlingGestureHandler.ts +2 -3
  219. package/src/web/handlers/GestureHandler.ts +30 -11
  220. package/src/web/handlers/LongPressGestureHandler.ts +0 -3
  221. package/src/web/handlers/ManualGestureHandler.ts +10 -1
  222. package/src/web/handlers/NativeViewGestureHandler.ts +0 -2
  223. package/src/web/handlers/PanGestureHandler.ts +0 -6
  224. package/src/web/handlers/PinchGestureHandler.ts +0 -2
  225. package/src/web/handlers/RotationGestureHandler.ts +2 -5
  226. package/src/web/handlers/TapGestureHandler.ts +0 -3
  227. package/src/web/interfaces.ts +3 -0
  228. package/src/web/tools/InteractionManager.ts +2 -3
  229. package/src/web_hammer/GestureHandler.ts +6 -8
  230. package/src/web_hammer/NodeManager.ts +3 -1
  231. package/src/web_hammer/PanGestureHandler.ts +12 -6
  232. 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
- set(CMAKE_CXX_FLAGS "-DFOLLY_NO_CONFIG=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_MOBILE=1 -DFOLLY_HAVE_RECVMMSG=1 -DFOLLY_HAVE_PTHREAD=1")
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
- set(REACT_ANDROID_DIR "${REACT_NATIVE_DIR}/ReactAndroid")
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
- jsi
57
- react_render_uimanager
58
- react_render_core
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].asObject(runtime).getHostObject<ShadowNodeWrapper>(runtime)->shadowNode;
26
- bool isFormsStackingContext = shadowNode->getTraits().check(ShadowNodeTraits::FormsStackingContext);
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(runtime, "isFormsStackingContext", std::move(isFormsStackingContext));
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(JNIEnv *env, jobject clazz, jlong jsiPtr)
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
- 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
- }
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* _gestureHandler;
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
- [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
-
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
- prop = config[@"numberOfPointers"];
116
- if (prop != nil) {
117
- recognizer.numberOfTouchesRequired = [RCTConvert NSInteger:prop];
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
- RNGestureHandlerState savedState = _lastState;
125
- BOOL shouldBegin = [super gestureRecognizerShouldBegin:gestureRecognizer];
126
- _lastState = savedState;
127
-
128
- return shouldBegin;
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
- // 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 = [recognizer.view convertPoint:recognizer.view.bounds.origin toView:[UIApplication sharedApplication].keyWindow.rootViewController.view];
141
- CGPoint locationInView = [recognizer getLastLocation];
142
-
143
- return [RNGestureHandlerEventExtraData
144
- forPosition:locationInView
145
- withAbsolutePosition:CGPointMake(viewAbsolutePosition.x + locationInView.x, viewAbsolutePosition.y + locationInView.y)
146
- withNumberOfTouches:recognizer.numberOfTouches];
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
- forForce: recognizer.force
167
- forPosition:[recognizer locationInView:recognizer.view]
168
- withAbsolutePosition:[recognizer locationInView:recognizer.view.window]
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) getDuration;
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
- || (TEST_MAX_IF_NOT_NAN(fabs(trans.y * trans.y + trans.x + trans.x), self.allowableMovement * self.allowableMovement))) {
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
- return [RNGestureHandlerEventExtraData
179
- forPosition:[recognizer locationInView:recognizer.view]
180
- withAbsolutePosition:[recognizer locationInView:recognizer.view.window]
181
- withNumberOfTouches:recognizer.numberOfTouches
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
- if ((self = [super initWithTag:tag])) {
67
- _recognizer = [[RNManualRecognizer alloc] initWithGestureHandler:self];
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