react-native-gesture-handler 2.7.1 → 2.9.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.
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