react-native-gesture-handler 2.17.1 → 2.18.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (429) hide show
  1. package/ReanimatedSwipeable/package.json +6 -0
  2. package/android/build.gradle +0 -103
  3. package/android/gradle.properties +0 -7
  4. package/android/paper/src/main/java/com/swmansion/gesturehandler/NativeRNGestureHandlerModuleSpec.java +22 -10
  5. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +1 -1
  6. package/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt +16 -0
  7. package/android/src/main/java/com/swmansion/gesturehandler/core/PinchGestureHandler.kt +7 -8
  8. package/android/src/main/java/com/swmansion/gesturehandler/core/RotationGestureDetector.kt +14 -4
  9. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +3 -1
  10. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +3 -1
  11. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +2 -1
  12. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +8 -7
  13. package/android/src/main/jni/cpp-adapter.cpp +2 -2
  14. package/apple/Handlers/RNFlingHandler.m +1 -0
  15. package/apple/Handlers/RNForceTouchHandler.m +2 -0
  16. package/apple/Handlers/RNLongPressHandler.m +2 -1
  17. package/apple/Handlers/RNManualHandler.m +1 -0
  18. package/apple/Handlers/RNNativeViewHandler.mm +31 -27
  19. package/apple/Handlers/RNPanHandler.m +1 -0
  20. package/apple/Handlers/RNPinchHandler.m +1 -0
  21. package/apple/Handlers/RNRotationHandler.m +1 -0
  22. package/apple/Handlers/RNTapHandler.m +1 -0
  23. package/apple/RNGestureHandlerModule.mm +1 -2
  24. package/apple/RNRootViewGestureRecognizer.m +5 -0
  25. package/lib/commonjs/Directions.js +2 -2
  26. package/lib/commonjs/Directions.js.map +1 -1
  27. package/lib/commonjs/RNGestureHandlerModule.web.js +2 -2
  28. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  29. package/lib/commonjs/components/DrawerLayout.js +2 -2
  30. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  31. package/lib/commonjs/components/GestureButtons.js +3 -3
  32. package/lib/commonjs/components/GestureButtons.js.map +1 -1
  33. package/lib/commonjs/components/GestureButtonsProps.js +6 -0
  34. package/lib/commonjs/components/GestureButtonsProps.js.map +1 -0
  35. package/lib/commonjs/components/GestureComponents.js +1 -1
  36. package/lib/commonjs/components/GestureComponents.js.map +1 -1
  37. package/lib/commonjs/components/GestureHandlerButton.js.map +1 -1
  38. package/lib/commonjs/components/GestureHandlerRootView.android.js +1 -1
  39. package/lib/commonjs/components/GestureHandlerRootView.android.js.map +1 -1
  40. package/lib/commonjs/components/GestureHandlerRootView.js +1 -1
  41. package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -1
  42. package/lib/commonjs/components/Pressable/Pressable.js +334 -0
  43. package/lib/commonjs/components/Pressable/Pressable.js.map +1 -0
  44. package/lib/commonjs/components/Pressable/PressableProps.js +6 -0
  45. package/lib/commonjs/components/Pressable/PressableProps.js.map +1 -0
  46. package/lib/commonjs/components/Pressable/index.js +24 -0
  47. package/lib/commonjs/components/Pressable/index.js.map +1 -0
  48. package/lib/commonjs/components/Pressable/utils.js +136 -0
  49. package/lib/commonjs/components/Pressable/utils.js.map +1 -0
  50. package/lib/commonjs/components/ReanimatedSwipeable.js +317 -0
  51. package/lib/commonjs/components/ReanimatedSwipeable.js.map +1 -0
  52. package/lib/commonjs/components/Swipeable.js +8 -3
  53. package/lib/commonjs/components/Swipeable.js.map +1 -1
  54. package/lib/commonjs/components/touchables/GenericTouchable.js +4 -4
  55. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
  56. package/lib/commonjs/components/touchables/GenericTouchableProps.js +6 -0
  57. package/lib/commonjs/components/touchables/GenericTouchableProps.js.map +1 -0
  58. package/lib/commonjs/components/touchables/TouchableHighlight.js.map +1 -1
  59. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +1 -1
  60. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
  61. package/lib/commonjs/components/touchables/TouchableNativeFeedbackProps.js +6 -0
  62. package/lib/commonjs/components/touchables/TouchableNativeFeedbackProps.js.map +1 -0
  63. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
  64. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +1 -1
  65. package/lib/commonjs/getShadowNodeFromRef.js +2 -2
  66. package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
  67. package/lib/commonjs/ghQueueMicrotask.js +3 -4
  68. package/lib/commonjs/ghQueueMicrotask.js.map +1 -1
  69. package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -1
  70. package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -1
  71. package/lib/commonjs/handlers/GestureHandlerEventPayload.js +2 -0
  72. package/lib/commonjs/handlers/GestureHandlerEventPayload.js.map +1 -0
  73. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
  74. package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
  75. package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
  76. package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -1
  77. package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -1
  78. package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
  79. package/lib/commonjs/handlers/createHandler.js +21 -19
  80. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  81. package/lib/commonjs/handlers/createNativeWrapper.js +3 -3
  82. package/lib/commonjs/handlers/createNativeWrapper.js.map +1 -1
  83. package/lib/commonjs/handlers/gestureHandlerCommon.js +0 -86
  84. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
  85. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
  86. package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js +9 -9
  87. package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
  88. package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js +2 -2
  89. package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js.map +1 -1
  90. package/lib/commonjs/handlers/gestures/GestureDetector/index.js +1 -1
  91. package/lib/commonjs/handlers/gestures/GestureDetector/index.js.map +1 -1
  92. package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js +21 -31
  93. package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
  94. package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js +1 -1
  95. package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
  96. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +5 -5
  97. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js.map +1 -1
  98. package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -1
  99. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -1
  100. package/lib/commonjs/handlers/gestures/gesture.js +7 -7
  101. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
  102. package/lib/commonjs/handlers/gestures/gestureComposition.js +5 -5
  103. package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -1
  104. package/lib/commonjs/handlers/gestures/gestureStateManager.js +1 -1
  105. package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -1
  106. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
  107. package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -1
  108. package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -1
  109. package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -1
  110. package/lib/commonjs/handlers/gestures/rotationGesture.js.map +1 -1
  111. package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -1
  112. package/lib/commonjs/handlers/getNextHandlerTag.js +12 -0
  113. package/lib/commonjs/handlers/getNextHandlerTag.js.map +1 -0
  114. package/lib/commonjs/handlers/handlersRegistry.js +0 -6
  115. package/lib/commonjs/handlers/handlersRegistry.js.map +1 -1
  116. package/lib/commonjs/handlers/utils.js +91 -0
  117. package/lib/commonjs/handlers/utils.js.map +1 -0
  118. package/lib/commonjs/index.js +8 -0
  119. package/lib/commonjs/index.js.map +1 -1
  120. package/lib/commonjs/init.js +1 -1
  121. package/lib/commonjs/init.js.map +1 -1
  122. package/lib/commonjs/jestUtils/jestUtils.js +2 -2
  123. package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
  124. package/lib/commonjs/mocks.js +2 -2
  125. package/lib/commonjs/mocks.js.map +1 -1
  126. package/lib/commonjs/utils.js +1 -1
  127. package/lib/commonjs/utils.js.map +1 -1
  128. package/lib/commonjs/web/Gestures.js +1 -1
  129. package/lib/commonjs/web/Gestures.js.map +1 -1
  130. package/lib/commonjs/web/detectors/RotationGestureDetector.js +1 -1
  131. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
  132. package/lib/commonjs/web/detectors/ScaleGestureDetector.js +4 -4
  133. package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -1
  134. package/lib/commonjs/web/handlers/FlingGestureHandler.js +1 -1
  135. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  136. package/lib/commonjs/web/handlers/GestureHandler.js +6 -11
  137. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  138. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +1 -1
  139. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
  140. package/lib/commonjs/web/handlers/PanGestureHandler.js +1 -1
  141. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  142. package/lib/commonjs/web/handlers/TapGestureHandler.js +1 -1
  143. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
  144. package/lib/commonjs/web/tools/EventManager.js +2 -2
  145. package/lib/commonjs/web/tools/EventManager.js.map +1 -1
  146. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +4 -11
  147. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  148. package/lib/commonjs/web/tools/LeastSquareSolver.js +18 -18
  149. package/lib/commonjs/web/tools/LeastSquareSolver.js.map +1 -1
  150. package/lib/commonjs/web/tools/PointerEventManager.js +2 -2
  151. package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
  152. package/lib/commonjs/web/tools/PointerTracker.js +1 -1
  153. package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
  154. package/lib/commonjs/web/tools/TouchEventManager.js +4 -4
  155. package/lib/commonjs/web/tools/TouchEventManager.js.map +1 -1
  156. package/lib/commonjs/web/tools/VelocityTracker.js +6 -6
  157. package/lib/commonjs/web/tools/VelocityTracker.js.map +1 -1
  158. package/lib/commonjs/web_hammer/NodeManager.js +2 -0
  159. package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
  160. package/lib/module/Directions.js +2 -2
  161. package/lib/module/Directions.js.map +1 -1
  162. package/lib/module/RNGestureHandlerModule.web.js +2 -2
  163. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  164. package/lib/module/components/DrawerLayout.js +2 -2
  165. package/lib/module/components/DrawerLayout.js.map +1 -1
  166. package/lib/module/components/GestureButtons.js +3 -3
  167. package/lib/module/components/GestureButtons.js.map +1 -1
  168. package/lib/module/components/GestureButtonsProps.js +2 -0
  169. package/lib/module/components/GestureButtonsProps.js.map +1 -0
  170. package/lib/module/components/GestureComponents.js +1 -1
  171. package/lib/module/components/GestureComponents.js.map +1 -1
  172. package/lib/module/components/GestureHandlerButton.js.map +1 -1
  173. package/lib/module/components/GestureHandlerRootView.android.js +1 -1
  174. package/lib/module/components/GestureHandlerRootView.android.js.map +1 -1
  175. package/lib/module/components/GestureHandlerRootView.js +1 -1
  176. package/lib/module/components/GestureHandlerRootView.js.map +1 -1
  177. package/lib/module/components/Pressable/Pressable.js +309 -0
  178. package/lib/module/components/Pressable/Pressable.js.map +1 -0
  179. package/lib/module/components/Pressable/PressableProps.js +2 -0
  180. package/lib/module/components/Pressable/PressableProps.js.map +1 -0
  181. package/lib/module/components/Pressable/index.js +3 -0
  182. package/lib/module/components/Pressable/index.js.map +1 -0
  183. package/lib/module/components/Pressable/utils.js +120 -0
  184. package/lib/module/components/Pressable/utils.js.map +1 -0
  185. package/lib/module/components/ReanimatedSwipeable.js +293 -0
  186. package/lib/module/components/ReanimatedSwipeable.js.map +1 -0
  187. package/lib/module/components/Swipeable.js +9 -3
  188. package/lib/module/components/Swipeable.js.map +1 -1
  189. package/lib/module/components/touchables/GenericTouchable.js +4 -4
  190. package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
  191. package/lib/module/components/touchables/GenericTouchableProps.js +2 -0
  192. package/lib/module/components/touchables/GenericTouchableProps.js.map +1 -0
  193. package/lib/module/components/touchables/TouchableHighlight.js.map +1 -1
  194. package/lib/module/components/touchables/TouchableNativeFeedback.android.js +1 -1
  195. package/lib/module/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
  196. package/lib/module/components/touchables/TouchableNativeFeedbackProps.js +2 -0
  197. package/lib/module/components/touchables/TouchableNativeFeedbackProps.js.map +1 -0
  198. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
  199. package/lib/module/components/touchables/TouchableWithoutFeedback.js.map +1 -1
  200. package/lib/module/getShadowNodeFromRef.js +2 -2
  201. package/lib/module/getShadowNodeFromRef.js.map +1 -1
  202. package/lib/module/ghQueueMicrotask.js +3 -4
  203. package/lib/module/ghQueueMicrotask.js.map +1 -1
  204. package/lib/module/handlers/FlingGestureHandler.js.map +1 -1
  205. package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -1
  206. package/lib/module/handlers/GestureHandlerEventPayload.js +2 -0
  207. package/lib/module/handlers/GestureHandlerEventPayload.js.map +1 -0
  208. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
  209. package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
  210. package/lib/module/handlers/PanGestureHandler.js.map +1 -1
  211. package/lib/module/handlers/PinchGestureHandler.js.map +1 -1
  212. package/lib/module/handlers/RotationGestureHandler.js.map +1 -1
  213. package/lib/module/handlers/TapGestureHandler.js.map +1 -1
  214. package/lib/module/handlers/createHandler.js +6 -5
  215. package/lib/module/handlers/createHandler.js.map +1 -1
  216. package/lib/module/handlers/createNativeWrapper.js +3 -3
  217. package/lib/module/handlers/createNativeWrapper.js.map +1 -1
  218. package/lib/module/handlers/gestureHandlerCommon.js +0 -72
  219. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
  220. package/lib/module/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
  221. package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js +4 -4
  222. package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
  223. package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js +1 -1
  224. package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js.map +1 -1
  225. package/lib/module/handlers/gestures/GestureDetector/index.js +1 -1
  226. package/lib/module/handlers/gestures/GestureDetector/index.js.map +1 -1
  227. package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js +18 -28
  228. package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
  229. package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js +1 -1
  230. package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
  231. package/lib/module/handlers/gestures/GestureDetector/utils.js +5 -5
  232. package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
  233. package/lib/module/handlers/gestures/flingGesture.js.map +1 -1
  234. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -1
  235. package/lib/module/handlers/gestures/gesture.js +6 -6
  236. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  237. package/lib/module/handlers/gestures/gestureComposition.js +5 -5
  238. package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
  239. package/lib/module/handlers/gestures/gestureStateManager.js +1 -1
  240. package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -1
  241. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
  242. package/lib/module/handlers/gestures/nativeGesture.js.map +1 -1
  243. package/lib/module/handlers/gestures/panGesture.js.map +1 -1
  244. package/lib/module/handlers/gestures/pinchGesture.js.map +1 -1
  245. package/lib/module/handlers/gestures/rotationGesture.js.map +1 -1
  246. package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
  247. package/lib/module/handlers/getNextHandlerTag.js +5 -0
  248. package/lib/module/handlers/getNextHandlerTag.js.map +1 -0
  249. package/lib/module/handlers/handlersRegistry.js +0 -4
  250. package/lib/module/handlers/handlersRegistry.js.map +1 -1
  251. package/lib/module/handlers/utils.js +73 -0
  252. package/lib/module/handlers/utils.js.map +1 -0
  253. package/lib/module/index.js +1 -0
  254. package/lib/module/index.js.map +1 -1
  255. package/lib/module/init.js +1 -1
  256. package/lib/module/init.js.map +1 -1
  257. package/lib/module/jestUtils/jestUtils.js +2 -2
  258. package/lib/module/jestUtils/jestUtils.js.map +1 -1
  259. package/lib/module/mocks.js +2 -2
  260. package/lib/module/mocks.js.map +1 -1
  261. package/lib/module/utils.js +1 -1
  262. package/lib/module/utils.js.map +1 -1
  263. package/lib/module/web/Gestures.js +1 -1
  264. package/lib/module/web/Gestures.js.map +1 -1
  265. package/lib/module/web/detectors/RotationGestureDetector.js +1 -1
  266. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
  267. package/lib/module/web/detectors/ScaleGestureDetector.js +4 -4
  268. package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -1
  269. package/lib/module/web/handlers/FlingGestureHandler.js +1 -1
  270. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  271. package/lib/module/web/handlers/GestureHandler.js +6 -11
  272. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  273. package/lib/module/web/handlers/NativeViewGestureHandler.js +1 -1
  274. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  275. package/lib/module/web/handlers/PanGestureHandler.js +1 -1
  276. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  277. package/lib/module/web/handlers/TapGestureHandler.js +1 -1
  278. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
  279. package/lib/module/web/tools/EventManager.js +2 -2
  280. package/lib/module/web/tools/EventManager.js.map +1 -1
  281. package/lib/module/web/tools/GestureHandlerWebDelegate.js +4 -11
  282. package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  283. package/lib/module/web/tools/LeastSquareSolver.js +18 -18
  284. package/lib/module/web/tools/LeastSquareSolver.js.map +1 -1
  285. package/lib/module/web/tools/PointerEventManager.js +2 -2
  286. package/lib/module/web/tools/PointerEventManager.js.map +1 -1
  287. package/lib/module/web/tools/PointerTracker.js +1 -1
  288. package/lib/module/web/tools/PointerTracker.js.map +1 -1
  289. package/lib/module/web/tools/TouchEventManager.js +4 -4
  290. package/lib/module/web/tools/TouchEventManager.js.map +1 -1
  291. package/lib/module/web/tools/VelocityTracker.js +6 -6
  292. package/lib/module/web/tools/VelocityTracker.js.map +1 -1
  293. package/lib/module/web_hammer/NodeManager.js +1 -1
  294. package/lib/module/web_hammer/NodeManager.js.map +1 -1
  295. package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
  296. package/lib/typescript/components/GestureButtons.d.ts +2 -85
  297. package/lib/typescript/components/GestureButtonsProps.d.ts +99 -0
  298. package/lib/typescript/components/GestureHandlerButton.d.ts +1 -1
  299. package/lib/typescript/components/Pressable/Pressable.d.ts +3 -0
  300. package/lib/typescript/components/Pressable/PressableProps.d.ts +116 -0
  301. package/lib/typescript/components/Pressable/index.d.ts +2 -0
  302. package/lib/typescript/components/Pressable/utils.d.ts +15 -0
  303. package/lib/typescript/components/ReanimatedSwipeable.d.ts +125 -0
  304. package/lib/typescript/components/Swipeable.d.ts +5 -0
  305. package/lib/typescript/components/touchables/GenericTouchable.d.ts +4 -16
  306. package/lib/typescript/components/touchables/GenericTouchableProps.d.ts +14 -0
  307. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +1 -1
  308. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +2 -9
  309. package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +9 -0
  310. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +1 -1
  311. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +2 -1
  312. package/lib/typescript/handlers/FlingGestureHandler.d.ts +2 -6
  313. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +1 -10
  314. package/lib/typescript/handlers/GestureHandlerEventPayload.d.ts +159 -0
  315. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +2 -35
  316. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +2 -6
  317. package/lib/typescript/handlers/PanGestureHandler.d.ts +3 -51
  318. package/lib/typescript/handlers/PinchGestureHandler.d.ts +2 -23
  319. package/lib/typescript/handlers/RotationGestureHandler.d.ts +2 -23
  320. package/lib/typescript/handlers/TapGestureHandler.d.ts +2 -6
  321. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +0 -5
  322. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +10 -9
  323. package/lib/typescript/handlers/gestures/GestureDetector/types.d.ts +1 -0
  324. package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +1 -0
  325. package/lib/typescript/handlers/gestures/flingGesture.d.ts +2 -1
  326. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +2 -1
  327. package/lib/typescript/handlers/gestures/gesture.d.ts +2 -8
  328. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +2 -1
  329. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +2 -1
  330. package/lib/typescript/handlers/gestures/panGesture.d.ts +2 -1
  331. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +1 -1
  332. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +1 -1
  333. package/lib/typescript/handlers/gestures/tapGesture.d.ts +2 -1
  334. package/lib/typescript/handlers/getNextHandlerTag.d.ts +1 -0
  335. package/lib/typescript/handlers/handlersRegistry.d.ts +1 -2
  336. package/lib/typescript/handlers/utils.d.ts +6 -0
  337. package/lib/typescript/index.d.ts +12 -9
  338. package/lib/typescript/jestUtils/jestUtils.d.ts +9 -7
  339. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +1 -0
  340. package/lib/typescript/web/handlers/GestureHandler.d.ts +1 -0
  341. package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +1 -0
  342. package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +1 -0
  343. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +1 -0
  344. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +1 -0
  345. package/lib/typescript/web/handlers/PanGestureHandler.d.ts +1 -0
  346. package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +1 -0
  347. package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +1 -0
  348. package/lib/typescript/web/handlers/TapGestureHandler.d.ts +1 -0
  349. package/lib/typescript/web_hammer/NodeManager.d.ts +4 -5
  350. package/package.json +14 -16
  351. package/src/Directions.ts +2 -2
  352. package/src/RNGestureHandlerModule.web.ts +2 -2
  353. package/src/components/DrawerLayout.tsx +7 -9
  354. package/src/components/GestureButtons.tsx +13 -123
  355. package/src/components/GestureButtonsProps.ts +115 -0
  356. package/src/components/GestureComponents.tsx +1 -1
  357. package/src/components/GestureHandlerButton.tsx +1 -1
  358. package/src/components/GestureHandlerRootView.android.tsx +1 -1
  359. package/src/components/GestureHandlerRootView.tsx +1 -1
  360. package/src/components/Pressable/Pressable.tsx +398 -0
  361. package/src/components/Pressable/PressableProps.tsx +149 -0
  362. package/src/components/Pressable/index.ts +2 -0
  363. package/src/components/Pressable/utils.ts +180 -0
  364. package/src/components/ReanimatedSwipeable.tsx +629 -0
  365. package/src/components/Swipeable.tsx +12 -6
  366. package/src/components/touchables/GenericTouchable.tsx +9 -36
  367. package/src/components/touchables/GenericTouchableProps.ts +26 -0
  368. package/src/components/touchables/TouchableHighlight.tsx +2 -4
  369. package/src/components/touchables/TouchableNativeFeedback.android.tsx +7 -17
  370. package/src/components/touchables/TouchableNativeFeedbackProps.tsx +12 -0
  371. package/src/components/touchables/TouchableOpacity.tsx +3 -5
  372. package/src/components/touchables/TouchableWithoutFeedback.tsx +2 -1
  373. package/src/getShadowNodeFromRef.ts +2 -2
  374. package/src/ghQueueMicrotask.ts +7 -4
  375. package/src/handlers/FlingGestureHandler.ts +1 -6
  376. package/src/handlers/ForceTouchGestureHandler.ts +1 -12
  377. package/src/handlers/GestureHandlerEventPayload.ts +184 -0
  378. package/src/handlers/LongPressGestureHandler.ts +1 -40
  379. package/src/handlers/NativeViewGestureHandler.ts +1 -7
  380. package/src/handlers/PanGestureHandler.ts +1 -58
  381. package/src/handlers/PinchGestureHandler.ts +1 -27
  382. package/src/handlers/RotationGestureHandler.ts +1 -27
  383. package/src/handlers/TapGestureHandler.ts +1 -6
  384. package/src/handlers/createHandler.tsx +6 -11
  385. package/src/handlers/createNativeWrapper.tsx +3 -3
  386. package/src/handlers/gestureHandlerCommon.ts +3 -79
  387. package/src/handlers/gestureHandlerTypesCompat.ts +16 -30
  388. package/src/handlers/gestures/GestureDetector/Wrap.tsx +1 -1
  389. package/src/handlers/gestures/GestureDetector/attachHandlers.ts +4 -7
  390. package/src/handlers/gestures/GestureDetector/dropHandlers.ts +1 -1
  391. package/src/handlers/gestures/GestureDetector/index.tsx +1 -1
  392. package/src/handlers/gestures/GestureDetector/updateHandlers.ts +20 -30
  393. package/src/handlers/gestures/GestureDetector/useDetectorUpdater.ts +1 -1
  394. package/src/handlers/gestures/GestureDetector/utils.ts +5 -5
  395. package/src/handlers/gestures/flingGesture.ts +2 -4
  396. package/src/handlers/gestures/forceTouchGesture.ts +2 -4
  397. package/src/handlers/gestures/gesture.ts +17 -15
  398. package/src/handlers/gestures/gestureComposition.ts +5 -5
  399. package/src/handlers/gestures/gestureStateManager.ts +1 -1
  400. package/src/handlers/gestures/longPressGesture.ts +2 -4
  401. package/src/handlers/gestures/nativeGesture.ts +2 -4
  402. package/src/handlers/gestures/panGesture.ts +2 -4
  403. package/src/handlers/gestures/pinchGesture.ts +1 -1
  404. package/src/handlers/gestures/rotationGesture.ts +1 -1
  405. package/src/handlers/gestures/tapGesture.ts +2 -4
  406. package/src/handlers/getNextHandlerTag.ts +5 -0
  407. package/src/handlers/handlersRegistry.ts +0 -6
  408. package/src/handlers/utils.ts +75 -0
  409. package/src/index.ts +25 -36
  410. package/src/init.ts +1 -1
  411. package/src/jestUtils/jestUtils.ts +12 -10
  412. package/src/mocks.ts +2 -2
  413. package/src/utils.ts +1 -1
  414. package/src/web/Gestures.ts +1 -1
  415. package/src/web/detectors/RotationGestureDetector.ts +1 -1
  416. package/src/web/detectors/ScaleGestureDetector.ts +4 -4
  417. package/src/web/handlers/FlingGestureHandler.ts +1 -1
  418. package/src/web/handlers/GestureHandler.ts +8 -14
  419. package/src/web/handlers/NativeViewGestureHandler.ts +3 -3
  420. package/src/web/handlers/PanGestureHandler.ts +1 -1
  421. package/src/web/handlers/TapGestureHandler.ts +1 -1
  422. package/src/web/tools/EventManager.ts +2 -2
  423. package/src/web/tools/GestureHandlerWebDelegate.ts +3 -8
  424. package/src/web/tools/LeastSquareSolver.ts +18 -18
  425. package/src/web/tools/PointerEventManager.ts +2 -2
  426. package/src/web/tools/PointerTracker.ts +2 -1
  427. package/src/web/tools/TouchEventManager.ts +4 -4
  428. package/src/web/tools/VelocityTracker.ts +6 -6
  429. package/src/web_hammer/NodeManager.ts +2 -11
@@ -0,0 +1,293 @@
1
+ // Similarily to the DrawerLayout component this deserves to be put in a
2
+ // separate repo. Although, keeping it here for the time being will allow us to
3
+ // move faster and fix possible issues quicker
4
+ import React, { forwardRef, useCallback, useImperativeHandle, useRef } from 'react';
5
+ import { GestureObjects as Gesture } from '../handlers/gestures/gestureObjects';
6
+ import { GestureDetector } from '../handlers/gestures/GestureDetector';
7
+ import Animated, { Extrapolation, interpolate, runOnJS, useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';
8
+ import { I18nManager, StyleSheet, View } from 'react-native';
9
+ const DRAG_TOSS = 0.05;
10
+ const Swipeable = /*#__PURE__*/forwardRef(function Swipeable(props, ref) {
11
+ const rowState = useSharedValue(0);
12
+ const userDrag = useSharedValue(0);
13
+ const appliedTranslation = useSharedValue(0);
14
+ const rowWidth = useSharedValue(0);
15
+ const leftWidth = useSharedValue(0);
16
+ const rightWidth = useSharedValue(0);
17
+ const rightOffset = useSharedValue(0);
18
+ const leftActionTranslate = useSharedValue(0);
19
+ const rightActionTranslate = useSharedValue(0);
20
+ const showLeftProgress = useSharedValue(0);
21
+ const showRightProgress = useSharedValue(0);
22
+ const swipeableMethods = useRef({
23
+ close: () => {
24
+ 'worklet';
25
+ },
26
+ openLeft: () => {
27
+ 'worklet';
28
+ },
29
+ openRight: () => {
30
+ 'worklet';
31
+ },
32
+ reset: () => {
33
+ 'worklet';
34
+ }
35
+ });
36
+ const defaultProps = {
37
+ friction: 1,
38
+ overshootFriction: 1
39
+ };
40
+ const {
41
+ friction = defaultProps.friction,
42
+ overshootFriction = defaultProps.overshootFriction
43
+ } = props;
44
+ const overshootLeftProp = props.overshootLeft;
45
+ const overshootRightProp = props.overshootRight;
46
+ const calculateCurrentOffset = useCallback(() => {
47
+ 'worklet';
48
+
49
+ if (rowState.value === 1) {
50
+ return leftWidth.value;
51
+ } else if (rowState.value === -1) {
52
+ return -rowWidth.value - rightOffset.value;
53
+ }
54
+
55
+ return 0;
56
+ }, [leftWidth, rightOffset, rowState, rowWidth]);
57
+
58
+ const updateAnimatedEvent = () => {
59
+ 'worklet';
60
+
61
+ rightWidth.value = Math.max(0, rowWidth.value - rightOffset.value);
62
+ const overshootLeft = overshootLeftProp !== null && overshootLeftProp !== void 0 ? overshootLeftProp : leftWidth.value > 0;
63
+ const overshootRight = overshootRightProp !== null && overshootRightProp !== void 0 ? overshootRightProp : rightWidth.value > 0;
64
+ const startOffset = rowState.value === 1 ? leftWidth.value : rowState.value === -1 ? -rightWidth.value : 0;
65
+ const offsetDrag = userDrag.value / friction + startOffset;
66
+ appliedTranslation.value = interpolate(offsetDrag, [-rightWidth.value - 1, -rightWidth.value, leftWidth.value, leftWidth.value + 1], [-rightWidth.value - (overshootRight ? 1 / overshootFriction : 0), -rightWidth.value, leftWidth.value, leftWidth.value + (overshootLeft ? 1 / overshootFriction : 0)]);
67
+ showLeftProgress.value = leftWidth.value > 0 ? interpolate(appliedTranslation.value, [-1, 0, leftWidth.value], [0, 0, 1]) : 0;
68
+ leftActionTranslate.value = interpolate(showLeftProgress.value, [0, Number.MIN_VALUE], [-10000, 0], Extrapolation.CLAMP);
69
+ showRightProgress.value = rightWidth.value > 0 ? interpolate(appliedTranslation.value, [-rightWidth.value, 0, 1], [1, 0, 0]) : 0;
70
+ rightActionTranslate.value = interpolate(showRightProgress.value, [0, Number.MIN_VALUE], [-10000, 0], Extrapolation.CLAMP);
71
+ };
72
+
73
+ const dispatchImmediateEvents = useCallback((fromValue, toValue) => {
74
+ if (toValue > 0 && props.onSwipeableWillOpen) {
75
+ props.onSwipeableWillOpen('left');
76
+ } else if (toValue < 0 && props.onSwipeableWillOpen) {
77
+ props.onSwipeableWillOpen('right');
78
+ } else if (props.onSwipeableWillClose) {
79
+ const closingDirection = fromValue > 0 ? 'left' : 'right';
80
+ props.onSwipeableWillClose(closingDirection);
81
+ }
82
+ }, [props, props.onSwipeableWillClose, props.onSwipeableWillOpen, swipeableMethods]);
83
+ const dispatchEndEvents = useCallback((fromValue, toValue) => {
84
+ if (toValue > 0 && props.onSwipeableOpen) {
85
+ props.onSwipeableOpen('left', swipeableMethods.current);
86
+ } else if (toValue < 0 && props.onSwipeableOpen) {
87
+ props.onSwipeableOpen('right', swipeableMethods.current);
88
+ } else if (props.onSwipeableClose) {
89
+ const closingDirection = fromValue > 0 ? 'left' : 'right';
90
+ props.onSwipeableClose(closingDirection, swipeableMethods.current);
91
+ }
92
+ }, [props, props.onSwipeableClose, props.onSwipeableOpen, swipeableMethods]);
93
+ const animationOptionsProp = props.animationOptions;
94
+ const animateRow = useCallback((fromValue, toValue, velocityX) => {
95
+ 'worklet';
96
+
97
+ rowState.value = Math.sign(toValue);
98
+ const springConfig = {
99
+ duration: 1000,
100
+ dampingRatio: 0.9,
101
+ stiffness: 500,
102
+ velocity: velocityX,
103
+ overshootClamping: true,
104
+ ...animationOptionsProp
105
+ };
106
+ appliedTranslation.value = withSpring(toValue, springConfig, isFinished => {
107
+ if (isFinished) {
108
+ runOnJS(dispatchEndEvents)(fromValue, toValue);
109
+ }
110
+ });
111
+ const progressTarget = toValue === 0 ? 0 : 1; // Velocity is in px, while progress is in %
112
+
113
+ springConfig.velocity = 0;
114
+ showLeftProgress.value = leftWidth.value > 0 ? withSpring(progressTarget, springConfig) : 0;
115
+ showRightProgress.value = rightWidth.value > 0 ? withSpring(progressTarget, springConfig) : 0;
116
+ runOnJS(dispatchImmediateEvents)(fromValue, toValue);
117
+ }, [showLeftProgress, appliedTranslation, dispatchEndEvents, dispatchImmediateEvents, animationOptionsProp, rowState]);
118
+
119
+ const onRowLayout = ({
120
+ nativeEvent
121
+ }) => {
122
+ rowWidth.value = nativeEvent.layout.width;
123
+ };
124
+
125
+ const {
126
+ children,
127
+ renderLeftActions,
128
+ renderRightActions,
129
+ dragOffsetFromLeftEdge = 10,
130
+ dragOffsetFromRightEdge = 10
131
+ } = props;
132
+ swipeableMethods.current = {
133
+ close() {
134
+ 'worklet';
135
+
136
+ animateRow(calculateCurrentOffset(), 0);
137
+ },
138
+
139
+ openLeft() {
140
+ 'worklet';
141
+
142
+ animateRow(calculateCurrentOffset(), leftWidth.value);
143
+ },
144
+
145
+ openRight() {
146
+ 'worklet';
147
+
148
+ rightWidth.value = rowWidth.value - rightOffset.value;
149
+ animateRow(calculateCurrentOffset(), -rightWidth.value);
150
+ },
151
+
152
+ reset() {
153
+ 'worklet';
154
+
155
+ userDrag.value = 0;
156
+ showLeftProgress.value = 0;
157
+ appliedTranslation.value = 0;
158
+ rowState.value = 0;
159
+ }
160
+
161
+ };
162
+ const leftAnimatedStyle = useAnimatedStyle(() => ({
163
+ transform: [{
164
+ translateX: leftActionTranslate.value
165
+ }]
166
+ }), [leftActionTranslate]);
167
+ const leftElement = renderLeftActions && /*#__PURE__*/React.createElement(Animated.View, {
168
+ style: [styles.leftActions, leftAnimatedStyle]
169
+ }, renderLeftActions(showLeftProgress, appliedTranslation, swipeableMethods.current), /*#__PURE__*/React.createElement(View, {
170
+ onLayout: ({
171
+ nativeEvent
172
+ }) => leftWidth.value = nativeEvent.layout.x
173
+ }));
174
+ const rightAnimatedStyle = useAnimatedStyle(() => ({
175
+ transform: [{
176
+ translateX: rightActionTranslate.value
177
+ }]
178
+ }), [rightActionTranslate]);
179
+ const rightElement = renderRightActions && /*#__PURE__*/React.createElement(Animated.View, {
180
+ style: [styles.rightActions, rightAnimatedStyle]
181
+ }, renderRightActions(showRightProgress, appliedTranslation, swipeableMethods.current), /*#__PURE__*/React.createElement(View, {
182
+ onLayout: ({
183
+ nativeEvent
184
+ }) => rightOffset.value = nativeEvent.layout.x
185
+ }));
186
+ const leftThresholdProp = props.leftThreshold;
187
+ const rightThresholdProp = props.rightThreshold;
188
+
189
+ const handleRelease = event => {
190
+ 'worklet';
191
+
192
+ const {
193
+ velocityX
194
+ } = event;
195
+ userDrag.value = event.translationX;
196
+ rightWidth.value = rowWidth.value - rightOffset.value;
197
+ const leftThreshold = leftThresholdProp !== null && leftThresholdProp !== void 0 ? leftThresholdProp : leftWidth.value / 2;
198
+ const rightThreshold = rightThresholdProp !== null && rightThresholdProp !== void 0 ? rightThresholdProp : rightWidth.value / 2;
199
+ const startOffsetX = calculateCurrentOffset() + userDrag.value / friction;
200
+ const translationX = (userDrag.value + DRAG_TOSS * velocityX) / friction;
201
+ let toValue = 0;
202
+
203
+ if (rowState.value === 0) {
204
+ if (translationX > leftThreshold) {
205
+ toValue = leftWidth.value;
206
+ } else if (translationX < -rightThreshold) {
207
+ toValue = -rightWidth.value;
208
+ }
209
+ } else if (rowState.value === 1) {
210
+ // Swiped to left
211
+ if (translationX > -leftThreshold) {
212
+ toValue = leftWidth.value;
213
+ }
214
+ } else {
215
+ // Swiped to right
216
+ if (translationX < rightThreshold) {
217
+ toValue = -rightWidth.value;
218
+ }
219
+ }
220
+
221
+ animateRow(startOffsetX, toValue, velocityX / friction);
222
+ };
223
+
224
+ const close = () => {
225
+ 'worklet';
226
+
227
+ animateRow(calculateCurrentOffset(), 0);
228
+ };
229
+
230
+ const tapGesture = Gesture.Tap().onStart(() => {
231
+ if (rowState.value !== 0) {
232
+ close();
233
+ }
234
+ });
235
+ const onSwipeableOpenStartDrag = props.onSwipeableOpenStartDrag;
236
+ const onSwipeableCloseStartDrag = props.onSwipeableCloseStartDrag;
237
+ const panGesture = Gesture.Pan().onUpdate(event => {
238
+ userDrag.value = event.translationX;
239
+ const direction = rowState.value === -1 ? 'right' : rowState.value === 1 ? 'left' : event.translationX > 0 ? 'left' : 'right';
240
+
241
+ if (rowState.value === 0 && onSwipeableOpenStartDrag) {
242
+ runOnJS(onSwipeableOpenStartDrag)(direction);
243
+ } else if (rowState.value !== 0 && onSwipeableCloseStartDrag) {
244
+ runOnJS(onSwipeableCloseStartDrag)(direction);
245
+ }
246
+
247
+ updateAnimatedEvent();
248
+ }).onEnd(event => {
249
+ handleRelease(event);
250
+ });
251
+
252
+ if (props.enableTrackpadTwoFingerGesture) {
253
+ panGesture.enableTrackpadTwoFingerGesture(props.enableTrackpadTwoFingerGesture);
254
+ }
255
+
256
+ panGesture.activeOffsetX([-dragOffsetFromRightEdge, dragOffsetFromLeftEdge]);
257
+ tapGesture.shouldCancelWhenOutside(true);
258
+ useImperativeHandle(ref, () => swipeableMethods.current, [swipeableMethods]);
259
+ panGesture.enabled(props.enabled !== false);
260
+ const animatedStyle = useAnimatedStyle(() => ({
261
+ transform: [{
262
+ translateX: appliedTranslation.value
263
+ }],
264
+ pointerEvents: rowState.value === 0 ? 'auto' : 'box-only'
265
+ }), [appliedTranslation, rowState]);
266
+ const containerStyle = props.containerStyle;
267
+ const childrenContainerStyle = props.childrenContainerStyle;
268
+ return /*#__PURE__*/React.createElement(GestureDetector, {
269
+ gesture: panGesture,
270
+ touchAction: "pan-y"
271
+ }, /*#__PURE__*/React.createElement(Animated.View, {
272
+ onLayout: onRowLayout,
273
+ style: [styles.container, containerStyle]
274
+ }, leftElement, rightElement, /*#__PURE__*/React.createElement(GestureDetector, {
275
+ gesture: tapGesture,
276
+ touchAction: "pan-y"
277
+ }, /*#__PURE__*/React.createElement(Animated.View, {
278
+ style: [animatedStyle, childrenContainerStyle]
279
+ }, children))));
280
+ });
281
+ export default Swipeable;
282
+ const styles = StyleSheet.create({
283
+ container: {
284
+ overflow: 'hidden'
285
+ },
286
+ leftActions: { ...StyleSheet.absoluteFillObject,
287
+ flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row'
288
+ },
289
+ rightActions: { ...StyleSheet.absoluteFillObject,
290
+ flexDirection: I18nManager.isRTL ? 'row' : 'row-reverse'
291
+ }
292
+ });
293
+ //# sourceMappingURL=ReanimatedSwipeable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ReanimatedSwipeable.tsx"],"names":["React","forwardRef","useCallback","useImperativeHandle","useRef","GestureObjects","Gesture","GestureDetector","Animated","Extrapolation","interpolate","runOnJS","useAnimatedStyle","useSharedValue","withSpring","I18nManager","StyleSheet","View","DRAG_TOSS","Swipeable","props","ref","rowState","userDrag","appliedTranslation","rowWidth","leftWidth","rightWidth","rightOffset","leftActionTranslate","rightActionTranslate","showLeftProgress","showRightProgress","swipeableMethods","close","openLeft","openRight","reset","defaultProps","friction","overshootFriction","overshootLeftProp","overshootLeft","overshootRightProp","overshootRight","calculateCurrentOffset","value","updateAnimatedEvent","Math","max","startOffset","offsetDrag","Number","MIN_VALUE","CLAMP","dispatchImmediateEvents","fromValue","toValue","onSwipeableWillOpen","onSwipeableWillClose","closingDirection","dispatchEndEvents","onSwipeableOpen","current","onSwipeableClose","animationOptionsProp","animationOptions","animateRow","velocityX","sign","springConfig","duration","dampingRatio","stiffness","velocity","overshootClamping","isFinished","progressTarget","onRowLayout","nativeEvent","layout","width","children","renderLeftActions","renderRightActions","dragOffsetFromLeftEdge","dragOffsetFromRightEdge","leftAnimatedStyle","transform","translateX","leftElement","styles","leftActions","x","rightAnimatedStyle","rightElement","rightActions","leftThresholdProp","leftThreshold","rightThresholdProp","rightThreshold","handleRelease","event","translationX","startOffsetX","tapGesture","Tap","onStart","onSwipeableOpenStartDrag","onSwipeableCloseStartDrag","panGesture","Pan","onUpdate","direction","onEnd","enableTrackpadTwoFingerGesture","activeOffsetX","shouldCancelWhenOutside","enabled","animatedStyle","pointerEvents","containerStyle","childrenContainerStyle","container","create","overflow","absoluteFillObject","flexDirection","isRTL"],"mappings":"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","sourcesContent":["// Similarily to the DrawerLayout component this deserves to be put in a\n// separate repo. Although, keeping it here for the time being will allow us to\n// move faster and fix possible issues quicker\n\nimport React, {\n ForwardedRef,\n forwardRef,\n useCallback,\n useImperativeHandle,\n useRef,\n} from 'react';\nimport { GestureObjects as Gesture } from '../handlers/gestures/gestureObjects';\nimport { GestureDetector } from '../handlers/gestures/GestureDetector';\nimport {\n GestureStateChangeEvent,\n GestureUpdateEvent,\n} from '../handlers/gestureHandlerCommon';\nimport type { PanGestureHandlerProps } from '../handlers/PanGestureHandler';\nimport type { PanGestureHandlerEventPayload } from '../handlers/GestureHandlerEventPayload';\nimport Animated, {\n Extrapolation,\n SharedValue,\n interpolate,\n runOnJS,\n useAnimatedStyle,\n useSharedValue,\n withSpring,\n} from 'react-native-reanimated';\nimport {\n I18nManager,\n LayoutChangeEvent,\n StyleProp,\n StyleSheet,\n View,\n ViewStyle,\n} from 'react-native';\n\nconst DRAG_TOSS = 0.05;\n\ntype SwipeableExcludes = Exclude<\n keyof PanGestureHandlerProps,\n 'onGestureEvent' | 'onHandlerStateChange'\n>;\n\nexport interface SwipeableProps\n extends Pick<PanGestureHandlerProps, SwipeableExcludes> {\n /**\n * Enables two-finger gestures on supported devices, for example iPads with\n * trackpads. If not enabled the gesture will require click + drag, with\n * `enableTrackpadTwoFingerGesture` swiping with two fingers will also trigger\n * the gesture.\n */\n enableTrackpadTwoFingerGesture?: boolean;\n\n /**\n * Specifies how much the visual interaction will be delayed compared to the\n * gesture distance. e.g. value of 1 will indicate that the swipeable panel\n * should exactly follow the gesture, 2 means it is going to be two times\n * \"slower\".\n */\n friction?: number;\n\n /**\n * Distance from the left edge at which released panel will animate to the\n * open state (or the open panel will animate into the closed state). By\n * default it's a half of the panel's width.\n */\n leftThreshold?: number;\n\n /**\n * Distance from the right edge at which released panel will animate to the\n * open state (or the open panel will animate into the closed state). By\n * default it's a half of the panel's width.\n */\n rightThreshold?: number;\n\n /**\n * Distance that the panel must be dragged from the left edge to be considered\n * a swipe. The default value is 10.\n */\n dragOffsetFromLeftEdge?: number;\n\n /**\n * Distance that the panel must be dragged from the right edge to be considered\n * a swipe. The default value is 10.\n */\n dragOffsetFromRightEdge?: number;\n\n /**\n * Value indicating if the swipeable panel can be pulled further than the left\n * actions panel's width. It is set to true by default as long as the left\n * panel render method is present.\n */\n overshootLeft?: boolean;\n\n /**\n * Value indicating if the swipeable panel can be pulled further than the\n * right actions panel's width. It is set to true by default as long as the\n * right panel render method is present.\n */\n overshootRight?: boolean;\n\n /**\n * Specifies how much the visual interaction will be delayed compared to the\n * gesture distance at overshoot. Default value is 1, it mean no friction, for\n * a native feel, try 8 or above.\n */\n overshootFriction?: number;\n\n /**\n * Called when action panel gets open (either right or left).\n */\n onSwipeableOpen?: (\n direction: 'left' | 'right',\n swipeable: SwipeableMethods\n ) => void;\n\n /**\n * Called when action panel is closed.\n */\n onSwipeableClose?: (\n direction: 'left' | 'right',\n swipeable: SwipeableMethods\n ) => void;\n\n /**\n * Called when action panel starts animating on open (either right or left).\n */\n onSwipeableWillOpen?: (direction: 'left' | 'right') => void;\n\n /**\n * Called when action panel starts animating on close.\n */\n onSwipeableWillClose?: (direction: 'left' | 'right') => void;\n\n /**\n * Called when action panel starts being shown on dragging to open.\n */\n onSwipeableOpenStartDrag?: (direction: 'left' | 'right') => void;\n\n /**\n * Called when action panel starts being shown on dragging to close.\n */\n onSwipeableCloseStartDrag?: (direction: 'left' | 'right') => void;\n\n /**\n *\n * This map describes the values to use as inputRange for extra interpolation:\n * AnimatedValue: [startValue, endValue]\n *\n * progressAnimatedValue: [0, 1] dragAnimatedValue: [0, +]\n *\n * To support `rtl` flexbox layouts use `flexDirection` styling.\n * */\n renderLeftActions?: (\n progressAnimatedValue: SharedValue<number>,\n dragAnimatedValue: SharedValue<number>,\n swipeable: SwipeableMethods\n ) => React.ReactNode;\n /**\n *\n * This map describes the values to use as inputRange for extra interpolation:\n * AnimatedValue: [startValue, endValue]\n *\n * progressAnimatedValue: [0, 1] dragAnimatedValue: [0, -]\n *\n * To support `rtl` flexbox layouts use `flexDirection` styling.\n * */\n renderRightActions?: (\n progressAnimatedValue: SharedValue<number>,\n dragAnimatedValue: SharedValue<number>,\n swipeable: SwipeableMethods\n ) => React.ReactNode;\n\n animationOptions?: Record<string, unknown>;\n\n /**\n * Style object for the container (`Animated.View`), for example to override\n * `overflow: 'hidden'`.\n */\n containerStyle?: StyleProp<ViewStyle>;\n\n /**\n * Style object for the children container (`Animated.View`), for example to\n * apply `flex: 1`\n */\n childrenContainerStyle?: StyleProp<ViewStyle>;\n}\n\nexport interface SwipeableMethods {\n close: () => void;\n openLeft: () => void;\n openRight: () => void;\n reset: () => void;\n}\n\nconst Swipeable = forwardRef<SwipeableMethods, SwipeableProps>(\n function Swipeable(\n props: SwipeableProps,\n ref: ForwardedRef<SwipeableMethods>\n ) {\n const rowState = useSharedValue<number>(0);\n\n const userDrag = useSharedValue<number>(0);\n const appliedTranslation = useSharedValue<number>(0);\n\n const rowWidth = useSharedValue<number>(0);\n const leftWidth = useSharedValue<number>(0);\n const rightWidth = useSharedValue<number>(0);\n const rightOffset = useSharedValue<number>(0);\n\n const leftActionTranslate = useSharedValue<number>(0);\n const rightActionTranslate = useSharedValue<number>(0);\n\n const showLeftProgress = useSharedValue<number>(0);\n const showRightProgress = useSharedValue<number>(0);\n\n const swipeableMethods = useRef<SwipeableMethods>({\n close: () => {\n 'worklet';\n },\n openLeft: () => {\n 'worklet';\n },\n openRight: () => {\n 'worklet';\n },\n reset: () => {\n 'worklet';\n },\n });\n\n const defaultProps = {\n friction: 1,\n overshootFriction: 1,\n };\n\n const {\n friction = defaultProps.friction,\n overshootFriction = defaultProps.overshootFriction,\n } = props;\n\n const overshootLeftProp = props.overshootLeft;\n const overshootRightProp = props.overshootRight;\n\n const calculateCurrentOffset = useCallback(() => {\n 'worklet';\n if (rowState.value === 1) {\n return leftWidth.value;\n } else if (rowState.value === -1) {\n return -rowWidth.value - rightOffset.value;\n }\n return 0;\n }, [leftWidth, rightOffset, rowState, rowWidth]);\n\n const updateAnimatedEvent = () => {\n 'worklet';\n rightWidth.value = Math.max(0, rowWidth.value - rightOffset.value);\n\n const overshootLeft = overshootLeftProp ?? leftWidth.value > 0;\n const overshootRight = overshootRightProp ?? rightWidth.value > 0;\n\n const startOffset =\n rowState.value === 1\n ? leftWidth.value\n : rowState.value === -1\n ? -rightWidth.value\n : 0;\n\n const offsetDrag = userDrag.value / friction + startOffset;\n\n appliedTranslation.value = interpolate(\n offsetDrag,\n [\n -rightWidth.value - 1,\n -rightWidth.value,\n leftWidth.value,\n leftWidth.value + 1,\n ],\n [\n -rightWidth.value - (overshootRight ? 1 / overshootFriction : 0),\n -rightWidth.value,\n leftWidth.value,\n leftWidth.value + (overshootLeft ? 1 / overshootFriction : 0),\n ]\n );\n\n showLeftProgress.value =\n leftWidth.value > 0\n ? interpolate(\n appliedTranslation.value,\n [-1, 0, leftWidth.value],\n [0, 0, 1]\n )\n : 0;\n leftActionTranslate.value = interpolate(\n showLeftProgress.value,\n [0, Number.MIN_VALUE],\n [-10000, 0],\n Extrapolation.CLAMP\n );\n showRightProgress.value =\n rightWidth.value > 0\n ? interpolate(\n appliedTranslation.value,\n [-rightWidth.value, 0, 1],\n [1, 0, 0]\n )\n : 0;\n rightActionTranslate.value = interpolate(\n showRightProgress.value,\n [0, Number.MIN_VALUE],\n [-10000, 0],\n Extrapolation.CLAMP\n );\n };\n\n const dispatchImmediateEvents = useCallback(\n (fromValue: number, toValue: number) => {\n if (toValue > 0 && props.onSwipeableWillOpen) {\n props.onSwipeableWillOpen('left');\n } else if (toValue < 0 && props.onSwipeableWillOpen) {\n props.onSwipeableWillOpen('right');\n } else if (props.onSwipeableWillClose) {\n const closingDirection = fromValue > 0 ? 'left' : 'right';\n props.onSwipeableWillClose(closingDirection);\n }\n },\n [\n props,\n props.onSwipeableWillClose,\n props.onSwipeableWillOpen,\n swipeableMethods,\n ]\n );\n\n const dispatchEndEvents = useCallback(\n (fromValue: number, toValue: number) => {\n if (toValue > 0 && props.onSwipeableOpen) {\n props.onSwipeableOpen('left', swipeableMethods.current);\n } else if (toValue < 0 && props.onSwipeableOpen) {\n props.onSwipeableOpen('right', swipeableMethods.current);\n } else if (props.onSwipeableClose) {\n const closingDirection = fromValue > 0 ? 'left' : 'right';\n props.onSwipeableClose(closingDirection, swipeableMethods.current);\n }\n },\n [props, props.onSwipeableClose, props.onSwipeableOpen, swipeableMethods]\n );\n\n const animationOptionsProp = props.animationOptions;\n\n const animateRow = useCallback(\n (fromValue: number, toValue: number, velocityX?: number) => {\n 'worklet';\n rowState.value = Math.sign(toValue);\n\n const springConfig = {\n duration: 1000,\n dampingRatio: 0.9,\n stiffness: 500,\n velocity: velocityX,\n overshootClamping: true,\n ...animationOptionsProp,\n };\n\n appliedTranslation.value = withSpring(\n toValue,\n springConfig,\n (isFinished) => {\n if (isFinished) {\n runOnJS(dispatchEndEvents)(fromValue, toValue);\n }\n }\n );\n\n const progressTarget = toValue === 0 ? 0 : 1;\n\n // Velocity is in px, while progress is in %\n springConfig.velocity = 0;\n\n showLeftProgress.value =\n leftWidth.value > 0 ? withSpring(progressTarget, springConfig) : 0;\n showRightProgress.value =\n rightWidth.value > 0 ? withSpring(progressTarget, springConfig) : 0;\n\n runOnJS(dispatchImmediateEvents)(fromValue, toValue);\n },\n [\n showLeftProgress,\n appliedTranslation,\n dispatchEndEvents,\n dispatchImmediateEvents,\n animationOptionsProp,\n rowState,\n ]\n );\n\n const onRowLayout = ({ nativeEvent }: LayoutChangeEvent) => {\n rowWidth.value = nativeEvent.layout.width;\n };\n\n const {\n children,\n renderLeftActions,\n renderRightActions,\n dragOffsetFromLeftEdge = 10,\n dragOffsetFromRightEdge = 10,\n } = props;\n\n swipeableMethods.current = {\n close() {\n 'worklet';\n animateRow(calculateCurrentOffset(), 0);\n },\n openLeft() {\n 'worklet';\n animateRow(calculateCurrentOffset(), leftWidth.value);\n },\n openRight() {\n 'worklet';\n rightWidth.value = rowWidth.value - rightOffset.value;\n animateRow(calculateCurrentOffset(), -rightWidth.value);\n },\n reset() {\n 'worklet';\n userDrag.value = 0;\n showLeftProgress.value = 0;\n appliedTranslation.value = 0;\n rowState.value = 0;\n },\n };\n\n const leftAnimatedStyle = useAnimatedStyle(\n () => ({\n transform: [\n {\n translateX: leftActionTranslate.value,\n },\n ],\n }),\n [leftActionTranslate]\n );\n\n const leftElement = renderLeftActions && (\n <Animated.View style={[styles.leftActions, leftAnimatedStyle]}>\n {renderLeftActions(\n showLeftProgress,\n appliedTranslation,\n swipeableMethods.current\n )}\n <View\n onLayout={({ nativeEvent }) =>\n (leftWidth.value = nativeEvent.layout.x)\n }\n />\n </Animated.View>\n );\n\n const rightAnimatedStyle = useAnimatedStyle(\n () => ({\n transform: [\n {\n translateX: rightActionTranslate.value,\n },\n ],\n }),\n [rightActionTranslate]\n );\n\n const rightElement = renderRightActions && (\n <Animated.View style={[styles.rightActions, rightAnimatedStyle]}>\n {renderRightActions(\n showRightProgress,\n appliedTranslation,\n swipeableMethods.current\n )}\n <View\n onLayout={({ nativeEvent }) =>\n (rightOffset.value = nativeEvent.layout.x)\n }\n />\n </Animated.View>\n );\n\n const leftThresholdProp = props.leftThreshold;\n const rightThresholdProp = props.rightThreshold;\n\n const handleRelease = (\n event: GestureStateChangeEvent<PanGestureHandlerEventPayload>\n ) => {\n 'worklet';\n const { velocityX } = event;\n userDrag.value = event.translationX;\n\n rightWidth.value = rowWidth.value - rightOffset.value;\n\n const leftThreshold = leftThresholdProp ?? leftWidth.value / 2;\n const rightThreshold = rightThresholdProp ?? rightWidth.value / 2;\n\n const startOffsetX = calculateCurrentOffset() + userDrag.value / friction;\n const translationX = (userDrag.value + DRAG_TOSS * velocityX) / friction;\n\n let toValue = 0;\n\n if (rowState.value === 0) {\n if (translationX > leftThreshold) {\n toValue = leftWidth.value;\n } else if (translationX < -rightThreshold) {\n toValue = -rightWidth.value;\n }\n } else if (rowState.value === 1) {\n // Swiped to left\n if (translationX > -leftThreshold) {\n toValue = leftWidth.value;\n }\n } else {\n // Swiped to right\n if (translationX < rightThreshold) {\n toValue = -rightWidth.value;\n }\n }\n\n animateRow(startOffsetX, toValue, velocityX / friction);\n };\n\n const close = () => {\n 'worklet';\n animateRow(calculateCurrentOffset(), 0);\n };\n\n const tapGesture = Gesture.Tap().onStart(() => {\n if (rowState.value !== 0) {\n close();\n }\n });\n\n const onSwipeableOpenStartDrag = props.onSwipeableOpenStartDrag;\n const onSwipeableCloseStartDrag = props.onSwipeableCloseStartDrag;\n\n const panGesture = Gesture.Pan()\n .onUpdate((event: GestureUpdateEvent<PanGestureHandlerEventPayload>) => {\n userDrag.value = event.translationX;\n\n const direction =\n rowState.value === -1\n ? 'right'\n : rowState.value === 1\n ? 'left'\n : event.translationX > 0\n ? 'left'\n : 'right';\n\n if (rowState.value === 0 && onSwipeableOpenStartDrag) {\n runOnJS(onSwipeableOpenStartDrag)(direction);\n } else if (rowState.value !== 0 && onSwipeableCloseStartDrag) {\n runOnJS(onSwipeableCloseStartDrag)(direction);\n }\n updateAnimatedEvent();\n })\n .onEnd(\n (event: GestureStateChangeEvent<PanGestureHandlerEventPayload>) => {\n handleRelease(event);\n }\n );\n\n if (props.enableTrackpadTwoFingerGesture) {\n panGesture.enableTrackpadTwoFingerGesture(\n props.enableTrackpadTwoFingerGesture\n );\n }\n\n panGesture.activeOffsetX([\n -dragOffsetFromRightEdge,\n dragOffsetFromLeftEdge,\n ]);\n tapGesture.shouldCancelWhenOutside(true);\n\n useImperativeHandle(ref, () => swipeableMethods.current, [\n swipeableMethods,\n ]);\n\n panGesture.enabled(props.enabled !== false);\n\n const animatedStyle = useAnimatedStyle(\n () => ({\n transform: [{ translateX: appliedTranslation.value }],\n pointerEvents: rowState.value === 0 ? 'auto' : 'box-only',\n }),\n [appliedTranslation, rowState]\n );\n\n const containerStyle = props.containerStyle;\n const childrenContainerStyle = props.childrenContainerStyle;\n\n return (\n <GestureDetector gesture={panGesture} touchAction=\"pan-y\">\n <Animated.View\n onLayout={onRowLayout}\n style={[styles.container, containerStyle]}>\n {leftElement}\n {rightElement}\n <GestureDetector gesture={tapGesture} touchAction=\"pan-y\">\n <Animated.View style={[animatedStyle, childrenContainerStyle]}>\n {children}\n </Animated.View>\n </GestureDetector>\n </Animated.View>\n </GestureDetector>\n );\n }\n);\n\nexport default Swipeable;\nexport type SwipeableRef = ForwardedRef<SwipeableMethods>;\n\nconst styles = StyleSheet.create({\n container: {\n overflow: 'hidden',\n },\n leftActions: {\n ...StyleSheet.absoluteFillObject,\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n },\n rightActions: {\n ...StyleSheet.absoluteFillObject,\n flexDirection: I18nManager.isRTL ? 'row' : 'row-reverse',\n },\n});\n"]}
@@ -12,6 +12,12 @@ import { PanGestureHandler } from '../handlers/PanGestureHandler';
12
12
  import { TapGestureHandler } from '../handlers/TapGestureHandler';
13
13
  import { State } from '../State';
14
14
  const DRAG_TOSS = 0.05;
15
+
16
+ /**
17
+ * @deprecated use Reanimated version of Swipeable instead
18
+ *
19
+ * This component allows for implementing swipeable rows or similar interaction.
20
+ */
15
21
  export default class Swipeable extends Component {
16
22
  constructor(_props) {
17
23
  super(_props);
@@ -144,12 +150,12 @@ export default class Swipeable extends Component {
144
150
  toValue = -rightWidth;
145
151
  }
146
152
  } else if (rowState === 1) {
147
- // swiped to left
153
+ // Swiped to left
148
154
  if (translationX > -leftThreshold) {
149
155
  toValue = leftWidth;
150
156
  }
151
157
  } else {
152
- // swiped to right
158
+ // Swiped to right
153
159
  if (translationX < rightThreshold) {
154
160
  toValue = -rightWidth;
155
161
  }
@@ -319,7 +325,7 @@ export default class Swipeable extends Component {
319
325
  dragOffsetFromRightEdge = 10
320
326
  } = this.props;
321
327
  const left = renderLeftActions && /*#__PURE__*/React.createElement(Animated.View, {
322
- style: [styles.leftActions, // all those and below parameters can have ! since they are all
328
+ style: [styles.leftActions, // All those and below parameters can have ! since they are all
323
329
  // asigned in constructor in `updateAnimatedEvent` but TS cannot spot
324
330
  // it for some reason
325
331
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["Swipeable.tsx"],"names":["React","Component","Animated","StyleSheet","View","I18nManager","PanGestureHandler","TapGestureHandler","State","DRAG_TOSS","Swipeable","constructor","props","state","friction","overshootFriction","dragX","rowTranslation","leftWidth","rowWidth","rightOffset","rightWidth","Math","max","overshootLeft","overshootRight","transX","add","interpolate","inputRange","outputRange","showLeftAction","Value","leftActionTranslate","Number","MIN_VALUE","extrapolate","showRightAction","rightActionTranslate","nativeEvent","oldState","ACTIVE","close","ev","handleRelease","velocityX","translationX","rowState","direction","onSwipeableOpenStartDrag","onSwipeableCloseStartDrag","leftThreshold","rightThreshold","startOffsetX","currentOffset","toValue","animateRow","fromValue","setValue","setState","sign","spring","restSpeedThreshold","restDisplacementThreshold","velocity","bounciness","useNativeDriver","useNativeAnimations","animationOptions","start","finished","onSwipeableLeftOpen","onSwipeableOpen","onSwipeableRightOpen","closingDirection","onSwipeableClose","onSwipeableLeftWillOpen","onSwipeableWillOpen","onSwipeableRightWillOpen","onSwipeableWillClose","layout","width","undefined","updateAnimatedEvent","onGestureEvent","event","shouldComponentUpdate","render","children","renderLeftActions","renderRightActions","dragOffsetFromLeftEdge","dragOffsetFromRightEdge","left","styles","leftActions","transform","translateX","x","right","rightActions","onHandlerStateChange","onRowLayout","container","containerStyle","onTapHandlerStateChange","childrenContainerStyle","create","overflow","absoluteFillObject","flexDirection","isRTL"],"mappings":"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","sourcesContent":["// Similarily to the DrawerLayout component this deserves to be put in a\n// separate repo. Although, keeping it here for the time being will allow us to\n// move faster and fix possible issues quicker\n\nimport * as React from 'react';\nimport { Component } from 'react';\nimport {\n Animated,\n StyleSheet,\n View,\n I18nManager,\n LayoutChangeEvent,\n StyleProp,\n ViewStyle,\n} from 'react-native';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n} from '../handlers/gestureHandlerCommon';\nimport {\n PanGestureHandler,\n PanGestureHandlerEventPayload,\n PanGestureHandlerProps,\n} from '../handlers/PanGestureHandler';\nimport {\n TapGestureHandler,\n TapGestureHandlerEventPayload,\n} from '../handlers/TapGestureHandler';\nimport { State } from '../State';\n\nconst DRAG_TOSS = 0.05;\n\ntype SwipeableExcludes = Exclude<\n keyof PanGestureHandlerProps,\n 'onGestureEvent' | 'onHandlerStateChange'\n>;\n\n// Animated.AnimatedInterpolation has been converted to a generic type\n// in @types/react-native 0.70. This way we can maintain compatibility\n// with all versions of @types/react-native\ntype AnimatedInterpolation = ReturnType<Animated.Value['interpolate']>;\n\nexport interface SwipeableProps\n extends Pick<PanGestureHandlerProps, SwipeableExcludes> {\n /**\n * Enables two-finger gestures on supported devices, for example iPads with\n * trackpads. If not enabled the gesture will require click + drag, with\n * `enableTrackpadTwoFingerGesture` swiping with two fingers will also trigger\n * the gesture.\n */\n enableTrackpadTwoFingerGesture?: boolean;\n\n /**\n * Specifies how much the visual interaction will be delayed compared to the\n * gesture distance. e.g. value of 1 will indicate that the swipeable panel\n * should exactly follow the gesture, 2 means it is going to be two times\n * \"slower\".\n */\n friction?: number;\n\n /**\n * Distance from the left edge at which released panel will animate to the\n * open state (or the open panel will animate into the closed state). By\n * default it's a half of the panel's width.\n */\n leftThreshold?: number;\n\n /**\n * Distance from the right edge at which released panel will animate to the\n * open state (or the open panel will animate into the closed state). By\n * default it's a half of the panel's width.\n */\n rightThreshold?: number;\n\n /**\n * Distance that the panel must be dragged from the left edge to be considered\n * a swipe. The default value is 10.\n */\n dragOffsetFromLeftEdge?: number;\n\n /**\n * Distance that the panel must be dragged from the right edge to be considered\n * a swipe. The default value is 10.\n */\n dragOffsetFromRightEdge?: number;\n\n /**\n * Value indicating if the swipeable panel can be pulled further than the left\n * actions panel's width. It is set to true by default as long as the left\n * panel render method is present.\n */\n overshootLeft?: boolean;\n\n /**\n * Value indicating if the swipeable panel can be pulled further than the\n * right actions panel's width. It is set to true by default as long as the\n * right panel render method is present.\n */\n overshootRight?: boolean;\n\n /**\n * Specifies how much the visual interaction will be delayed compared to the\n * gesture distance at overshoot. Default value is 1, it mean no friction, for\n * a native feel, try 8 or above.\n */\n overshootFriction?: number;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableOpen()\n *\n * Called when left action panel gets open.\n */\n onSwipeableLeftOpen?: () => void;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableOpen()\n *\n * Called when right action panel gets open.\n */\n onSwipeableRightOpen?: () => void;\n\n /**\n * Called when action panel gets open (either right or left).\n */\n onSwipeableOpen?: (direction: 'left' | 'right', swipeable: Swipeable) => void;\n\n /**\n * Called when action panel is closed.\n */\n onSwipeableClose?: (\n direction: 'left' | 'right',\n swipeable: Swipeable\n ) => void;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableWillOpen()\n *\n * Called when left action panel starts animating on open.\n */\n onSwipeableLeftWillOpen?: () => void;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableWillOpen()\n *\n * Called when right action panel starts animating on open.\n */\n onSwipeableRightWillOpen?: () => void;\n\n /**\n * Called when action panel starts animating on open (either right or left).\n */\n onSwipeableWillOpen?: (direction: 'left' | 'right') => void;\n\n /**\n * Called when action panel starts animating on close.\n */\n onSwipeableWillClose?: (direction: 'left' | 'right') => void;\n\n /**\n * Called when action panel starts being shown on dragging to open.\n */\n onSwipeableOpenStartDrag?: (direction: 'left' | 'right') => void;\n\n /**\n * Called when action panel starts being shown on dragging to close.\n */\n onSwipeableCloseStartDrag?: (direction: 'left' | 'right') => void;\n\n /**\n *\n * This map describes the values to use as inputRange for extra interpolation:\n * AnimatedValue: [startValue, endValue]\n *\n * progressAnimatedValue: [0, 1] dragAnimatedValue: [0, +]\n *\n * To support `rtl` flexbox layouts use `flexDirection` styling.\n * */\n renderLeftActions?: (\n progressAnimatedValue: AnimatedInterpolation,\n dragAnimatedValue: AnimatedInterpolation,\n swipeable: Swipeable\n ) => React.ReactNode;\n /**\n *\n * This map describes the values to use as inputRange for extra interpolation:\n * AnimatedValue: [startValue, endValue]\n *\n * progressAnimatedValue: [0, 1] dragAnimatedValue: [0, -]\n *\n * To support `rtl` flexbox layouts use `flexDirection` styling.\n * */\n renderRightActions?: (\n progressAnimatedValue: AnimatedInterpolation,\n dragAnimatedValue: AnimatedInterpolation,\n swipeable: Swipeable\n ) => React.ReactNode;\n\n useNativeAnimations?: boolean;\n\n animationOptions?: Record<string, unknown>;\n\n /**\n * Style object for the container (`Animated.View`), for example to override\n * `overflow: 'hidden'`.\n */\n containerStyle?: StyleProp<ViewStyle>;\n\n /**\n * Style object for the children container (`Animated.View`), for example to\n * apply `flex: 1`\n */\n childrenContainerStyle?: StyleProp<ViewStyle>;\n}\n\ntype SwipeableState = {\n dragX: Animated.Value;\n rowTranslation: Animated.Value;\n rowState: number;\n leftWidth?: number;\n rightOffset?: number;\n rowWidth?: number;\n};\n\nexport default class Swipeable extends Component<\n SwipeableProps,\n SwipeableState\n> {\n static defaultProps = {\n friction: 1,\n overshootFriction: 1,\n useNativeAnimations: true,\n };\n\n constructor(props: SwipeableProps) {\n super(props);\n const dragX = new Animated.Value(0);\n this.state = {\n dragX,\n rowTranslation: new Animated.Value(0),\n rowState: 0,\n leftWidth: undefined,\n rightOffset: undefined,\n rowWidth: undefined,\n };\n this.updateAnimatedEvent(props, this.state);\n\n this.onGestureEvent = Animated.event(\n [{ nativeEvent: { translationX: dragX } }],\n { useNativeDriver: props.useNativeAnimations! }\n );\n }\n\n shouldComponentUpdate(props: SwipeableProps, state: SwipeableState) {\n if (\n this.props.friction !== props.friction ||\n this.props.overshootLeft !== props.overshootLeft ||\n this.props.overshootRight !== props.overshootRight ||\n this.props.overshootFriction !== props.overshootFriction ||\n this.state.leftWidth !== state.leftWidth ||\n this.state.rightOffset !== state.rightOffset ||\n this.state.rowWidth !== state.rowWidth\n ) {\n this.updateAnimatedEvent(props, state);\n }\n\n return true;\n }\n\n private onGestureEvent?: (\n event: GestureEvent<PanGestureHandlerEventPayload>\n ) => void;\n private transX?: AnimatedInterpolation;\n private showLeftAction?: AnimatedInterpolation | Animated.Value;\n private leftActionTranslate?: AnimatedInterpolation;\n private showRightAction?: AnimatedInterpolation | Animated.Value;\n private rightActionTranslate?: AnimatedInterpolation;\n\n private updateAnimatedEvent = (\n props: SwipeableProps,\n state: SwipeableState\n ) => {\n const { friction, overshootFriction } = props;\n const { dragX, rowTranslation, leftWidth = 0, rowWidth = 0 } = state;\n const { rightOffset = rowWidth } = state;\n const rightWidth = Math.max(0, rowWidth - rightOffset);\n\n const { overshootLeft = leftWidth > 0, overshootRight = rightWidth > 0 } =\n props;\n\n const transX = Animated.add(\n rowTranslation,\n dragX.interpolate({\n inputRange: [0, friction!],\n outputRange: [0, 1],\n })\n ).interpolate({\n inputRange: [-rightWidth - 1, -rightWidth, leftWidth, leftWidth + 1],\n outputRange: [\n -rightWidth - (overshootRight ? 1 / overshootFriction! : 0),\n -rightWidth,\n leftWidth,\n leftWidth + (overshootLeft ? 1 / overshootFriction! : 0),\n ],\n });\n this.transX = transX;\n this.showLeftAction =\n leftWidth > 0\n ? transX.interpolate({\n inputRange: [-1, 0, leftWidth],\n outputRange: [0, 0, 1],\n })\n : new Animated.Value(0);\n this.leftActionTranslate = this.showLeftAction.interpolate({\n inputRange: [0, Number.MIN_VALUE],\n outputRange: [-10000, 0],\n extrapolate: 'clamp',\n });\n this.showRightAction =\n rightWidth > 0\n ? transX.interpolate({\n inputRange: [-rightWidth, 0, 1],\n outputRange: [1, 0, 0],\n })\n : new Animated.Value(0);\n this.rightActionTranslate = this.showRightAction.interpolate({\n inputRange: [0, Number.MIN_VALUE],\n outputRange: [-10000, 0],\n extrapolate: 'clamp',\n });\n };\n\n private onTapHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent<TapGestureHandlerEventPayload>) => {\n if (nativeEvent.oldState === State.ACTIVE) {\n this.close();\n }\n };\n\n private onHandlerStateChange = (\n ev: HandlerStateChangeEvent<PanGestureHandlerEventPayload>\n ) => {\n if (ev.nativeEvent.oldState === State.ACTIVE) {\n this.handleRelease(ev);\n }\n\n if (ev.nativeEvent.state === State.ACTIVE) {\n const { velocityX, translationX: dragX } = ev.nativeEvent;\n const { rowState } = this.state;\n const { friction } = this.props;\n\n const translationX = (dragX + DRAG_TOSS * velocityX) / friction!;\n\n const direction =\n rowState === -1\n ? 'right'\n : rowState === 1\n ? 'left'\n : translationX > 0\n ? 'left'\n : 'right';\n\n if (rowState === 0) {\n this.props.onSwipeableOpenStartDrag?.(direction);\n } else {\n this.props.onSwipeableCloseStartDrag?.(direction);\n }\n }\n };\n\n private handleRelease = (\n ev: HandlerStateChangeEvent<PanGestureHandlerEventPayload>\n ) => {\n const { velocityX, translationX: dragX } = ev.nativeEvent;\n const { leftWidth = 0, rowWidth = 0, rowState } = this.state;\n const { rightOffset = rowWidth } = this.state;\n const rightWidth = rowWidth - rightOffset;\n const {\n friction,\n leftThreshold = leftWidth / 2,\n rightThreshold = rightWidth / 2,\n } = this.props;\n\n const startOffsetX = this.currentOffset() + dragX / friction!;\n const translationX = (dragX + DRAG_TOSS * velocityX) / friction!;\n\n let toValue = 0;\n if (rowState === 0) {\n if (translationX > leftThreshold) {\n toValue = leftWidth;\n } else if (translationX < -rightThreshold) {\n toValue = -rightWidth;\n }\n } else if (rowState === 1) {\n // swiped to left\n if (translationX > -leftThreshold) {\n toValue = leftWidth;\n }\n } else {\n // swiped to right\n if (translationX < rightThreshold) {\n toValue = -rightWidth;\n }\n }\n\n this.animateRow(startOffsetX, toValue, velocityX / friction!);\n };\n\n private animateRow = (\n fromValue: number,\n toValue: number,\n velocityX?:\n | number\n | {\n x: number;\n y: number;\n }\n ) => {\n const { dragX, rowTranslation } = this.state;\n dragX.setValue(0);\n rowTranslation.setValue(fromValue);\n\n this.setState({ rowState: Math.sign(toValue) });\n Animated.spring(rowTranslation, {\n restSpeedThreshold: 1.7,\n restDisplacementThreshold: 0.4,\n velocity: velocityX,\n bounciness: 0,\n toValue,\n useNativeDriver: this.props.useNativeAnimations!,\n ...this.props.animationOptions,\n }).start(({ finished }) => {\n if (finished) {\n if (toValue > 0) {\n this.props.onSwipeableLeftOpen?.();\n this.props.onSwipeableOpen?.('left', this);\n } else if (toValue < 0) {\n this.props.onSwipeableRightOpen?.();\n this.props.onSwipeableOpen?.('right', this);\n } else {\n const closingDirection = fromValue > 0 ? 'left' : 'right';\n this.props.onSwipeableClose?.(closingDirection, this);\n }\n }\n });\n if (toValue > 0) {\n this.props.onSwipeableLeftWillOpen?.();\n this.props.onSwipeableWillOpen?.('left');\n } else if (toValue < 0) {\n this.props.onSwipeableRightWillOpen?.();\n this.props.onSwipeableWillOpen?.('right');\n } else {\n const closingDirection = fromValue > 0 ? 'left' : 'right';\n this.props.onSwipeableWillClose?.(closingDirection);\n }\n };\n\n private onRowLayout = ({ nativeEvent }: LayoutChangeEvent) => {\n this.setState({ rowWidth: nativeEvent.layout.width });\n };\n\n private currentOffset = () => {\n const { leftWidth = 0, rowWidth = 0, rowState } = this.state;\n const { rightOffset = rowWidth } = this.state;\n const rightWidth = rowWidth - rightOffset;\n if (rowState === 1) {\n return leftWidth;\n } else if (rowState === -1) {\n return -rightWidth;\n }\n return 0;\n };\n\n close = () => {\n this.animateRow(this.currentOffset(), 0);\n };\n\n openLeft = () => {\n const { leftWidth = 0 } = this.state;\n this.animateRow(this.currentOffset(), leftWidth);\n };\n\n openRight = () => {\n const { rowWidth = 0 } = this.state;\n const { rightOffset = rowWidth } = this.state;\n const rightWidth = rowWidth - rightOffset;\n this.animateRow(this.currentOffset(), -rightWidth);\n };\n\n reset = () => {\n const { dragX, rowTranslation } = this.state;\n dragX.setValue(0);\n rowTranslation.setValue(0);\n this.setState({ rowState: 0 });\n };\n\n render() {\n const { rowState } = this.state;\n const {\n children,\n renderLeftActions,\n renderRightActions,\n dragOffsetFromLeftEdge = 10,\n dragOffsetFromRightEdge = 10,\n } = this.props;\n\n const left = renderLeftActions && (\n <Animated.View\n style={[\n styles.leftActions,\n // all those and below parameters can have ! since they are all\n // asigned in constructor in `updateAnimatedEvent` but TS cannot spot\n // it for some reason\n { transform: [{ translateX: this.leftActionTranslate! }] },\n ]}>\n {renderLeftActions(this.showLeftAction!, this.transX!, this)}\n <View\n onLayout={({ nativeEvent }) =>\n this.setState({ leftWidth: nativeEvent.layout.x })\n }\n />\n </Animated.View>\n );\n\n const right = renderRightActions && (\n <Animated.View\n style={[\n styles.rightActions,\n { transform: [{ translateX: this.rightActionTranslate! }] },\n ]}>\n {renderRightActions(this.showRightAction!, this.transX!, this)}\n <View\n onLayout={({ nativeEvent }) =>\n this.setState({ rightOffset: nativeEvent.layout.x })\n }\n />\n </Animated.View>\n );\n\n return (\n <PanGestureHandler\n activeOffsetX={[-dragOffsetFromRightEdge, dragOffsetFromLeftEdge]}\n touchAction=\"pan-y\"\n {...this.props}\n onGestureEvent={this.onGestureEvent}\n onHandlerStateChange={this.onHandlerStateChange}>\n <Animated.View\n onLayout={this.onRowLayout}\n style={[styles.container, this.props.containerStyle]}>\n {left}\n {right}\n <TapGestureHandler\n enabled={rowState !== 0}\n touchAction=\"pan-y\"\n onHandlerStateChange={this.onTapHandlerStateChange}>\n <Animated.View\n pointerEvents={rowState === 0 ? 'auto' : 'box-only'}\n style={[\n {\n transform: [{ translateX: this.transX! }],\n },\n this.props.childrenContainerStyle,\n ]}>\n {children}\n </Animated.View>\n </TapGestureHandler>\n </Animated.View>\n </PanGestureHandler>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n overflow: 'hidden',\n },\n leftActions: {\n ...StyleSheet.absoluteFillObject,\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n },\n rightActions: {\n ...StyleSheet.absoluteFillObject,\n flexDirection: I18nManager.isRTL ? 'row' : 'row-reverse',\n },\n});\n"]}
1
+ {"version":3,"sources":["Swipeable.tsx"],"names":["React","Component","Animated","StyleSheet","View","I18nManager","PanGestureHandler","TapGestureHandler","State","DRAG_TOSS","Swipeable","constructor","props","state","friction","overshootFriction","dragX","rowTranslation","leftWidth","rowWidth","rightOffset","rightWidth","Math","max","overshootLeft","overshootRight","transX","add","interpolate","inputRange","outputRange","showLeftAction","Value","leftActionTranslate","Number","MIN_VALUE","extrapolate","showRightAction","rightActionTranslate","nativeEvent","oldState","ACTIVE","close","ev","handleRelease","velocityX","translationX","rowState","direction","onSwipeableOpenStartDrag","onSwipeableCloseStartDrag","leftThreshold","rightThreshold","startOffsetX","currentOffset","toValue","animateRow","fromValue","setValue","setState","sign","spring","restSpeedThreshold","restDisplacementThreshold","velocity","bounciness","useNativeDriver","useNativeAnimations","animationOptions","start","finished","onSwipeableLeftOpen","onSwipeableOpen","onSwipeableRightOpen","closingDirection","onSwipeableClose","onSwipeableLeftWillOpen","onSwipeableWillOpen","onSwipeableRightWillOpen","onSwipeableWillClose","layout","width","undefined","updateAnimatedEvent","onGestureEvent","event","shouldComponentUpdate","render","children","renderLeftActions","renderRightActions","dragOffsetFromLeftEdge","dragOffsetFromRightEdge","left","styles","leftActions","transform","translateX","x","right","rightActions","onHandlerStateChange","onRowLayout","container","containerStyle","onTapHandlerStateChange","childrenContainerStyle","create","overflow","absoluteFillObject","flexDirection","isRTL"],"mappings":"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","sourcesContent":["// Similarily to the DrawerLayout component this deserves to be put in a\n// separate repo. Although, keeping it here for the time being will allow us to\n// move faster and fix possible issues quicker\n\nimport * as React from 'react';\nimport { Component } from 'react';\nimport {\n Animated,\n StyleSheet,\n View,\n I18nManager,\n LayoutChangeEvent,\n StyleProp,\n ViewStyle,\n} from 'react-native';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n} from '../handlers/gestureHandlerCommon';\nimport {\n PanGestureHandler,\n PanGestureHandlerProps,\n} from '../handlers/PanGestureHandler';\nimport {\n PanGestureHandlerEventPayload,\n TapGestureHandlerEventPayload,\n} from '../handlers/GestureHandlerEventPayload';\nimport { TapGestureHandler } from '../handlers/TapGestureHandler';\nimport { State } from '../State';\n\nconst DRAG_TOSS = 0.05;\n\ntype SwipeableExcludes = Exclude<\n keyof PanGestureHandlerProps,\n 'onGestureEvent' | 'onHandlerStateChange'\n>;\n\n// Animated.AnimatedInterpolation has been converted to a generic type\n// in @types/react-native 0.70. This way we can maintain compatibility\n// with all versions of @types/react-native\ntype AnimatedInterpolation = ReturnType<Animated.Value['interpolate']>;\n\nexport interface SwipeableProps\n extends Pick<PanGestureHandlerProps, SwipeableExcludes> {\n /**\n * Enables two-finger gestures on supported devices, for example iPads with\n * trackpads. If not enabled the gesture will require click + drag, with\n * `enableTrackpadTwoFingerGesture` swiping with two fingers will also trigger\n * the gesture.\n */\n enableTrackpadTwoFingerGesture?: boolean;\n\n /**\n * Specifies how much the visual interaction will be delayed compared to the\n * gesture distance. e.g. value of 1 will indicate that the swipeable panel\n * should exactly follow the gesture, 2 means it is going to be two times\n * \"slower\".\n */\n friction?: number;\n\n /**\n * Distance from the left edge at which released panel will animate to the\n * open state (or the open panel will animate into the closed state). By\n * default it's a half of the panel's width.\n */\n leftThreshold?: number;\n\n /**\n * Distance from the right edge at which released panel will animate to the\n * open state (or the open panel will animate into the closed state). By\n * default it's a half of the panel's width.\n */\n rightThreshold?: number;\n\n /**\n * Distance that the panel must be dragged from the left edge to be considered\n * a swipe. The default value is 10.\n */\n dragOffsetFromLeftEdge?: number;\n\n /**\n * Distance that the panel must be dragged from the right edge to be considered\n * a swipe. The default value is 10.\n */\n dragOffsetFromRightEdge?: number;\n\n /**\n * Value indicating if the swipeable panel can be pulled further than the left\n * actions panel's width. It is set to true by default as long as the left\n * panel render method is present.\n */\n overshootLeft?: boolean;\n\n /**\n * Value indicating if the swipeable panel can be pulled further than the\n * right actions panel's width. It is set to true by default as long as the\n * right panel render method is present.\n */\n overshootRight?: boolean;\n\n /**\n * Specifies how much the visual interaction will be delayed compared to the\n * gesture distance at overshoot. Default value is 1, it mean no friction, for\n * a native feel, try 8 or above.\n */\n overshootFriction?: number;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableOpen()\n *\n * Called when left action panel gets open.\n */\n onSwipeableLeftOpen?: () => void;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableOpen()\n *\n * Called when right action panel gets open.\n */\n onSwipeableRightOpen?: () => void;\n\n /**\n * Called when action panel gets open (either right or left).\n */\n onSwipeableOpen?: (direction: 'left' | 'right', swipeable: Swipeable) => void;\n\n /**\n * Called when action panel is closed.\n */\n onSwipeableClose?: (\n direction: 'left' | 'right',\n swipeable: Swipeable\n ) => void;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableWillOpen()\n *\n * Called when left action panel starts animating on open.\n */\n onSwipeableLeftWillOpen?: () => void;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableWillOpen()\n *\n * Called when right action panel starts animating on open.\n */\n onSwipeableRightWillOpen?: () => void;\n\n /**\n * Called when action panel starts animating on open (either right or left).\n */\n onSwipeableWillOpen?: (direction: 'left' | 'right') => void;\n\n /**\n * Called when action panel starts animating on close.\n */\n onSwipeableWillClose?: (direction: 'left' | 'right') => void;\n\n /**\n * Called when action panel starts being shown on dragging to open.\n */\n onSwipeableOpenStartDrag?: (direction: 'left' | 'right') => void;\n\n /**\n * Called when action panel starts being shown on dragging to close.\n */\n onSwipeableCloseStartDrag?: (direction: 'left' | 'right') => void;\n\n /**\n *\n * This map describes the values to use as inputRange for extra interpolation:\n * AnimatedValue: [startValue, endValue]\n *\n * progressAnimatedValue: [0, 1] dragAnimatedValue: [0, +]\n *\n * To support `rtl` flexbox layouts use `flexDirection` styling.\n * */\n renderLeftActions?: (\n progressAnimatedValue: AnimatedInterpolation,\n dragAnimatedValue: AnimatedInterpolation,\n swipeable: Swipeable\n ) => React.ReactNode;\n /**\n *\n * This map describes the values to use as inputRange for extra interpolation:\n * AnimatedValue: [startValue, endValue]\n *\n * progressAnimatedValue: [0, 1] dragAnimatedValue: [0, -]\n *\n * To support `rtl` flexbox layouts use `flexDirection` styling.\n * */\n renderRightActions?: (\n progressAnimatedValue: AnimatedInterpolation,\n dragAnimatedValue: AnimatedInterpolation,\n swipeable: Swipeable\n ) => React.ReactNode;\n\n useNativeAnimations?: boolean;\n\n animationOptions?: Record<string, unknown>;\n\n /**\n * Style object for the container (`Animated.View`), for example to override\n * `overflow: 'hidden'`.\n */\n containerStyle?: StyleProp<ViewStyle>;\n\n /**\n * Style object for the children container (`Animated.View`), for example to\n * apply `flex: 1`\n */\n childrenContainerStyle?: StyleProp<ViewStyle>;\n}\n\ntype SwipeableState = {\n dragX: Animated.Value;\n rowTranslation: Animated.Value;\n rowState: number;\n leftWidth?: number;\n rightOffset?: number;\n rowWidth?: number;\n};\n\n/**\n * @deprecated use Reanimated version of Swipeable instead\n *\n * This component allows for implementing swipeable rows or similar interaction.\n */\n\nexport default class Swipeable extends Component<\n SwipeableProps,\n SwipeableState\n> {\n static defaultProps = {\n friction: 1,\n overshootFriction: 1,\n useNativeAnimations: true,\n };\n\n constructor(props: SwipeableProps) {\n super(props);\n const dragX = new Animated.Value(0);\n this.state = {\n dragX,\n rowTranslation: new Animated.Value(0),\n rowState: 0,\n leftWidth: undefined,\n rightOffset: undefined,\n rowWidth: undefined,\n };\n this.updateAnimatedEvent(props, this.state);\n\n this.onGestureEvent = Animated.event(\n [{ nativeEvent: { translationX: dragX } }],\n { useNativeDriver: props.useNativeAnimations! }\n );\n }\n\n shouldComponentUpdate(props: SwipeableProps, state: SwipeableState) {\n if (\n this.props.friction !== props.friction ||\n this.props.overshootLeft !== props.overshootLeft ||\n this.props.overshootRight !== props.overshootRight ||\n this.props.overshootFriction !== props.overshootFriction ||\n this.state.leftWidth !== state.leftWidth ||\n this.state.rightOffset !== state.rightOffset ||\n this.state.rowWidth !== state.rowWidth\n ) {\n this.updateAnimatedEvent(props, state);\n }\n\n return true;\n }\n\n private onGestureEvent?: (\n event: GestureEvent<PanGestureHandlerEventPayload>\n ) => void;\n private transX?: AnimatedInterpolation;\n private showLeftAction?: AnimatedInterpolation | Animated.Value;\n private leftActionTranslate?: AnimatedInterpolation;\n private showRightAction?: AnimatedInterpolation | Animated.Value;\n private rightActionTranslate?: AnimatedInterpolation;\n\n private updateAnimatedEvent = (\n props: SwipeableProps,\n state: SwipeableState\n ) => {\n const { friction, overshootFriction } = props;\n const { dragX, rowTranslation, leftWidth = 0, rowWidth = 0 } = state;\n const { rightOffset = rowWidth } = state;\n const rightWidth = Math.max(0, rowWidth - rightOffset);\n\n const { overshootLeft = leftWidth > 0, overshootRight = rightWidth > 0 } =\n props;\n\n const transX = Animated.add(\n rowTranslation,\n dragX.interpolate({\n inputRange: [0, friction!],\n outputRange: [0, 1],\n })\n ).interpolate({\n inputRange: [-rightWidth - 1, -rightWidth, leftWidth, leftWidth + 1],\n outputRange: [\n -rightWidth - (overshootRight ? 1 / overshootFriction! : 0),\n -rightWidth,\n leftWidth,\n leftWidth + (overshootLeft ? 1 / overshootFriction! : 0),\n ],\n });\n this.transX = transX;\n this.showLeftAction =\n leftWidth > 0\n ? transX.interpolate({\n inputRange: [-1, 0, leftWidth],\n outputRange: [0, 0, 1],\n })\n : new Animated.Value(0);\n this.leftActionTranslate = this.showLeftAction.interpolate({\n inputRange: [0, Number.MIN_VALUE],\n outputRange: [-10000, 0],\n extrapolate: 'clamp',\n });\n this.showRightAction =\n rightWidth > 0\n ? transX.interpolate({\n inputRange: [-rightWidth, 0, 1],\n outputRange: [1, 0, 0],\n })\n : new Animated.Value(0);\n this.rightActionTranslate = this.showRightAction.interpolate({\n inputRange: [0, Number.MIN_VALUE],\n outputRange: [-10000, 0],\n extrapolate: 'clamp',\n });\n };\n\n private onTapHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent<TapGestureHandlerEventPayload>) => {\n if (nativeEvent.oldState === State.ACTIVE) {\n this.close();\n }\n };\n\n private onHandlerStateChange = (\n ev: HandlerStateChangeEvent<PanGestureHandlerEventPayload>\n ) => {\n if (ev.nativeEvent.oldState === State.ACTIVE) {\n this.handleRelease(ev);\n }\n\n if (ev.nativeEvent.state === State.ACTIVE) {\n const { velocityX, translationX: dragX } = ev.nativeEvent;\n const { rowState } = this.state;\n const { friction } = this.props;\n\n const translationX = (dragX + DRAG_TOSS * velocityX) / friction!;\n\n const direction =\n rowState === -1\n ? 'right'\n : rowState === 1\n ? 'left'\n : translationX > 0\n ? 'left'\n : 'right';\n\n if (rowState === 0) {\n this.props.onSwipeableOpenStartDrag?.(direction);\n } else {\n this.props.onSwipeableCloseStartDrag?.(direction);\n }\n }\n };\n\n private handleRelease = (\n ev: HandlerStateChangeEvent<PanGestureHandlerEventPayload>\n ) => {\n const { velocityX, translationX: dragX } = ev.nativeEvent;\n const { leftWidth = 0, rowWidth = 0, rowState } = this.state;\n const { rightOffset = rowWidth } = this.state;\n const rightWidth = rowWidth - rightOffset;\n const {\n friction,\n leftThreshold = leftWidth / 2,\n rightThreshold = rightWidth / 2,\n } = this.props;\n\n const startOffsetX = this.currentOffset() + dragX / friction!;\n const translationX = (dragX + DRAG_TOSS * velocityX) / friction!;\n\n let toValue = 0;\n if (rowState === 0) {\n if (translationX > leftThreshold) {\n toValue = leftWidth;\n } else if (translationX < -rightThreshold) {\n toValue = -rightWidth;\n }\n } else if (rowState === 1) {\n // Swiped to left\n if (translationX > -leftThreshold) {\n toValue = leftWidth;\n }\n } else {\n // Swiped to right\n if (translationX < rightThreshold) {\n toValue = -rightWidth;\n }\n }\n\n this.animateRow(startOffsetX, toValue, velocityX / friction!);\n };\n\n private animateRow = (\n fromValue: number,\n toValue: number,\n velocityX?:\n | number\n | {\n x: number;\n y: number;\n }\n ) => {\n const { dragX, rowTranslation } = this.state;\n dragX.setValue(0);\n rowTranslation.setValue(fromValue);\n\n this.setState({ rowState: Math.sign(toValue) });\n Animated.spring(rowTranslation, {\n restSpeedThreshold: 1.7,\n restDisplacementThreshold: 0.4,\n velocity: velocityX,\n bounciness: 0,\n toValue,\n useNativeDriver: this.props.useNativeAnimations!,\n ...this.props.animationOptions,\n }).start(({ finished }) => {\n if (finished) {\n if (toValue > 0) {\n this.props.onSwipeableLeftOpen?.();\n this.props.onSwipeableOpen?.('left', this);\n } else if (toValue < 0) {\n this.props.onSwipeableRightOpen?.();\n this.props.onSwipeableOpen?.('right', this);\n } else {\n const closingDirection = fromValue > 0 ? 'left' : 'right';\n this.props.onSwipeableClose?.(closingDirection, this);\n }\n }\n });\n if (toValue > 0) {\n this.props.onSwipeableLeftWillOpen?.();\n this.props.onSwipeableWillOpen?.('left');\n } else if (toValue < 0) {\n this.props.onSwipeableRightWillOpen?.();\n this.props.onSwipeableWillOpen?.('right');\n } else {\n const closingDirection = fromValue > 0 ? 'left' : 'right';\n this.props.onSwipeableWillClose?.(closingDirection);\n }\n };\n\n private onRowLayout = ({ nativeEvent }: LayoutChangeEvent) => {\n this.setState({ rowWidth: nativeEvent.layout.width });\n };\n\n private currentOffset = () => {\n const { leftWidth = 0, rowWidth = 0, rowState } = this.state;\n const { rightOffset = rowWidth } = this.state;\n const rightWidth = rowWidth - rightOffset;\n if (rowState === 1) {\n return leftWidth;\n } else if (rowState === -1) {\n return -rightWidth;\n }\n return 0;\n };\n\n close = () => {\n this.animateRow(this.currentOffset(), 0);\n };\n\n openLeft = () => {\n const { leftWidth = 0 } = this.state;\n this.animateRow(this.currentOffset(), leftWidth);\n };\n\n openRight = () => {\n const { rowWidth = 0 } = this.state;\n const { rightOffset = rowWidth } = this.state;\n const rightWidth = rowWidth - rightOffset;\n this.animateRow(this.currentOffset(), -rightWidth);\n };\n\n reset = () => {\n const { dragX, rowTranslation } = this.state;\n dragX.setValue(0);\n rowTranslation.setValue(0);\n this.setState({ rowState: 0 });\n };\n\n render() {\n const { rowState } = this.state;\n const {\n children,\n renderLeftActions,\n renderRightActions,\n dragOffsetFromLeftEdge = 10,\n dragOffsetFromRightEdge = 10,\n } = this.props;\n\n const left = renderLeftActions && (\n <Animated.View\n style={[\n styles.leftActions,\n // All those and below parameters can have ! since they are all\n // asigned in constructor in `updateAnimatedEvent` but TS cannot spot\n // it for some reason\n { transform: [{ translateX: this.leftActionTranslate! }] },\n ]}>\n {renderLeftActions(this.showLeftAction!, this.transX!, this)}\n <View\n onLayout={({ nativeEvent }) =>\n this.setState({ leftWidth: nativeEvent.layout.x })\n }\n />\n </Animated.View>\n );\n\n const right = renderRightActions && (\n <Animated.View\n style={[\n styles.rightActions,\n { transform: [{ translateX: this.rightActionTranslate! }] },\n ]}>\n {renderRightActions(this.showRightAction!, this.transX!, this)}\n <View\n onLayout={({ nativeEvent }) =>\n this.setState({ rightOffset: nativeEvent.layout.x })\n }\n />\n </Animated.View>\n );\n\n return (\n <PanGestureHandler\n activeOffsetX={[-dragOffsetFromRightEdge, dragOffsetFromLeftEdge]}\n touchAction=\"pan-y\"\n {...this.props}\n onGestureEvent={this.onGestureEvent}\n onHandlerStateChange={this.onHandlerStateChange}>\n <Animated.View\n onLayout={this.onRowLayout}\n style={[styles.container, this.props.containerStyle]}>\n {left}\n {right}\n <TapGestureHandler\n enabled={rowState !== 0}\n touchAction=\"pan-y\"\n onHandlerStateChange={this.onTapHandlerStateChange}>\n <Animated.View\n pointerEvents={rowState === 0 ? 'auto' : 'box-only'}\n style={[\n {\n transform: [{ translateX: this.transX! }],\n },\n this.props.childrenContainerStyle,\n ]}>\n {children}\n </Animated.View>\n </TapGestureHandler>\n </Animated.View>\n </PanGestureHandler>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n overflow: 'hidden',\n },\n leftActions: {\n ...StyleSheet.absoluteFillObject,\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n },\n rightActions: {\n ...StyleSheet.absoluteFillObject,\n flexDirection: I18nManager.isRTL ? 'row' : 'row-reverse',\n },\n});\n"]}
@@ -89,7 +89,7 @@ export default class GenericTouchable extends Component {
89
89
  _defineProperty(this, "onLongPressDetected", () => {
90
90
  var _this$props$onLongPre, _this$props2;
91
91
 
92
- this.longPressDetected = true; // checked for in the caller of `onLongPressDetected`, but better to check twice
92
+ this.longPressDetected = true; // Checked for in the caller of `onLongPressDetected`, but better to check twice
93
93
 
94
94
  (_this$props$onLongPre = (_this$props2 = this.props).onLongPress) === null || _this$props$onLongPre === void 0 ? void 0 : _this$props$onLongPre.call(_this$props2);
95
95
  });
@@ -150,7 +150,7 @@ export default class GenericTouchable extends Component {
150
150
 
151
151
  componentDidMount() {
152
152
  this.reset();
153
- } // reset timeout to prevent memory leaks.
153
+ } // Reset timeout to prevent memory leaks.
154
154
 
155
155
 
156
156
  reset() {
@@ -202,7 +202,7 @@ export default class GenericTouchable extends Component {
202
202
  }
203
203
 
204
204
  componentWillUnmount() {
205
- // to prevent memory leaks
205
+ // To prevent memory leaks
206
206
  this.reset();
207
207
  }
208
208
 
@@ -214,7 +214,7 @@ export default class GenericTouchable extends Component {
214
214
  }
215
215
 
216
216
  onMoveOut() {
217
- // long press should no longer be detected
217
+ // Long press should no longer be detected
218
218
  clearTimeout(this.longPressTimeout);
219
219
  this.longPressTimeout = null;
220
220