react-native-gesture-handler 3.0.0-beta.3 → 3.0.0-beta.5

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 (419) hide show
  1. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +42 -38
  2. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +34 -8
  3. package/android/src/main/java/com/swmansion/gesturehandler/core/HoverGestureHandler.kt +3 -6
  4. package/android/src/main/java/com/swmansion/gesturehandler/core/ManualGestureHandler.kt +2 -0
  5. package/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt +68 -7
  6. package/android/src/main/java/com/swmansion/gesturehandler/core/OnJSResponderCancelListener.kt +6 -0
  7. package/android/src/main/java/com/swmansion/gesturehandler/core/PanGestureHandler.kt +2 -0
  8. package/android/src/main/java/com/swmansion/gesturehandler/core/PinchGestureHandler.kt +16 -6
  9. package/android/src/main/java/com/swmansion/gesturehandler/core/RotationGestureHandler.kt +17 -4
  10. package/android/src/main/java/com/swmansion/gesturehandler/core/ViewConfigurationHelper.kt +0 -1
  11. package/android/src/main/java/com/swmansion/gesturehandler/react/Extensions.kt +21 -0
  12. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +160 -55
  13. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerDetectorView.kt +75 -98
  14. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +1 -1
  15. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +7 -10
  16. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +64 -2
  17. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +18 -8
  18. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +15 -4
  19. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +0 -6
  20. package/apple/Handlers/RNForceTouchHandler.m +1 -1
  21. package/apple/Handlers/RNHoverHandler.m +11 -11
  22. package/apple/Handlers/RNLongPressHandler.m +2 -2
  23. package/apple/Handlers/RNManualHandler.m +5 -0
  24. package/apple/Handlers/RNNativeViewHandler.mm +114 -53
  25. package/apple/Handlers/RNPanHandler.m +7 -3
  26. package/apple/Handlers/RNPinchHandler.m +9 -3
  27. package/apple/Handlers/RNRotationHandler.m +7 -2
  28. package/apple/Handlers/RNTapHandler.m +1 -1
  29. package/apple/RNGestureHandler.h +18 -0
  30. package/apple/RNGestureHandler.mm +82 -33
  31. package/apple/RNGestureHandlerButton.h +12 -2
  32. package/apple/RNGestureHandlerButton.mm +208 -38
  33. package/apple/RNGestureHandlerButtonComponentView.mm +102 -6
  34. package/apple/RNGestureHandlerDetector.mm +99 -75
  35. package/apple/RNGestureHandlerModule.mm +11 -14
  36. package/apple/RNGestureHandlerRegistry.h +14 -1
  37. package/apple/RNGestureHandlerRegistry.m +56 -0
  38. package/apple/RNRootViewGestureRecognizer.m +4 -15
  39. package/lib/module/RNGestureHandlerModule.web.js +5 -1
  40. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  41. package/lib/module/components/GestureButtons.js +23 -12
  42. package/lib/module/components/GestureButtons.js.map +1 -1
  43. package/lib/module/components/GestureHandlerButton.js.map +1 -1
  44. package/lib/module/components/GestureHandlerButton.web.js +113 -31
  45. package/lib/module/components/GestureHandlerButton.web.js.map +1 -1
  46. package/lib/module/components/Pressable/Pressable.js +2 -1
  47. package/lib/module/components/Pressable/Pressable.js.map +1 -1
  48. package/lib/module/components/Pressable/stateDefinitions.js +2 -0
  49. package/lib/module/components/Pressable/stateDefinitions.js.map +1 -1
  50. package/lib/module/components/ReanimatedDrawerLayout.js.map +1 -1
  51. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js +38 -5
  52. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js.map +1 -1
  53. package/lib/module/components/touchables/GenericTouchable.js +2 -6
  54. package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
  55. package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js +1 -2
  56. package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
  57. package/lib/module/handlers/gestures/GestureDetector/utils.js +11 -48
  58. package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
  59. package/lib/module/handlers/gestures/flingGesture.js +8 -0
  60. package/lib/module/handlers/gestures/flingGesture.js.map +1 -1
  61. package/lib/module/handlers/gestures/forceTouchGesture.js +3 -3
  62. package/lib/module/handlers/gestures/gesture.js +8 -0
  63. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  64. package/lib/module/handlers/gestures/gestureComposition.js +28 -0
  65. package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
  66. package/lib/module/handlers/gestures/gestureObjects.js +27 -1
  67. package/lib/module/handlers/gestures/gestureObjects.js.map +1 -1
  68. package/lib/module/handlers/gestures/gestureStateManager.js +9 -0
  69. package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -1
  70. package/lib/module/handlers/gestures/hoverGesture.js +8 -0
  71. package/lib/module/handlers/gestures/hoverGesture.js.map +1 -1
  72. package/lib/module/handlers/gestures/longPressGesture.js +8 -0
  73. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
  74. package/lib/module/handlers/gestures/manualGesture.js +8 -0
  75. package/lib/module/handlers/gestures/manualGesture.js.map +1 -1
  76. package/lib/module/handlers/gestures/nativeGesture.js +8 -0
  77. package/lib/module/handlers/gestures/nativeGesture.js.map +1 -1
  78. package/lib/module/handlers/gestures/panGesture.js +13 -0
  79. package/lib/module/handlers/gestures/panGesture.js.map +1 -1
  80. package/lib/module/handlers/gestures/pinchGesture.js +13 -0
  81. package/lib/module/handlers/gestures/pinchGesture.js.map +1 -1
  82. package/lib/module/handlers/gestures/reanimatedWrapper.js +14 -2
  83. package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
  84. package/lib/module/handlers/gestures/rotationGesture.js +8 -0
  85. package/lib/module/handlers/gestures/rotationGesture.js.map +1 -1
  86. package/lib/module/handlers/gestures/tapGesture.js +8 -0
  87. package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
  88. package/lib/module/mocks/module.js +3 -2
  89. package/lib/module/mocks/module.js.map +1 -1
  90. package/lib/module/specs/NativeRNGestureHandlerModule.js.map +1 -1
  91. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.ts +28 -13
  92. package/lib/module/v3/NativeProxy.js +5 -3
  93. package/lib/module/v3/NativeProxy.js.map +1 -1
  94. package/lib/module/v3/NativeProxy.web.js +2 -2
  95. package/lib/module/v3/NativeProxy.web.js.map +1 -1
  96. package/lib/module/v3/components/GestureButtons.js +11 -6
  97. package/lib/module/v3/components/GestureButtons.js.map +1 -1
  98. package/lib/module/v3/components/Pressable.js +3 -2
  99. package/lib/module/v3/components/Pressable.js.map +1 -1
  100. package/lib/module/v3/components/Touchable/Touchable.js +119 -32
  101. package/lib/module/v3/components/Touchable/Touchable.js.map +1 -1
  102. package/lib/module/v3/detectors/HostGestureDetector.web.js +180 -59
  103. package/lib/module/v3/detectors/HostGestureDetector.web.js.map +1 -1
  104. package/lib/module/v3/detectors/NativeDetector.js +3 -2
  105. package/lib/module/v3/detectors/NativeDetector.js.map +1 -1
  106. package/lib/module/v3/detectors/VirtualDetector/InterceptingGestureDetector.js +3 -4
  107. package/lib/module/v3/detectors/VirtualDetector/InterceptingGestureDetector.js.map +1 -1
  108. package/lib/module/v3/detectors/VirtualDetector/VirtualDetector.js +4 -2
  109. package/lib/module/v3/detectors/VirtualDetector/VirtualDetector.js.map +1 -1
  110. package/lib/module/v3/detectors/useGestureRelationsUpdater.js +23 -0
  111. package/lib/module/v3/detectors/useGestureRelationsUpdater.js.map +1 -0
  112. package/lib/module/v3/detectors/useNativeGestureRole.js +6 -0
  113. package/lib/module/v3/detectors/useNativeGestureRole.js.map +1 -0
  114. package/lib/module/v3/detectors/useNativeGestureRole.web.js +27 -0
  115. package/lib/module/v3/detectors/useNativeGestureRole.web.js.map +1 -0
  116. package/lib/module/v3/detectors/utils.js +10 -8
  117. package/lib/module/v3/detectors/utils.js.map +1 -1
  118. package/lib/module/v3/hooks/callbacks/useReanimatedEventHandler.js +17 -2
  119. package/lib/module/v3/hooks/callbacks/useReanimatedEventHandler.js.map +1 -1
  120. package/lib/module/v3/hooks/gestures/fling/useFlingGesture.js +2 -1
  121. package/lib/module/v3/hooks/gestures/fling/useFlingGesture.js.map +1 -1
  122. package/lib/module/v3/hooks/gestures/hover/useHoverGesture.js +2 -1
  123. package/lib/module/v3/hooks/gestures/hover/useHoverGesture.js.map +1 -1
  124. package/lib/module/v3/hooks/gestures/longPress/useLongPressGesture.js +2 -1
  125. package/lib/module/v3/hooks/gestures/longPress/useLongPressGesture.js.map +1 -1
  126. package/lib/module/v3/hooks/gestures/manual/useManualGesture.js +2 -1
  127. package/lib/module/v3/hooks/gestures/manual/useManualGesture.js.map +1 -1
  128. package/lib/module/v3/hooks/gestures/native/NativeTypes.js +1 -1
  129. package/lib/module/v3/hooks/gestures/native/NativeTypes.js.map +1 -1
  130. package/lib/module/v3/hooks/gestures/native/useNativeGesture.js +2 -1
  131. package/lib/module/v3/hooks/gestures/native/useNativeGesture.js.map +1 -1
  132. package/lib/module/v3/hooks/gestures/pan/usePanGesture.js +2 -1
  133. package/lib/module/v3/hooks/gestures/pan/usePanGesture.js.map +1 -1
  134. package/lib/module/v3/hooks/gestures/pinch/usePinchGesture.js +2 -1
  135. package/lib/module/v3/hooks/gestures/pinch/usePinchGesture.js.map +1 -1
  136. package/lib/module/v3/hooks/gestures/rotation/useRotationGesture.js +2 -1
  137. package/lib/module/v3/hooks/gestures/rotation/useRotationGesture.js.map +1 -1
  138. package/lib/module/v3/hooks/gestures/tap/useTapGesture.js +2 -1
  139. package/lib/module/v3/hooks/gestures/tap/useTapGesture.js.map +1 -1
  140. package/lib/module/v3/hooks/useGesture.js +4 -22
  141. package/lib/module/v3/hooks/useGesture.js.map +1 -1
  142. package/lib/module/v3/hooks/utils/configUtils.js +8 -6
  143. package/lib/module/v3/hooks/utils/configUtils.js.map +1 -1
  144. package/lib/module/v3/hooks/utils/eventHandlersUtils.js +31 -29
  145. package/lib/module/v3/hooks/utils/eventHandlersUtils.js.map +1 -1
  146. package/lib/module/v3/hooks/utils/index.js +1 -1
  147. package/lib/module/v3/hooks/utils/index.js.map +1 -1
  148. package/lib/module/v3/hooks/utils/propsWhiteList.js +1 -1
  149. package/lib/module/v3/hooks/utils/propsWhiteList.js.map +1 -1
  150. package/lib/module/v3/hooks/utils/reanimatedUtils.js +8 -2
  151. package/lib/module/v3/hooks/utils/reanimatedUtils.js.map +1 -1
  152. package/lib/module/web/constants.js +1 -0
  153. package/lib/module/web/constants.js.map +1 -1
  154. package/lib/module/web/detectors/RotationGestureDetector.js +18 -5
  155. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
  156. package/lib/module/web/detectors/ScaleGestureDetector.js +9 -1
  157. package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -1
  158. package/lib/module/web/handlers/GestureHandler.js +25 -5
  159. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  160. package/lib/module/web/handlers/HoverGestureHandler.js +1 -4
  161. package/lib/module/web/handlers/HoverGestureHandler.js.map +1 -1
  162. package/lib/module/web/handlers/ManualGestureHandler.js +1 -0
  163. package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
  164. package/lib/module/web/handlers/NativeViewGestureHandler.js +65 -17
  165. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  166. package/lib/module/web/handlers/PanGestureHandler.js +1 -0
  167. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  168. package/lib/module/web/handlers/PinchGestureHandler.js +4 -6
  169. package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
  170. package/lib/module/web/handlers/RotationGestureHandler.js +4 -3
  171. package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
  172. package/lib/module/web/interfaces.js +6 -0
  173. package/lib/module/web/interfaces.js.map +1 -1
  174. package/lib/module/web/tools/GestureHandlerOrchestrator.js +8 -2
  175. package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  176. package/lib/module/web/tools/GestureLifecycleEvents.js +10 -0
  177. package/lib/module/web/tools/GestureLifecycleEvents.js.map +1 -0
  178. package/lib/module/web/tools/NodeManager.js +44 -0
  179. package/lib/module/web/tools/NodeManager.js.map +1 -1
  180. package/lib/module/web/tools/PointerEventManager.js +9 -0
  181. package/lib/module/web/tools/PointerEventManager.js.map +1 -1
  182. package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
  183. package/lib/typescript/RNGestureHandlerModule.web.d.ts.map +1 -1
  184. package/lib/typescript/components/GestureButtons.d.ts +14 -6
  185. package/lib/typescript/components/GestureButtons.d.ts.map +1 -1
  186. package/lib/typescript/components/GestureHandlerButton.d.ts +62 -8
  187. package/lib/typescript/components/GestureHandlerButton.d.ts.map +1 -1
  188. package/lib/typescript/components/GestureHandlerButton.web.d.ts +14 -3
  189. package/lib/typescript/components/GestureHandlerButton.web.d.ts.map +1 -1
  190. package/lib/typescript/components/Pressable/Pressable.d.ts.map +1 -1
  191. package/lib/typescript/components/Pressable/PressableProps.d.ts +1 -1
  192. package/lib/typescript/components/Pressable/PressableProps.d.ts.map +1 -1
  193. package/lib/typescript/components/Pressable/stateDefinitions.d.ts.map +1 -1
  194. package/lib/typescript/components/ReanimatedDrawerLayout.d.ts +16 -14
  195. package/lib/typescript/components/ReanimatedDrawerLayout.d.ts.map +1 -1
  196. package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeable.d.ts +2 -1
  197. package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeable.d.ts.map +1 -1
  198. package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeableProps.d.ts +30 -34
  199. package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeableProps.d.ts.map +1 -1
  200. package/lib/typescript/components/touchables/GenericTouchable.d.ts.map +1 -1
  201. package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.d.ts.map +1 -1
  202. package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +0 -1
  203. package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts.map +1 -1
  204. package/lib/typescript/handlers/gestures/flingGesture.d.ts +6 -0
  205. package/lib/typescript/handlers/gestures/flingGesture.d.ts.map +1 -1
  206. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +3 -3
  207. package/lib/typescript/handlers/gestures/gesture.d.ts +6 -0
  208. package/lib/typescript/handlers/gestures/gesture.d.ts.map +1 -1
  209. package/lib/typescript/handlers/gestures/gestureComposition.d.ts +21 -0
  210. package/lib/typescript/handlers/gestures/gestureComposition.d.ts.map +1 -1
  211. package/lib/typescript/handlers/gestures/gestureObjects.d.ts +27 -1
  212. package/lib/typescript/handlers/gestures/gestureObjects.d.ts.map +1 -1
  213. package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +6 -0
  214. package/lib/typescript/handlers/gestures/gestureStateManager.d.ts.map +1 -1
  215. package/lib/typescript/handlers/gestures/hoverGesture.d.ts +6 -0
  216. package/lib/typescript/handlers/gestures/hoverGesture.d.ts.map +1 -1
  217. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +6 -0
  218. package/lib/typescript/handlers/gestures/longPressGesture.d.ts.map +1 -1
  219. package/lib/typescript/handlers/gestures/manualGesture.d.ts +6 -0
  220. package/lib/typescript/handlers/gestures/manualGesture.d.ts.map +1 -1
  221. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +6 -0
  222. package/lib/typescript/handlers/gestures/nativeGesture.d.ts.map +1 -1
  223. package/lib/typescript/handlers/gestures/panGesture.d.ts +9 -0
  224. package/lib/typescript/handlers/gestures/panGesture.d.ts.map +1 -1
  225. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +9 -0
  226. package/lib/typescript/handlers/gestures/pinchGesture.d.ts.map +1 -1
  227. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts.map +1 -1
  228. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +6 -0
  229. package/lib/typescript/handlers/gestures/rotationGesture.d.ts.map +1 -1
  230. package/lib/typescript/handlers/gestures/tapGesture.d.ts +6 -0
  231. package/lib/typescript/handlers/gestures/tapGesture.d.ts.map +1 -1
  232. package/lib/typescript/mocks/module.d.ts +1 -1
  233. package/lib/typescript/mocks/module.d.ts.map +1 -1
  234. package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts +2 -2
  235. package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts.map +1 -1
  236. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +19 -11
  237. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts.map +1 -1
  238. package/lib/typescript/v3/NativeProxy.d.ts +1 -1
  239. package/lib/typescript/v3/NativeProxy.d.ts.map +1 -1
  240. package/lib/typescript/v3/NativeProxy.web.d.ts +1 -1
  241. package/lib/typescript/v3/NativeProxy.web.d.ts.map +1 -1
  242. package/lib/typescript/v3/components/GestureButtons.d.ts +1 -37
  243. package/lib/typescript/v3/components/GestureButtons.d.ts.map +1 -1
  244. package/lib/typescript/v3/components/GestureButtonsProps.d.ts +1 -1
  245. package/lib/typescript/v3/components/GestureButtonsProps.d.ts.map +1 -1
  246. package/lib/typescript/v3/components/GestureComponents.d.ts +3 -0
  247. package/lib/typescript/v3/components/GestureComponents.d.ts.map +1 -1
  248. package/lib/typescript/v3/components/GestureComponents.web.d.ts +4 -0
  249. package/lib/typescript/v3/components/GestureComponents.web.d.ts.map +1 -1
  250. package/lib/typescript/v3/components/Pressable.d.ts.map +1 -1
  251. package/lib/typescript/v3/components/Touchable/Touchable.d.ts.map +1 -1
  252. package/lib/typescript/v3/components/Touchable/TouchableProps.d.ts +48 -1
  253. package/lib/typescript/v3/components/Touchable/TouchableProps.d.ts.map +1 -1
  254. package/lib/typescript/v3/detectors/HostGestureDetector.web.d.ts +1 -1
  255. package/lib/typescript/v3/detectors/HostGestureDetector.web.d.ts.map +1 -1
  256. package/lib/typescript/v3/detectors/NativeDetector.d.ts.map +1 -1
  257. package/lib/typescript/v3/detectors/VirtualDetector/InterceptingGestureDetector.d.ts.map +1 -1
  258. package/lib/typescript/v3/detectors/VirtualDetector/VirtualDetector.d.ts.map +1 -1
  259. package/lib/typescript/v3/detectors/useGestureRelationsUpdater.d.ts +3 -0
  260. package/lib/typescript/v3/detectors/useGestureRelationsUpdater.d.ts.map +1 -0
  261. package/lib/typescript/v3/detectors/useNativeGestureRole.d.ts +3 -0
  262. package/lib/typescript/v3/detectors/useNativeGestureRole.d.ts.map +1 -0
  263. package/lib/typescript/v3/detectors/useNativeGestureRole.web.d.ts +3 -0
  264. package/lib/typescript/v3/detectors/useNativeGestureRole.web.d.ts.map +1 -0
  265. package/lib/typescript/v3/detectors/utils.d.ts +3 -3
  266. package/lib/typescript/v3/detectors/utils.d.ts.map +1 -1
  267. package/lib/typescript/v3/hooks/callbacks/useReanimatedEventHandler.d.ts.map +1 -1
  268. package/lib/typescript/v3/hooks/gestures/fling/useFlingGesture.d.ts +1 -1
  269. package/lib/typescript/v3/hooks/gestures/fling/useFlingGesture.d.ts.map +1 -1
  270. package/lib/typescript/v3/hooks/gestures/hover/useHoverGesture.d.ts +1 -1
  271. package/lib/typescript/v3/hooks/gestures/hover/useHoverGesture.d.ts.map +1 -1
  272. package/lib/typescript/v3/hooks/gestures/longPress/useLongPressGesture.d.ts +1 -1
  273. package/lib/typescript/v3/hooks/gestures/longPress/useLongPressGesture.d.ts.map +1 -1
  274. package/lib/typescript/v3/hooks/gestures/manual/useManualGesture.d.ts +1 -1
  275. package/lib/typescript/v3/hooks/gestures/manual/useManualGesture.d.ts.map +1 -1
  276. package/lib/typescript/v3/hooks/gestures/native/NativeTypes.d.ts +7 -0
  277. package/lib/typescript/v3/hooks/gestures/native/NativeTypes.d.ts.map +1 -1
  278. package/lib/typescript/v3/hooks/gestures/native/useNativeGesture.d.ts +1 -1
  279. package/lib/typescript/v3/hooks/gestures/native/useNativeGesture.d.ts.map +1 -1
  280. package/lib/typescript/v3/hooks/gestures/pan/usePanGesture.d.ts +1 -1
  281. package/lib/typescript/v3/hooks/gestures/pan/usePanGesture.d.ts.map +1 -1
  282. package/lib/typescript/v3/hooks/gestures/pinch/usePinchGesture.d.ts +1 -1
  283. package/lib/typescript/v3/hooks/gestures/pinch/usePinchGesture.d.ts.map +1 -1
  284. package/lib/typescript/v3/hooks/gestures/rotation/useRotationGesture.d.ts +1 -1
  285. package/lib/typescript/v3/hooks/gestures/rotation/useRotationGesture.d.ts.map +1 -1
  286. package/lib/typescript/v3/hooks/gestures/tap/useTapGesture.d.ts +1 -1
  287. package/lib/typescript/v3/hooks/gestures/tap/useTapGesture.d.ts.map +1 -1
  288. package/lib/typescript/v3/hooks/useGesture.d.ts.map +1 -1
  289. package/lib/typescript/v3/hooks/utils/configUtils.d.ts +2 -2
  290. package/lib/typescript/v3/hooks/utils/configUtils.d.ts.map +1 -1
  291. package/lib/typescript/v3/hooks/utils/eventHandlersUtils.d.ts.map +1 -1
  292. package/lib/typescript/v3/hooks/utils/index.d.ts +1 -1
  293. package/lib/typescript/v3/hooks/utils/index.d.ts.map +1 -1
  294. package/lib/typescript/v3/hooks/utils/propsWhiteList.d.ts +2 -2
  295. package/lib/typescript/v3/hooks/utils/propsWhiteList.d.ts.map +1 -1
  296. package/lib/typescript/v3/hooks/utils/reanimatedUtils.d.ts +1 -0
  297. package/lib/typescript/v3/hooks/utils/reanimatedUtils.d.ts.map +1 -1
  298. package/lib/typescript/v3/types/ConfigTypes.d.ts +1 -0
  299. package/lib/typescript/v3/types/ConfigTypes.d.ts.map +1 -1
  300. package/lib/typescript/web/constants.d.ts +1 -0
  301. package/lib/typescript/web/constants.d.ts.map +1 -1
  302. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts.map +1 -1
  303. package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts.map +1 -1
  304. package/lib/typescript/web/handlers/GestureHandler.d.ts +8 -2
  305. package/lib/typescript/web/handlers/GestureHandler.d.ts.map +1 -1
  306. package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +1 -1
  307. package/lib/typescript/web/handlers/HoverGestureHandler.d.ts.map +1 -1
  308. package/lib/typescript/web/handlers/IGestureHandler.d.ts +2 -0
  309. package/lib/typescript/web/handlers/IGestureHandler.d.ts.map +1 -1
  310. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +1 -0
  311. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts.map +1 -1
  312. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +13 -3
  313. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts.map +1 -1
  314. package/lib/typescript/web/handlers/PanGestureHandler.d.ts +1 -0
  315. package/lib/typescript/web/handlers/PanGestureHandler.d.ts.map +1 -1
  316. package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +1 -0
  317. package/lib/typescript/web/handlers/PinchGestureHandler.d.ts.map +1 -1
  318. package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +1 -0
  319. package/lib/typescript/web/handlers/RotationGestureHandler.d.ts.map +1 -1
  320. package/lib/typescript/web/interfaces.d.ts +6 -0
  321. package/lib/typescript/web/interfaces.d.ts.map +1 -1
  322. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +1 -0
  323. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts.map +1 -1
  324. package/lib/typescript/web/tools/GestureLifecycleEvents.d.ts +7 -0
  325. package/lib/typescript/web/tools/GestureLifecycleEvents.d.ts.map +1 -0
  326. package/lib/typescript/web/tools/NodeManager.d.ts +7 -0
  327. package/lib/typescript/web/tools/NodeManager.d.ts.map +1 -1
  328. package/lib/typescript/web/tools/PointerEventManager.d.ts.map +1 -1
  329. package/package.json +3 -3
  330. package/src/RNGestureHandlerModule.web.ts +5 -1
  331. package/src/components/GestureButtons.tsx +33 -16
  332. package/src/components/GestureHandlerButton.tsx +70 -8
  333. package/src/components/GestureHandlerButton.web.tsx +184 -48
  334. package/src/components/Pressable/Pressable.tsx +3 -1
  335. package/src/components/Pressable/PressableProps.tsx +2 -1
  336. package/src/components/Pressable/stateDefinitions.ts +3 -0
  337. package/src/components/ReanimatedDrawerLayout.tsx +27 -23
  338. package/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx +51 -5
  339. package/src/components/ReanimatedSwipeable/ReanimatedSwipeableProps.ts +31 -39
  340. package/src/components/touchables/GenericTouchable.tsx +2 -5
  341. package/src/handlers/gestures/GestureDetector/useDetectorUpdater.ts +1 -2
  342. package/src/handlers/gestures/GestureDetector/utils.ts +11 -53
  343. package/src/handlers/gestures/flingGesture.ts +6 -0
  344. package/src/handlers/gestures/forceTouchGesture.ts +3 -3
  345. package/src/handlers/gestures/gesture.ts +6 -0
  346. package/src/handlers/gestures/gestureComposition.ts +21 -0
  347. package/src/handlers/gestures/gestureObjects.ts +27 -1
  348. package/src/handlers/gestures/gestureStateManager.ts +6 -0
  349. package/src/handlers/gestures/hoverGesture.ts +6 -0
  350. package/src/handlers/gestures/longPressGesture.ts +6 -0
  351. package/src/handlers/gestures/manualGesture.ts +6 -0
  352. package/src/handlers/gestures/nativeGesture.ts +6 -0
  353. package/src/handlers/gestures/panGesture.ts +9 -0
  354. package/src/handlers/gestures/pinchGesture.ts +9 -0
  355. package/src/handlers/gestures/reanimatedWrapper.ts +20 -2
  356. package/src/handlers/gestures/rotationGesture.ts +6 -0
  357. package/src/handlers/gestures/tapGesture.ts +6 -0
  358. package/src/mocks/module.tsx +4 -2
  359. package/src/specs/NativeRNGestureHandlerModule.ts +2 -4
  360. package/src/specs/RNGestureHandlerButtonNativeComponent.ts +28 -13
  361. package/src/v3/NativeProxy.ts +9 -7
  362. package/src/v3/NativeProxy.web.ts +2 -2
  363. package/src/v3/components/GestureButtons.tsx +18 -10
  364. package/src/v3/components/GestureButtonsProps.ts +1 -0
  365. package/src/v3/components/Pressable.tsx +2 -1
  366. package/src/v3/components/Touchable/Touchable.tsx +144 -50
  367. package/src/v3/components/Touchable/TouchableProps.ts +64 -2
  368. package/src/v3/detectors/HostGestureDetector.web.tsx +268 -108
  369. package/src/v3/detectors/NativeDetector.tsx +3 -2
  370. package/src/v3/detectors/VirtualDetector/InterceptingGestureDetector.tsx +3 -4
  371. package/src/v3/detectors/VirtualDetector/VirtualDetector.tsx +5 -2
  372. package/src/v3/detectors/useGestureRelationsUpdater.ts +30 -0
  373. package/src/v3/detectors/useNativeGestureRole.ts +8 -0
  374. package/src/v3/detectors/useNativeGestureRole.web.ts +42 -0
  375. package/src/v3/detectors/utils.ts +28 -12
  376. package/src/v3/hooks/callbacks/useReanimatedEventHandler.ts +23 -7
  377. package/src/v3/hooks/gestures/fling/useFlingGesture.ts +5 -1
  378. package/src/v3/hooks/gestures/hover/useHoverGesture.ts +5 -1
  379. package/src/v3/hooks/gestures/longPress/useLongPressGesture.ts +3 -1
  380. package/src/v3/hooks/gestures/manual/useManualGesture.ts +5 -1
  381. package/src/v3/hooks/gestures/native/NativeTypes.ts +13 -1
  382. package/src/v3/hooks/gestures/native/useNativeGesture.ts +5 -1
  383. package/src/v3/hooks/gestures/pan/usePanGesture.ts +5 -1
  384. package/src/v3/hooks/gestures/pinch/usePinchGesture.ts +5 -1
  385. package/src/v3/hooks/gestures/rotation/useRotationGesture.ts +3 -1
  386. package/src/v3/hooks/gestures/tap/useTapGesture.ts +5 -1
  387. package/src/v3/hooks/useGesture.ts +4 -18
  388. package/src/v3/hooks/utils/configUtils.ts +18 -8
  389. package/src/v3/hooks/utils/eventHandlersUtils.ts +43 -32
  390. package/src/v3/hooks/utils/index.ts +0 -1
  391. package/src/v3/hooks/utils/propsWhiteList.ts +1 -0
  392. package/src/v3/hooks/utils/reanimatedUtils.ts +10 -10
  393. package/src/v3/types/ConfigTypes.ts +1 -0
  394. package/src/web/constants.ts +1 -0
  395. package/src/web/detectors/RotationGestureDetector.ts +19 -5
  396. package/src/web/detectors/ScaleGestureDetector.ts +9 -3
  397. package/src/web/handlers/GestureHandler.ts +36 -6
  398. package/src/web/handlers/HoverGestureHandler.ts +2 -5
  399. package/src/web/handlers/IGestureHandler.ts +2 -0
  400. package/src/web/handlers/ManualGestureHandler.ts +2 -0
  401. package/src/web/handlers/NativeViewGestureHandler.ts +122 -19
  402. package/src/web/handlers/PanGestureHandler.ts +2 -0
  403. package/src/web/handlers/PinchGestureHandler.ts +5 -7
  404. package/src/web/handlers/RotationGestureHandler.ts +5 -5
  405. package/src/web/interfaces.ts +7 -0
  406. package/src/web/tools/GestureHandlerOrchestrator.ts +11 -3
  407. package/src/web/tools/GestureLifecycleEvents.ts +14 -0
  408. package/src/web/tools/NodeManager.ts +57 -0
  409. package/src/web/tools/PointerEventManager.ts +12 -0
  410. package/lib/module/RNRenderer.js +0 -6
  411. package/lib/module/RNRenderer.js.map +0 -1
  412. package/lib/module/RNRenderer.web.js +0 -6
  413. package/lib/module/RNRenderer.web.js.map +0 -1
  414. package/lib/typescript/RNRenderer.d.ts +0 -2
  415. package/lib/typescript/RNRenderer.d.ts.map +0 -1
  416. package/lib/typescript/RNRenderer.web.d.ts +0 -4
  417. package/lib/typescript/RNRenderer.web.d.ts.map +0 -1
  418. package/src/RNRenderer.ts +0 -3
  419. package/src/RNRenderer.web.ts +0 -3
@@ -3,34 +3,84 @@
3
3
  import React, { useCallback, useRef } from 'react';
4
4
  import { Platform } from 'react-native';
5
5
  import GestureHandlerButton from '../../../components/GestureHandlerButton';
6
- import createNativeWrapper from '../../createNativeWrapper';
6
+ import { NativeDetector } from '../../detectors/NativeDetector';
7
+ import { useNativeGesture } from '../../hooks';
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
- const TouchableButton = createNativeWrapper(GestureHandlerButton, {
9
- shouldCancelWhenOutside: true,
10
- shouldActivateOnStart: false
11
- });
12
9
  const isAndroid = Platform.OS === 'android';
13
10
  const TRANSPARENT_RIPPLE = {
14
11
  rippleColor: 'transparent'
15
12
  };
13
+ const DEFAULT_IN_DURATION_MS = 50;
14
+ const DEFAULT_OUT_DURATION_MS = 100;
15
+ var PointerState = /*#__PURE__*/function (PointerState) {
16
+ PointerState[PointerState["UNKNOWN"] = 0] = "UNKNOWN";
17
+ PointerState[PointerState["INSIDE"] = 1] = "INSIDE";
18
+ PointerState[PointerState["OUTSIDE"] = 2] = "OUTSIDE";
19
+ return PointerState;
20
+ }(PointerState || {}); // Clamp user-supplied durations to finite, non-negative milliseconds.
21
+ // Negative, NaN, or Infinity values would produce invalid CSS transitions
22
+ // on web and negative setTimeout delays in branch 3 of the press-out path.
23
+ function sanitizeDuration(value) {
24
+ return Number.isFinite(value) && value >= 0 ? value : 0;
25
+ }
26
+ function resolveAnimationDuration(value) {
27
+ if (value === undefined) {
28
+ return {
29
+ tapAnimationInDuration: DEFAULT_IN_DURATION_MS,
30
+ tapAnimationOutDuration: DEFAULT_OUT_DURATION_MS,
31
+ longPressAnimationOutDuration: DEFAULT_OUT_DURATION_MS,
32
+ hoverAnimationInDuration: DEFAULT_IN_DURATION_MS,
33
+ hoverAnimationOutDuration: DEFAULT_OUT_DURATION_MS
34
+ };
35
+ }
36
+ if (typeof value === 'number') {
37
+ const sanitized = sanitizeDuration(value);
38
+ return {
39
+ tapAnimationInDuration: sanitized,
40
+ tapAnimationOutDuration: sanitized,
41
+ longPressAnimationOutDuration: sanitized,
42
+ hoverAnimationInDuration: sanitized,
43
+ hoverAnimationOutDuration: sanitized
44
+ };
45
+ }
46
+
47
+ // The union guarantees variant 2 supplies top-level `in`/`out`, variant 3
48
+ // supplies both category objects — so per-category fallback to base is
49
+ // always defined for well-typed input; the 0 fallbacks here are unreachable.
50
+ const baseIn = 'in' in value ? value.in : 0;
51
+ const baseOut = 'out' in value ? value.out : 0;
52
+ const tapOut = value.tap?.out ?? baseOut;
53
+ return {
54
+ tapAnimationInDuration: sanitizeDuration(value.tap?.in ?? baseIn),
55
+ tapAnimationOutDuration: sanitizeDuration(tapOut),
56
+ longPressAnimationOutDuration: sanitizeDuration(value.longPress?.out ?? tapOut),
57
+ hoverAnimationInDuration: sanitizeDuration(value.hover?.in ?? baseIn),
58
+ hoverAnimationOutDuration: sanitizeDuration(value.hover?.out ?? baseOut)
59
+ };
60
+ }
16
61
  export const Touchable = props => {
17
62
  const {
18
- underlayColor = 'black',
63
+ underlayColor = 'transparent',
19
64
  defaultUnderlayOpacity = 0,
65
+ activeUnderlayOpacity = 0.105,
20
66
  defaultOpacity = 1,
67
+ animationDuration,
21
68
  androidRipple,
22
69
  delayLongPress = 600,
23
70
  onLongPress,
24
71
  onPress,
25
72
  onPressIn,
26
73
  onPressOut,
27
- onActiveStateChange,
28
74
  children,
29
75
  disabled = false,
76
+ cancelOnLeave = true,
30
77
  ref,
31
78
  ...rest
32
79
  } = props;
80
+ const resolvedDurations = resolveAnimationDuration(animationDuration);
81
+ const resolvedDelayLongPress = sanitizeDuration(delayLongPress);
33
82
  const shouldUseNativeRipple = isAndroid && androidRipple !== undefined;
83
+ const pointerState = useRef(PointerState.UNKNOWN);
34
84
  const longPressDetected = useRef(false);
35
85
  const longPressTimeout = useRef(undefined);
36
86
  const wrappedLongPress = useCallback(() => {
@@ -40,55 +90,92 @@ export const Touchable = props => {
40
90
  const startLongPressTimer = useCallback(() => {
41
91
  longPressDetected.current = false;
42
92
  if (onLongPress && !longPressTimeout.current) {
43
- longPressTimeout.current = setTimeout(wrappedLongPress, delayLongPress);
93
+ longPressTimeout.current = setTimeout(wrappedLongPress, resolvedDelayLongPress);
44
94
  }
45
- }, [onLongPress, delayLongPress, wrappedLongPress]);
95
+ }, [onLongPress, resolvedDelayLongPress, wrappedLongPress]);
46
96
  const onBegin = useCallback(e => {
47
97
  if (!e.pointerInside) {
98
+ pointerState.current = PointerState.OUTSIDE;
48
99
  return;
49
100
  }
50
101
  onPressIn?.(e);
51
102
  startLongPressTimer();
103
+ pointerState.current = PointerState.INSIDE;
52
104
  }, [startLongPressTimer, onPressIn]);
53
105
  const onActivate = useCallback(e => {
54
- onActiveStateChange?.(true);
55
106
  if (!e.pointerInside && longPressTimeout.current !== undefined) {
56
107
  clearTimeout(longPressTimeout.current);
57
108
  longPressTimeout.current = undefined;
58
109
  }
59
- }, [onActiveStateChange]);
60
- const onDeactivate = useCallback(e => {
61
- onActiveStateChange?.(false);
62
- if (!e.canceled && !longPressDetected.current) {
63
- onPress?.(e.pointerInside);
64
- }
65
- }, [onActiveStateChange, onPress]);
110
+ }, []);
66
111
  const onFinalize = useCallback(e => {
67
- onPressOut?.(e);
112
+ if (pointerState.current === PointerState.INSIDE) {
113
+ onPressOut?.(e);
114
+ }
115
+ if (!e.canceled && !longPressDetected.current && e.pointerInside) {
116
+ onPress?.(e);
117
+ }
118
+ pointerState.current = PointerState.UNKNOWN;
68
119
  if (longPressTimeout.current !== undefined) {
69
120
  clearTimeout(longPressTimeout.current);
70
121
  longPressTimeout.current = undefined;
71
122
  }
72
- }, [onPressOut]);
123
+ }, [onPressOut, onPress]);
124
+ const onUpdate = useCallback(e => {
125
+ if (pointerState.current === PointerState.UNKNOWN) {
126
+ return;
127
+ }
128
+ if (e.pointerInside) {
129
+ if (pointerState.current === PointerState.OUTSIDE) {
130
+ onPressIn?.(e);
131
+ }
132
+ pointerState.current = PointerState.INSIDE;
133
+ } else {
134
+ if (pointerState.current === PointerState.INSIDE) {
135
+ onPressOut?.(e);
136
+ if (longPressTimeout.current !== undefined) {
137
+ clearTimeout(longPressTimeout.current);
138
+ longPressTimeout.current = undefined;
139
+ }
140
+ }
141
+ pointerState.current = PointerState.OUTSIDE;
142
+ }
143
+ }, [onPressIn, onPressOut]);
144
+ const nativeGesture = useNativeGesture({
145
+ onBegin,
146
+ onActivate,
147
+ onFinalize,
148
+ onUpdate,
149
+ hitSlop: props.hitSlop,
150
+ testID: props.testID,
151
+ enabled: !disabled,
152
+ shouldCancelWhenOutside: cancelOnLeave,
153
+ disableReanimated: true,
154
+ shouldActivateOnStart: false,
155
+ disallowInterruption: true,
156
+ yieldsToContinuousGestures: true
157
+ });
73
158
  const rippleProps = shouldUseNativeRipple ? {
74
159
  rippleColor: androidRipple?.color,
75
160
  rippleRadius: androidRipple?.radius,
76
161
  borderless: androidRipple?.borderless,
77
162
  foreground: androidRipple?.foreground
78
163
  } : TRANSPARENT_RIPPLE;
79
- return /*#__PURE__*/_jsx(TouchableButton, {
80
- ...rest,
81
- ...rippleProps,
82
- ref: ref ?? null,
83
- enabled: !disabled,
84
- onBegin: onBegin,
85
- onActivate: onActivate,
86
- onDeactivate: onDeactivate,
87
- onFinalize: onFinalize,
88
- defaultOpacity: defaultOpacity,
89
- defaultUnderlayOpacity: defaultUnderlayOpacity,
90
- underlayColor: underlayColor,
91
- children: children
164
+ return /*#__PURE__*/_jsx(NativeDetector, {
165
+ gesture: nativeGesture,
166
+ children: /*#__PURE__*/_jsx(GestureHandlerButton, {
167
+ ...rest,
168
+ ...rippleProps,
169
+ ...resolvedDurations,
170
+ ref: ref ?? null,
171
+ enabled: !disabled,
172
+ defaultOpacity: defaultOpacity,
173
+ defaultUnderlayOpacity: defaultUnderlayOpacity,
174
+ activeUnderlayOpacity: activeUnderlayOpacity,
175
+ underlayColor: underlayColor,
176
+ longPressDuration: resolvedDelayLongPress,
177
+ children: children
178
+ })
92
179
  });
93
180
  };
94
181
  //# sourceMappingURL=Touchable.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useRef","Platform","GestureHandlerButton","createNativeWrapper","jsx","_jsx","TouchableButton","shouldCancelWhenOutside","shouldActivateOnStart","isAndroid","OS","TRANSPARENT_RIPPLE","rippleColor","Touchable","props","underlayColor","defaultUnderlayOpacity","defaultOpacity","androidRipple","delayLongPress","onLongPress","onPress","onPressIn","onPressOut","onActiveStateChange","children","disabled","ref","rest","shouldUseNativeRipple","undefined","longPressDetected","longPressTimeout","wrappedLongPress","current","startLongPressTimer","setTimeout","onBegin","e","pointerInside","onActivate","clearTimeout","onDeactivate","canceled","onFinalize","rippleProps","color","rippleRadius","radius","borderless","foreground","enabled"],"sourceRoot":"../../../../../src","sources":["v3/components/Touchable/Touchable.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useRef","Platform","GestureHandlerButton","NativeDetector","useNativeGesture","jsx","_jsx","isAndroid","OS","TRANSPARENT_RIPPLE","rippleColor","DEFAULT_IN_DURATION_MS","DEFAULT_OUT_DURATION_MS","PointerState","sanitizeDuration","value","Number","isFinite","resolveAnimationDuration","undefined","tapAnimationInDuration","tapAnimationOutDuration","longPressAnimationOutDuration","hoverAnimationInDuration","hoverAnimationOutDuration","sanitized","baseIn","in","baseOut","out","tapOut","tap","longPress","hover","Touchable","props","underlayColor","defaultUnderlayOpacity","activeUnderlayOpacity","defaultOpacity","animationDuration","androidRipple","delayLongPress","onLongPress","onPress","onPressIn","onPressOut","children","disabled","cancelOnLeave","ref","rest","resolvedDurations","resolvedDelayLongPress","shouldUseNativeRipple","pointerState","UNKNOWN","longPressDetected","longPressTimeout","wrappedLongPress","current","startLongPressTimer","setTimeout","onBegin","e","pointerInside","OUTSIDE","INSIDE","onActivate","clearTimeout","onFinalize","canceled","onUpdate","nativeGesture","hitSlop","testID","enabled","shouldCancelWhenOutside","disableReanimated","shouldActivateOnStart","disallowInterruption","yieldsToContinuousGestures","rippleProps","color","rippleRadius","radius","borderless","foreground","gesture","longPressDuration"],"sourceRoot":"../../../../../src","sources":["v3/components/Touchable/Touchable.tsx"],"mappings":"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","ignoreList":[]}
@@ -5,8 +5,124 @@ import { View } from 'react-native';
5
5
  import { ActionType } from '../../ActionType';
6
6
  import RNGestureHandlerModule from '../../RNGestureHandlerModule.web';
7
7
  import { tagMessage } from '../../utils';
8
+ import NodeManager from '../../web/tools/NodeManager';
9
+ import { useNativeGestureRole } from './useNativeGestureRole';
10
+
11
+ // Bundles all per-instance state passed to the standalone helpers below. Holding everything in
12
+ // one stable object keeps the helpers pure (no closures over component-render-scoped values),
13
+ // which means the useEffects don't need them in their deps lists.
8
14
  import { jsx as _jsx } from "react/jsx-runtime";
9
- const EMPTY_HANDLERS = new Set();
15
+ // Invoked from `NodeManager.observeHandler` once the handler is known to exist. Branches on
16
+ // handler kind + actionType to pick the right binding flow. May be called multiple times for
17
+ // the same tag (handler re-registration), so each branch must be idempotent.
18
+ function attachReadyHandler(refs, tag, actionType, virtualViewTag) {
19
+ const handler = RNGestureHandlerModule.getGestureHandlerNode(tag);
20
+ if (actionType === ActionType.NATIVE_DETECTOR && handler.shouldAttachGestureToChildView()) {
21
+ refs.nativeHandlers.add(tag);
22
+ if (refs.viewRef.current != null && refs.viewRef.current.childElementCount > 0) {
23
+ tryAttachNativeHandlersToChildView(refs);
24
+ }
25
+ return;
26
+ }
27
+ if (actionType === ActionType.VIRTUAL_DETECTOR) {
28
+ const child = virtualViewTag != null ? refs.virtualChildren.get(virtualViewTag) : undefined;
29
+ if (child == null || child.viewRef.current == null) {
30
+ return;
31
+ }
32
+ if (!refs.attachedHandlers.has(tag)) {
33
+ RNGestureHandlerModule.attachGestureHandler(tag, child.viewRef.current, actionType, refs.propsRef);
34
+ refs.attachedHandlers.add(tag);
35
+ }
36
+ RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
37
+ userSelect: child.userSelect,
38
+ touchAction: child.touchAction,
39
+ enableContextMenu: child.enableContextMenu
40
+ });
41
+ return;
42
+ }
43
+ if (refs.viewRef.current == null) {
44
+ return;
45
+ }
46
+ if (!refs.attachedHandlers.has(tag)) {
47
+ RNGestureHandlerModule.attachGestureHandler(tag, refs.viewRef.current, actionType, refs.propsRef);
48
+ refs.attachedHandlers.add(tag);
49
+ }
50
+ RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
51
+ userSelect: refs.propsRef.current.userSelect,
52
+ touchAction: refs.propsRef.current.touchAction,
53
+ enableContextMenu: refs.propsRef.current.enableContextMenu
54
+ });
55
+ }
56
+ function tryAttachNativeHandlersToChildView(refs) {
57
+ if (refs.nativeHandlers.size === 0) {
58
+ return;
59
+ }
60
+ const view = refs.viewRef.current;
61
+ if (view == null) {
62
+ return;
63
+ }
64
+ if (view.childElementCount > 1) {
65
+ throw new Error(tagMessage('Cannot have more than one child view when native gesture handlers are attached to the detector'));
66
+ }
67
+ const target = view.firstElementChild;
68
+ if (target == null) {
69
+ return;
70
+ }
71
+ for (const tag of refs.nativeHandlers) {
72
+ // A tag may be in `nativeHandlers` from an earlier ready callback but the underlying
73
+ // handler may have been dropped since. Skip — a re-registration fires the observation again.
74
+ if (!NodeManager.hasHandler(tag)) {
75
+ continue;
76
+ }
77
+ if (refs.attachedHandlers.has(tag)) {
78
+ continue;
79
+ }
80
+ RNGestureHandlerModule.attachGestureHandler(tag, target, ActionType.NATIVE_DETECTOR, refs.propsRef);
81
+ refs.attachedHandlers.add(tag);
82
+ RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
83
+ userSelect: refs.propsRef.current.userSelect,
84
+ touchAction: refs.propsRef.current.touchAction,
85
+ enableContextMenu: refs.propsRef.current.enableContextMenu
86
+ });
87
+ }
88
+ }
89
+
90
+ // Reconcile `subscribedSet` against `currentTags`: observe new tags, cancel observation and
91
+ // detach for tags no longer present. The ready callback set up here is responsible for actually
92
+ // binding the handler once it exists.
93
+ function syncSubscriptions(refs, currentTags, subscribedSet, actionType, virtualViewTag) {
94
+ const toUnsubscribe = new Set(subscribedSet);
95
+ for (const tag of currentTags) {
96
+ toUnsubscribe.delete(tag);
97
+ if (subscribedSet.has(tag)) {
98
+ continue;
99
+ }
100
+ NodeManager.observeHandler(tag, refs.owner, () => {
101
+ attachReadyHandler(refs, tag, actionType, virtualViewTag);
102
+ });
103
+ subscribedSet.add(tag);
104
+ }
105
+ for (const tag of toUnsubscribe) {
106
+ NodeManager.cancelObservation(tag, refs.owner);
107
+ if (refs.attachedHandlers.has(tag)) {
108
+ RNGestureHandlerModule.detachGestureHandler(tag);
109
+ refs.attachedHandlers.delete(tag);
110
+ }
111
+ subscribedSet.delete(tag);
112
+ refs.nativeHandlers.delete(tag);
113
+ }
114
+ }
115
+ function teardown(refs) {
116
+ NodeManager.cancelAllObservationsForOwner(refs.owner);
117
+ for (const tag of refs.attachedHandlers) {
118
+ RNGestureHandlerModule.detachGestureHandler(tag);
119
+ }
120
+ refs.attachedHandlers.clear();
121
+ refs.subscribedHandlers.clear();
122
+ refs.nativeHandlers.clear();
123
+ refs.subscribedVirtualHandlers.clear();
124
+ refs.virtualChildren.clear();
125
+ }
10
126
  const HostGestureDetector = props => {
11
127
  const {
12
128
  handlerTags,
@@ -15,41 +131,36 @@ const HostGestureDetector = props => {
15
131
  const handlerTagsSet = useMemo(() => new Set(handlerTags), [...handlerTags]);
16
132
  const viewRef = useRef(null);
17
133
  const propsRef = useRef(props);
18
- const attachedHandlers = useRef(new Set());
19
- const attachedNativeHandlers = useRef(new Set());
20
- const attachedVirtualHandlers = useRef(new Map());
21
- const detachHandlers = (currentHandlerTags, attachedHandlerTags) => {
22
- const oldHandlerTags = attachedHandlerTags.difference(currentHandlerTags);
23
- oldHandlerTags.forEach(tag => {
24
- RNGestureHandlerModule.detachGestureHandler(tag);
25
- attachedHandlerTags.delete(tag);
26
- });
27
- };
28
- const attachHandlers = (viewRef, propsRef, currentHandlerTags, attachedHandlerTags, actionType) => {
29
- const newHandlerTags = currentHandlerTags.difference(attachedHandlerTags);
30
- newHandlerTags.forEach(tag => {
31
- if (RNGestureHandlerModule.getGestureHandlerNode(tag).shouldAttachGestureToChildView() && actionType === ActionType.NATIVE_DETECTOR) {
32
- if (viewRef.current.childElementCount > 1) {
33
- throw new Error(tagMessage('Cannot have more than one child view when native gesture handlers are attached to the detector'));
34
- }
35
- RNGestureHandlerModule.attachGestureHandler(tag, viewRef.current.firstChild, actionType, propsRef);
36
- attachedNativeHandlers.current.add(tag);
37
- } else {
38
- RNGestureHandlerModule.attachGestureHandler(tag, viewRef.current, actionType, propsRef);
39
- }
40
- attachedHandlerTags.add(tag);
41
- RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
42
- userSelect: props.userSelect,
43
- touchAction: props.touchAction,
44
- enableContextMenu: props.enableContextMenu
45
- });
46
- });
47
- };
134
+
135
+ // Stable per-instance state
136
+ const refsRef = useRef(null);
137
+ if (refsRef.current === null) {
138
+ refsRef.current = {
139
+ owner: {},
140
+ viewRef,
141
+ propsRef,
142
+ subscribedHandlers: new Set(),
143
+ attachedHandlers: new Set(),
144
+ nativeHandlers: new Set(),
145
+ subscribedVirtualHandlers: new Map(),
146
+ virtualChildren: new Map()
147
+ };
148
+ }
149
+ const refs = refsRef.current;
150
+ useNativeGestureRole(viewRef, children);
151
+
152
+ // Keep propsRef in sync and re-apply detector-level DOM props to top-level attached handlers
153
+ // when they change. Virtual children get their own (potentially different) DOM props applied
154
+ // in the virtualChildren effect below, so we only touch top-level subscribers here.
48
155
  useEffect(() => {
49
156
  const shouldUpdateDOMProps = propsRef.current.userSelect !== props.userSelect || propsRef.current.touchAction !== props.touchAction || propsRef.current.enableContextMenu !== props.enableContextMenu;
50
157
  propsRef.current = props;
51
158
  if (shouldUpdateDOMProps) {
52
- for (const tag of attachedHandlers.current) {
159
+ // attachedHandlers subscribedHandlers subscribedVirtualHandlers, we want to ignore the
160
+ // handlers attached by the virtual detectors not to overwrite their DOM props.
161
+ const claimedByVirtual = Array.from(refs.subscribedVirtualHandlers.values()).reduce((acc, current) => acc.union(current), new Set());
162
+ const handlersToUpdate = refs.subscribedHandlers.intersection(refs.attachedHandlers).difference(claimedByVirtual);
163
+ for (const tag of handlersToUpdate) {
53
164
  RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
54
165
  userSelect: props.userSelect,
55
166
  touchAction: props.touchAction,
@@ -57,46 +168,56 @@ const HostGestureDetector = props => {
57
168
  });
58
169
  }
59
170
  }
60
- }, [props]);
171
+ }, [props, refs]);
61
172
  useEffect(() => {
62
- detachHandlers(handlerTagsSet, attachedHandlers.current);
63
- attachHandlers(viewRef, propsRef, handlerTagsSet, attachedHandlers.current, ActionType.NATIVE_DETECTOR);
64
- return () => {
65
- detachHandlers(EMPTY_HANDLERS, attachedHandlers.current);
66
- attachedVirtualHandlers?.current.forEach(childHandlerTags => {
67
- detachHandlers(EMPTY_HANDLERS, childHandlerTags);
68
- });
69
- };
70
- }, [handlerTagsSet, viewRef]);
173
+ syncSubscriptions(refs, handlerTagsSet, refs.subscribedHandlers, ActionType.NATIVE_DETECTOR);
174
+ }, [handlerTagsSet, refs]);
71
175
  useEffect(() => {
72
- const virtualChildrenToDetach = new Set(attachedVirtualHandlers.current.keys());
176
+ // Refresh the snapshot used by the ready callback so re-fires read current child props.
177
+ refs.virtualChildren.clear();
73
178
  props.virtualChildren?.forEach(child => {
74
- virtualChildrenToDetach.delete(child.viewTag);
179
+ refs.virtualChildren.set(child.viewTag, child);
75
180
  });
76
- virtualChildrenToDetach.forEach(tag => {
77
- detachHandlers(EMPTY_HANDLERS, attachedVirtualHandlers.current.get(tag));
181
+ const virtualChildrenToDetach = new Set(refs.subscribedVirtualHandlers.keys());
182
+ props.virtualChildren?.forEach(child => {
183
+ virtualChildrenToDetach.delete(child.viewTag);
78
184
  });
185
+ for (const viewTag of virtualChildrenToDetach) {
186
+ const tags = refs.subscribedVirtualHandlers.get(viewTag);
187
+ if (tags != null) {
188
+ syncSubscriptions(refs, [], tags, ActionType.VIRTUAL_DETECTOR, viewTag);
189
+ }
190
+ refs.subscribedVirtualHandlers.delete(viewTag);
191
+ }
79
192
  props.virtualChildren?.forEach(child => {
80
193
  if (child.viewRef.current == null) {
81
194
  // We must check whether viewRef is not null as otherwise we get an error when intercepting gesture detector
82
195
  // switches its component based on whether animated/reanimated events should run.
83
196
  return;
84
197
  }
85
- if (!attachedVirtualHandlers.current.has(child.viewTag)) {
86
- attachedVirtualHandlers.current.set(child.viewTag, new Set());
198
+ let subs = refs.subscribedVirtualHandlers.get(child.viewTag);
199
+ if (subs == null) {
200
+ subs = new Set();
201
+ refs.subscribedVirtualHandlers.set(child.viewTag, subs);
202
+ }
203
+ syncSubscriptions(refs, child.handlerTags, subs, ActionType.VIRTUAL_DETECTOR, child.viewTag);
204
+ // Re-apply per-child DOM props on every run. Already-attached tags need this when only
205
+ // the child's props change; tags attached via a sync-fired observer already had it
206
+ // applied in `attachReadyHandler`, so this is a no-op for them.
207
+ for (const tag of subs) {
208
+ if (refs.attachedHandlers.has(tag)) {
209
+ RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
210
+ userSelect: child.userSelect,
211
+ touchAction: child.touchAction,
212
+ enableContextMenu: child.enableContextMenu
213
+ });
214
+ }
87
215
  }
88
- const currentHandlerTags = new Set(child.handlerTags);
89
- detachHandlers(currentHandlerTags, attachedVirtualHandlers.current.get(child.viewTag));
90
- attachHandlers(child.viewRef, propsRef, currentHandlerTags, attachedVirtualHandlers.current.get(child.viewTag), ActionType.VIRTUAL_DETECTOR);
91
- currentHandlerTags.forEach(tag => {
92
- RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
93
- userSelect: child.userSelect,
94
- touchAction: child.touchAction,
95
- enableContextMenu: child.enableContextMenu
96
- });
97
- });
98
216
  });
99
- }, [props.virtualChildren]);
217
+ }, [props.virtualChildren, refs]);
218
+ useEffect(() => {
219
+ return () => teardown(refs);
220
+ }, [refs]);
100
221
  return /*#__PURE__*/_jsx(View, {
101
222
  style: {
102
223
  display: 'contents'
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useMemo","useRef","View","ActionType","RNGestureHandlerModule","tagMessage","jsx","_jsx","EMPTY_HANDLERS","Set","HostGestureDetector","props","handlerTags","children","handlerTagsSet","viewRef","propsRef","attachedHandlers","attachedNativeHandlers","attachedVirtualHandlers","Map","detachHandlers","currentHandlerTags","attachedHandlerTags","oldHandlerTags","difference","forEach","tag","detachGestureHandler","delete","attachHandlers","actionType","newHandlerTags","getGestureHandlerNode","shouldAttachGestureToChildView","NATIVE_DETECTOR","current","childElementCount","Error","attachGestureHandler","firstChild","add","updateGestureHandlerConfig","userSelect","touchAction","enableContextMenu","shouldUpdateDOMProps","childHandlerTags","virtualChildrenToDetach","keys","virtualChildren","child","viewTag","get","has","set","VIRTUAL_DETECTOR","style","display","ref"],"sourceRoot":"../../../../src","sources":["v3/detectors/HostGestureDetector.web.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useMemo","useRef","View","ActionType","RNGestureHandlerModule","tagMessage","NodeManager","useNativeGestureRole","jsx","_jsx","attachReadyHandler","refs","tag","actionType","virtualViewTag","handler","getGestureHandlerNode","NATIVE_DETECTOR","shouldAttachGestureToChildView","nativeHandlers","add","viewRef","current","childElementCount","tryAttachNativeHandlersToChildView","VIRTUAL_DETECTOR","child","virtualChildren","get","undefined","attachedHandlers","has","attachGestureHandler","propsRef","updateGestureHandlerConfig","userSelect","touchAction","enableContextMenu","size","view","Error","target","firstElementChild","hasHandler","syncSubscriptions","currentTags","subscribedSet","toUnsubscribe","Set","delete","observeHandler","owner","cancelObservation","detachGestureHandler","teardown","cancelAllObservationsForOwner","clear","subscribedHandlers","subscribedVirtualHandlers","HostGestureDetector","props","handlerTags","children","handlerTagsSet","refsRef","Map","shouldUpdateDOMProps","claimedByVirtual","Array","from","values","reduce","acc","union","handlersToUpdate","intersection","difference","forEach","set","viewTag","virtualChildrenToDetach","keys","tags","subs","style","display","ref"],"sourceRoot":"../../../../src","sources":["v3/detectors/HostGestureDetector.web.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,8 @@ import { isComposedGesture } from '../hooks/utils/relationUtils';
6
6
  import { AnimatedNativeDetector, nativeDetectorStyles } from './common';
7
7
  import HostGestureDetector from './HostGestureDetector';
8
8
  import { ReanimatedNativeDetector } from './ReanimatedNativeDetector';
9
- import { configureRelations, ensureNativeDetectorComponent } from './utils';
9
+ import { useGestureRelationsUpdater } from './useGestureRelationsUpdater';
10
+ import { ensureNativeDetectorComponent } from './utils';
10
11
  import { jsx as _jsx } from "react/jsx-runtime";
11
12
  export function NativeDetector({
12
13
  gesture,
@@ -17,7 +18,7 @@ export function NativeDetector({
17
18
  }) {
18
19
  const NativeDetectorComponent = gesture.config.dispatchesAnimatedEvents ? AnimatedNativeDetector : gesture.config.shouldUseReanimatedDetector ? ReanimatedNativeDetector : HostGestureDetector;
19
20
  ensureNativeDetectorComponent(NativeDetectorComponent);
20
- configureRelations(gesture);
21
+ useGestureRelationsUpdater(gesture);
21
22
  const handlerTags = useMemo(() => {
22
23
  return isComposedGesture(gesture) ? gesture.handlerTags : [gesture.handlerTag];
23
24
  }, [gesture]);
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","Platform","isComposedGesture","AnimatedNativeDetector","nativeDetectorStyles","HostGestureDetector","ReanimatedNativeDetector","configureRelations","ensureNativeDetectorComponent","jsx","_jsx","NativeDetector","gesture","children","touchAction","userSelect","enableContextMenu","NativeDetectorComponent","config","dispatchesAnimatedEvents","shouldUseReanimatedDetector","handlerTags","handlerTag","reanimatedHandlers","OS","onGestureHandlerReanimatedEvent","detectorCallbacks","reanimatedEventHandler","onGestureHandlerReanimatedStateChange","onGestureHandlerReanimatedTouchEvent","pointerEvents","onGestureHandlerStateChange","jsEventHandler","onGestureHandlerEvent","onGestureHandlerTouchEvent","onGestureHandlerAnimatedEvent","animatedEventHandler","moduleId","globalThis","_RNGH_MODULE_ID","style","detector"],"sourceRoot":"../../../../src","sources":["v3/detectors/NativeDetector.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,iBAAiB,QAAQ,8BAA8B;AAEhE,SAASC,sBAAsB,EAAEC,oBAAoB,QAAQ,UAAU;AACvE,OAAOC,mBAAmB,MAAM,uBAAuB;AACvD,SAASC,wBAAwB,QAAQ,4BAA4B;AACrE,SAASC,kBAAkB,EAAEC,6BAA6B,QAAQ,SAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE5E,OAAO,SAASC,cAAcA,CAI5B;EACAC,OAAO;EACPC,QAAQ;EACRC,WAAW;EACXC,UAAU;EACVC;AACgE,CAAC,EAAE;EACnE,MAAMC,uBAAuB,GAAGL,OAAO,CAACM,MAAM,CAACC,wBAAwB,GACnEhB,sBAAsB,GACtBS,OAAO,CAACM,MAAM,CAACE,2BAA2B,GACxCd,wBAAwB,GACxBD,mBAAmB;EAEzBG,6BAA6B,CAACS,uBAAuB,CAAC;EACtDV,kBAAkB,CAACK,OAAO,CAAC;EAE3B,MAAMS,WAAW,GAAGrB,OAAO,CAAC,MAAM;IAChC,OAAOE,iBAAiB,CAACU,OAAO,CAAC,GAC7BA,OAAO,CAACS,WAAW,GACnB,CAACT,OAAO,CAACU,UAAU,CAAC;EAC1B,CAAC,EAAE,CAACV,OAAO,CAAC,CAAC;;EAEb;EACA;EACA;EACA;EACA;EACA;EACA,MAAMW,kBAAkB,GACtBtB,QAAQ,CAACuB,EAAE,KAAK,KAAK,GACjB;IACEC,+BAA+B,EAC7Bb,OAAO,CAACc,iBAAiB,CAACC,sBAAsB;IAClDC,qCAAqC,EACnChB,OAAO,CAACc,iBAAiB,CAACC,sBAAsB;IAClDE,oCAAoC,EAClCjB,OAAO,CAACc,iBAAiB,CAACC;EAC9B,CAAC,GACD;IACEF,+BAA+B,EAC7Bb,OAAO,CAACc,iBAAiB,CAACC;EAC9B,CAAC;EAEP,oBACEjB,IAAA,CAACO,uBAAuB;IACtBH,WAAW,EAAEA,WAAY;IACzBC,UAAU,EAAEA,UAAW;IACvBC,iBAAiB,EAAEA,iBAAkB;IACrCc,aAAa,EAAE;IACf;IAAA;IACAC,2BAA2B,EAAEnB,OAAO,CAACc,iBAAiB,CAACM;IACvD;IAAA;IACAC,qBAAqB,EAAErB,OAAO,CAACc,iBAAiB,CAACM;IACjD;IAAA;IACAE,0BAA0B,EAAEtB,OAAO,CAACc,iBAAiB,CAACM;IACtD;IAAA;IACAJ,qCAAqC,EACnCL,kBAAkB,CAACK;IAErB;IAAA;IACAH,+BAA+B,EAC7BF,kBAAkB,CAACE;IAErB;IAAA;IACAI,oCAAoC,EAClCN,kBAAkB,CAACM;IAErB;IAAA;IACAM,6BAA6B,EAC3BvB,OAAO,CAACc,iBAAiB,CAACU,oBAC3B;IACDC,QAAQ,EAAEC,UAAU,CAACC,eAAgB;IACrClB,WAAW,EAAEA,WAAY;IACzBmB,KAAK,EAAEpC,oBAAoB,CAACqC,QAAS;IAAA5B,QAAA,EACpCA;EAAQ,CACc,CAAC;AAE9B","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","Platform","isComposedGesture","AnimatedNativeDetector","nativeDetectorStyles","HostGestureDetector","ReanimatedNativeDetector","useGestureRelationsUpdater","ensureNativeDetectorComponent","jsx","_jsx","NativeDetector","gesture","children","touchAction","userSelect","enableContextMenu","NativeDetectorComponent","config","dispatchesAnimatedEvents","shouldUseReanimatedDetector","handlerTags","handlerTag","reanimatedHandlers","OS","onGestureHandlerReanimatedEvent","detectorCallbacks","reanimatedEventHandler","onGestureHandlerReanimatedStateChange","onGestureHandlerReanimatedTouchEvent","pointerEvents","onGestureHandlerStateChange","jsEventHandler","onGestureHandlerEvent","onGestureHandlerTouchEvent","onGestureHandlerAnimatedEvent","animatedEventHandler","moduleId","globalThis","_RNGH_MODULE_ID","style","detector"],"sourceRoot":"../../../../src","sources":["v3/detectors/NativeDetector.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,iBAAiB,QAAQ,8BAA8B;AAEhE,SAASC,sBAAsB,EAAEC,oBAAoB,QAAQ,UAAU;AACvE,OAAOC,mBAAmB,MAAM,uBAAuB;AACvD,SAASC,wBAAwB,QAAQ,4BAA4B;AACrE,SAASC,0BAA0B,QAAQ,8BAA8B;AACzE,SAASC,6BAA6B,QAAQ,SAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExD,OAAO,SAASC,cAAcA,CAI5B;EACAC,OAAO;EACPC,QAAQ;EACRC,WAAW;EACXC,UAAU;EACVC;AACgE,CAAC,EAAE;EACnE,MAAMC,uBAAuB,GAAGL,OAAO,CAACM,MAAM,CAACC,wBAAwB,GACnEhB,sBAAsB,GACtBS,OAAO,CAACM,MAAM,CAACE,2BAA2B,GACxCd,wBAAwB,GACxBD,mBAAmB;EAEzBG,6BAA6B,CAACS,uBAAuB,CAAC;EACtDV,0BAA0B,CAACK,OAAO,CAAC;EAEnC,MAAMS,WAAW,GAAGrB,OAAO,CAAC,MAAM;IAChC,OAAOE,iBAAiB,CAACU,OAAO,CAAC,GAC7BA,OAAO,CAACS,WAAW,GACnB,CAACT,OAAO,CAACU,UAAU,CAAC;EAC1B,CAAC,EAAE,CAACV,OAAO,CAAC,CAAC;;EAEb;EACA;EACA;EACA;EACA;EACA;EACA,MAAMW,kBAAkB,GACtBtB,QAAQ,CAACuB,EAAE,KAAK,KAAK,GACjB;IACEC,+BAA+B,EAC7Bb,OAAO,CAACc,iBAAiB,CAACC,sBAAsB;IAClDC,qCAAqC,EACnChB,OAAO,CAACc,iBAAiB,CAACC,sBAAsB;IAClDE,oCAAoC,EAClCjB,OAAO,CAACc,iBAAiB,CAACC;EAC9B,CAAC,GACD;IACEF,+BAA+B,EAC7Bb,OAAO,CAACc,iBAAiB,CAACC;EAC9B,CAAC;EAEP,oBACEjB,IAAA,CAACO,uBAAuB;IACtBH,WAAW,EAAEA,WAAY;IACzBC,UAAU,EAAEA,UAAW;IACvBC,iBAAiB,EAAEA,iBAAkB;IACrCc,aAAa,EAAE;IACf;IAAA;IACAC,2BAA2B,EAAEnB,OAAO,CAACc,iBAAiB,CAACM;IACvD;IAAA;IACAC,qBAAqB,EAAErB,OAAO,CAACc,iBAAiB,CAACM;IACjD;IAAA;IACAE,0BAA0B,EAAEtB,OAAO,CAACc,iBAAiB,CAACM;IACtD;IAAA;IACAJ,qCAAqC,EACnCL,kBAAkB,CAACK;IAErB;IAAA;IACAH,+BAA+B,EAC7BF,kBAAkB,CAACE;IAErB;IAAA;IACAI,oCAAoC,EAClCN,kBAAkB,CAACM;IAErB;IAAA;IACAM,6BAA6B,EAC3BvB,OAAO,CAACc,iBAAiB,CAACU,oBAC3B;IACDC,QAAQ,EAAEC,UAAU,CAACC,eAAgB;IACrClB,WAAW,EAAEA,WAAY;IACzBmB,KAAK,EAAEpC,oBAAoB,CAACqC,QAAS;IAAA5B,QAAA,EACpCA;EAAQ,CACc,CAAC;AAE9B","ignoreList":[]}
@@ -9,7 +9,8 @@ import { AnimatedNativeDetector, nativeDetectorStyles } from '../common';
9
9
  import HostGestureDetector from '../HostGestureDetector';
10
10
  import { ReanimatedNativeDetector } from '../ReanimatedNativeDetector';
11
11
  import { useEnsureGestureHandlerRootView } from '../useEnsureGestureHandlerRootView';
12
- import { configureRelations, ensureNativeDetectorComponent } from '../utils';
12
+ import { useGestureRelationsUpdater } from '../useGestureRelationsUpdater';
13
+ import { ensureNativeDetectorComponent } from '../utils';
13
14
  import { InterceptingDetectorContext, InterceptingDetectorMode } from './useInterceptingDetectorContext';
14
15
  import { jsx as _jsx } from "react/jsx-runtime";
15
16
  export function InterceptingGestureDetector({
@@ -104,9 +105,7 @@ export function InterceptingGestureDetector({
104
105
  const reanimatedEvents = useMemo(() => getHandlers('reanimatedEventHandler'), [getHandlers]);
105
106
  const reanimatedEventHandler = Reanimated?.useComposedEventHandler(reanimatedEvents);
106
107
  ensureNativeDetectorComponent(NativeDetectorComponent);
107
- if (gesture) {
108
- configureRelations(gesture);
109
- }
108
+ useGestureRelationsUpdater(gesture);
110
109
  const handlerTags = useMemo(() => {
111
110
  if (gesture) {
112
111
  return isComposedGesture(gesture) ? gesture.handlerTags : [gesture.handlerTag];