react-native-gesture-handler 2.18.1 → 2.20.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (210) hide show
  1. package/README.md +1 -0
  2. package/android/build.gradle +11 -29
  3. package/android/fabric/src/main/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +1 -1
  4. package/android/paper/src/main/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +1 -1
  5. package/android/src/main/AndroidManifest.xml +1 -3
  6. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +21 -21
  7. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +2 -2
  8. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureUtils.kt +1 -0
  9. package/android/src/main/java/com/swmansion/gesturehandler/core/HoverGestureHandler.kt +16 -0
  10. package/android/src/main/java/com/swmansion/gesturehandler/core/LongPressGestureHandler.kt +80 -4
  11. package/android/src/main/java/com/swmansion/gesturehandler/core/PanGestureHandler.kt +8 -0
  12. package/android/src/main/java/com/swmansion/gesturehandler/core/PinchGestureHandler.kt +2 -1
  13. package/android/src/main/java/com/swmansion/gesturehandler/core/ScaleGestureDetector.java +10 -0
  14. package/android/src/main/java/com/swmansion/gesturehandler/core/StylusData.kt +103 -0
  15. package/android/src/main/java/com/swmansion/gesturehandler/core/Vector.kt +2 -2
  16. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +24 -15
  17. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +3 -0
  18. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/HoverGestureHandlerEventDataBuilder.kt +7 -0
  19. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/PanGestureHandlerEventDataBuilder.kt +7 -0
  20. package/android/src/main/jni/CMakeLists.txt +18 -9
  21. package/apple/Handlers/RNFlingHandler.h +1 -0
  22. package/apple/Handlers/RNFlingHandler.m +153 -19
  23. package/apple/Handlers/RNHoverHandler.m +44 -2
  24. package/apple/Handlers/RNLongPressHandler.m +111 -20
  25. package/apple/Handlers/RNManualHandler.m +53 -29
  26. package/apple/Handlers/RNNativeViewHandler.mm +22 -15
  27. package/apple/Handlers/RNPanHandler.m +57 -7
  28. package/apple/Handlers/RNRotationHandler.m +1 -1
  29. package/apple/RNGHStylusData.h +77 -0
  30. package/apple/RNGHStylusData.m +37 -0
  31. package/apple/RNGHUIKit.h +2 -0
  32. package/apple/RNGHVector.h +31 -0
  33. package/apple/RNGHVector.m +67 -0
  34. package/apple/RNGestureHandler.h +7 -0
  35. package/apple/{RNGestureHandler.m → RNGestureHandler.mm} +63 -1
  36. package/apple/RNGestureHandlerButtonComponentView.mm +41 -0
  37. package/apple/RNGestureHandlerDirection.h +25 -0
  38. package/apple/RNGestureHandlerEvents.h +3 -1
  39. package/apple/RNGestureHandlerEvents.m +11 -3
  40. package/lib/commonjs/PointerType.js +2 -1
  41. package/lib/commonjs/PointerType.js.map +1 -1
  42. package/lib/commonjs/components/GestureButtons.js +5 -1
  43. package/lib/commonjs/components/GestureButtons.js.map +1 -1
  44. package/lib/commonjs/components/GestureComponents.js.map +1 -1
  45. package/lib/commonjs/components/Pressable/Pressable.js +66 -78
  46. package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
  47. package/lib/commonjs/components/Pressable/index.js +0 -8
  48. package/lib/commonjs/components/Pressable/index.js.map +1 -1
  49. package/lib/commonjs/components/Pressable/utils.js +1 -23
  50. package/lib/commonjs/components/Pressable/utils.js.map +1 -1
  51. package/lib/commonjs/components/ReanimatedSwipeable.js +60 -41
  52. package/lib/commonjs/components/ReanimatedSwipeable.js.map +1 -1
  53. package/lib/commonjs/handlers/GestureHandlerEventPayload.js +4 -0
  54. package/lib/commonjs/handlers/LongPressGestureHandler.js +1 -1
  55. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
  56. package/lib/commonjs/handlers/createHandler.js +2 -1
  57. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  58. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +1 -1
  59. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js.map +1 -1
  60. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
  61. package/lib/commonjs/handlers/gestures/hoverGesture.js.map +1 -1
  62. package/lib/commonjs/handlers/gestures/longPressGesture.js +10 -0
  63. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
  64. package/lib/commonjs/jestUtils/jestUtils.js +12 -4
  65. package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
  66. package/lib/commonjs/mocks.js +16 -3
  67. package/lib/commonjs/mocks.js.map +1 -1
  68. package/lib/commonjs/utils.js +4 -0
  69. package/lib/commonjs/utils.js.map +1 -1
  70. package/lib/commonjs/web/constants.js +3 -3
  71. package/lib/commonjs/web/constants.js.map +1 -1
  72. package/lib/commonjs/web/handlers/GestureHandler.js +2 -3
  73. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  74. package/lib/commonjs/web/handlers/HoverGestureHandler.js +18 -1
  75. package/lib/commonjs/web/handlers/HoverGestureHandler.js.map +1 -1
  76. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +43 -9
  77. package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
  78. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +14 -3
  79. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
  80. package/lib/commonjs/web/handlers/PanGestureHandler.js +12 -1
  81. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  82. package/lib/commonjs/web/interfaces.js.map +1 -1
  83. package/lib/commonjs/web/tools/EventManager.js.map +1 -1
  84. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +55 -11
  85. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  86. package/lib/commonjs/web/tools/KeyboardEventManager.js +110 -0
  87. package/lib/commonjs/web/tools/KeyboardEventManager.js.map +1 -0
  88. package/lib/commonjs/web/tools/PointerEventManager.js +3 -37
  89. package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
  90. package/lib/commonjs/web/tools/Vector.js +4 -2
  91. package/lib/commonjs/web/tools/Vector.js.map +1 -1
  92. package/lib/commonjs/web/utils.js +187 -13
  93. package/lib/commonjs/web/utils.js.map +1 -1
  94. package/lib/module/PointerType.js +2 -1
  95. package/lib/module/PointerType.js.map +1 -1
  96. package/lib/module/components/GestureButtons.js +5 -1
  97. package/lib/module/components/GestureButtons.js.map +1 -1
  98. package/lib/module/components/GestureComponents.js.map +1 -1
  99. package/lib/module/components/Pressable/Pressable.js +67 -78
  100. package/lib/module/components/Pressable/Pressable.js.map +1 -1
  101. package/lib/module/components/Pressable/index.js +0 -1
  102. package/lib/module/components/Pressable/index.js.map +1 -1
  103. package/lib/module/components/Pressable/utils.js +1 -22
  104. package/lib/module/components/Pressable/utils.js.map +1 -1
  105. package/lib/module/components/ReanimatedSwipeable.js +58 -37
  106. package/lib/module/components/ReanimatedSwipeable.js.map +1 -1
  107. package/lib/module/handlers/GestureHandlerEventPayload.js +1 -1
  108. package/lib/module/handlers/LongPressGestureHandler.js +1 -1
  109. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
  110. package/lib/module/handlers/createHandler.js +2 -1
  111. package/lib/module/handlers/createHandler.js.map +1 -1
  112. package/lib/module/handlers/gestures/GestureDetector/utils.js +2 -2
  113. package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
  114. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  115. package/lib/module/handlers/gestures/hoverGesture.js.map +1 -1
  116. package/lib/module/handlers/gestures/longPressGesture.js +10 -0
  117. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
  118. package/lib/module/jestUtils/jestUtils.js +12 -4
  119. package/lib/module/jestUtils/jestUtils.js.map +1 -1
  120. package/lib/module/mocks.js +13 -3
  121. package/lib/module/mocks.js.map +1 -1
  122. package/lib/module/utils.js +1 -0
  123. package/lib/module/utils.js.map +1 -1
  124. package/lib/module/web/constants.js +1 -1
  125. package/lib/module/web/constants.js.map +1 -1
  126. package/lib/module/web/handlers/GestureHandler.js +2 -3
  127. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  128. package/lib/module/web/handlers/HoverGestureHandler.js +18 -1
  129. package/lib/module/web/handlers/HoverGestureHandler.js.map +1 -1
  130. package/lib/module/web/handlers/LongPressGestureHandler.js +43 -9
  131. package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
  132. package/lib/module/web/handlers/NativeViewGestureHandler.js +14 -3
  133. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  134. package/lib/module/web/handlers/PanGestureHandler.js +12 -1
  135. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  136. package/lib/module/web/interfaces.js.map +1 -1
  137. package/lib/module/web/tools/EventManager.js.map +1 -1
  138. package/lib/module/web/tools/GestureHandlerWebDelegate.js +54 -10
  139. package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  140. package/lib/module/web/tools/KeyboardEventManager.js +96 -0
  141. package/lib/module/web/tools/KeyboardEventManager.js.map +1 -0
  142. package/lib/module/web/tools/PointerEventManager.js +4 -38
  143. package/lib/module/web/tools/PointerEventManager.js.map +1 -1
  144. package/lib/module/web/tools/Vector.js +5 -3
  145. package/lib/module/web/tools/Vector.js.map +1 -1
  146. package/lib/module/web/utils.js +184 -13
  147. package/lib/module/web/utils.js.map +1 -1
  148. package/lib/typescript/PointerType.d.ts +2 -1
  149. package/lib/typescript/components/GestureComponents.d.ts +1 -1
  150. package/lib/typescript/components/Pressable/index.d.ts +1 -1
  151. package/lib/typescript/components/Pressable/utils.d.ts +3 -5
  152. package/lib/typescript/handlers/GestureHandlerEventPayload.d.ts +35 -0
  153. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +5 -1
  154. package/lib/typescript/handlers/gestures/gesture.d.ts +2 -2
  155. package/lib/typescript/handlers/gestures/hoverGesture.d.ts +1 -6
  156. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +5 -0
  157. package/lib/typescript/handlers/handlersRegistry.d.ts +1 -1
  158. package/lib/typescript/jestUtils/jestUtils.d.ts +1 -1
  159. package/lib/typescript/mocks.d.ts +4 -3
  160. package/lib/typescript/utils.d.ts +1 -0
  161. package/lib/typescript/web/constants.d.ts +1 -1
  162. package/lib/typescript/web/handlers/GestureHandler.d.ts +1 -1
  163. package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +2 -0
  164. package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +3 -0
  165. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +1 -0
  166. package/lib/typescript/web/handlers/PanGestureHandler.d.ts +3 -1
  167. package/lib/typescript/web/interfaces.d.ts +9 -4
  168. package/lib/typescript/web/tools/EventManager.d.ts +2 -2
  169. package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +1 -0
  170. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +6 -0
  171. package/lib/typescript/web/tools/KeyboardEventManager.d.ts +13 -0
  172. package/lib/typescript/web/utils.d.ts +2 -1
  173. package/package.json +3 -3
  174. package/src/PointerType.ts +1 -0
  175. package/src/components/GestureButtons.tsx +2 -1
  176. package/src/components/GestureComponents.tsx +1 -1
  177. package/src/components/Pressable/Pressable.tsx +77 -70
  178. package/src/components/Pressable/index.ts +1 -1
  179. package/src/components/Pressable/utils.ts +5 -49
  180. package/src/components/ReanimatedSwipeable.tsx +70 -47
  181. package/src/handlers/GestureHandlerEventPayload.ts +42 -0
  182. package/src/handlers/LongPressGestureHandler.ts +6 -0
  183. package/src/handlers/createHandler.tsx +1 -0
  184. package/src/handlers/gestures/GestureDetector/utils.ts +2 -2
  185. package/src/handlers/gestures/gesture.ts +3 -1
  186. package/src/handlers/gestures/hoverGesture.ts +1 -7
  187. package/src/handlers/gestures/longPressGesture.ts +9 -0
  188. package/src/jestUtils/jestUtils.ts +9 -1
  189. package/src/{mocks.ts → mocks.tsx} +8 -3
  190. package/src/utils.ts +2 -0
  191. package/src/web/constants.ts +1 -1
  192. package/src/web/handlers/GestureHandler.ts +4 -2
  193. package/src/web/handlers/HoverGestureHandler.ts +16 -2
  194. package/src/web/handlers/LongPressGestureHandler.ts +49 -10
  195. package/src/web/handlers/NativeViewGestureHandler.ts +14 -4
  196. package/src/web/handlers/PanGestureHandler.ts +14 -1
  197. package/src/web/interfaces.ts +10 -4
  198. package/src/web/tools/EventManager.ts +2 -4
  199. package/src/web/tools/GestureHandlerDelegate.ts +1 -0
  200. package/src/web/tools/GestureHandlerWebDelegate.ts +67 -10
  201. package/src/web/tools/KeyboardEventManager.ts +91 -0
  202. package/src/web/tools/PointerEventManager.ts +2 -38
  203. package/src/web/tools/Vector.ts +4 -3
  204. package/src/web/utils.ts +188 -13
  205. package/lib/commonjs/web/tools/TouchEventManager.js +0 -164
  206. package/lib/commonjs/web/tools/TouchEventManager.js.map +0 -1
  207. package/lib/module/web/tools/TouchEventManager.js +0 -149
  208. package/lib/module/web/tools/TouchEventManager.js.map +0 -1
  209. package/lib/typescript/web/tools/TouchEventManager.d.ts +0 -11
  210. package/src/web/tools/TouchEventManager.ts +0 -175
@@ -1 +1 @@
1
- {"version":3,"sources":["GestureComponents.tsx"],"names":["React","ScrollView","RNScrollView","Switch","RNSwitch","TextInput","RNTextInput","DrawerLayoutAndroid","RNDrawerLayoutAndroid","FlatList","RNFlatList","RefreshControl","RNRefreshControl","createNativeWrapper","nativeViewProps","toArray","disallowInterruption","shouldCancelWhenOutside","GHScrollView","forwardRef","props","ref","refreshControlGestureRef","useRef","refreshControl","waitFor","rest","cloneElement","undefined","shouldActivateOnStart","flatListProps","scrollViewProps","propName","value","Object","entries","includes","scrollProps"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {\n PropsWithChildren,\n ForwardedRef,\n RefAttributes,\n ReactElement,\n} from 'react';\nimport {\n ScrollView as RNScrollView,\n ScrollViewProps as RNScrollViewProps,\n Switch as RNSwitch,\n SwitchProps as RNSwitchProps,\n TextInput as RNTextInput,\n TextInputProps as RNTextInputProps,\n DrawerLayoutAndroid as RNDrawerLayoutAndroid,\n DrawerLayoutAndroidProps as RNDrawerLayoutAndroidProps,\n FlatList as RNFlatList,\n FlatListProps as RNFlatListProps,\n RefreshControl as RNRefreshControl,\n} from 'react-native';\n\nimport createNativeWrapper from '../handlers/createNativeWrapper';\n\nimport {\n NativeViewGestureHandlerProps,\n nativeViewProps,\n} from '../handlers/NativeViewGestureHandler';\n\nimport { toArray } from '../utils';\n\nexport const RefreshControl = createNativeWrapper(RNRefreshControl, {\n disallowInterruption: true,\n shouldCancelWhenOutside: false,\n});\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type RefreshControl = typeof RefreshControl & RNRefreshControl;\n\nconst GHScrollView = createNativeWrapper<PropsWithChildren<RNScrollViewProps>>(\n RNScrollView,\n {\n disallowInterruption: true,\n shouldCancelWhenOutside: false,\n }\n);\nexport const ScrollView = React.forwardRef<\n RNScrollView,\n RNScrollViewProps & NativeViewGestureHandlerProps\n>((props, ref) => {\n const refreshControlGestureRef = React.useRef<RefreshControl>(null);\n const { refreshControl, waitFor, ...rest } = props;\n\n return (\n <GHScrollView\n {...rest}\n // @ts-ignore `ref` exists on `GHScrollView`\n ref={ref}\n waitFor={[...toArray(waitFor ?? []), refreshControlGestureRef]}\n // @ts-ignore we don't pass `refreshing` prop as we only want to override the ref\n refreshControl={\n refreshControl\n ? React.cloneElement(refreshControl, {\n // @ts-ignore for reasons unknown to me, `ref` doesn't exist on the type inferred by TS\n ref: refreshControlGestureRef,\n })\n : undefined\n }\n />\n );\n});\n// Backward type compatibility with https://github.com/software-mansion/react-native-gesture-handler/blob/db78d3ca7d48e8ba57482d3fe9b0a15aa79d9932/react-native-gesture-handler.d.ts#L440-L457\n// include methods of wrapped components by creating an intersection type with the RN component instead of duplicating them.\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type ScrollView = typeof GHScrollView & RNScrollView;\n\nexport const Switch = createNativeWrapper<RNSwitchProps>(RNSwitch, {\n shouldCancelWhenOutside: false,\n shouldActivateOnStart: true,\n disallowInterruption: true,\n});\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type Switch = typeof Switch & RNSwitch;\n\nexport const TextInput = createNativeWrapper<RNTextInputProps>(RNTextInput);\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type TextInput = typeof TextInput & RNTextInput;\n\nexport const DrawerLayoutAndroid = createNativeWrapper<\n PropsWithChildren<RNDrawerLayoutAndroidProps>\n>(RNDrawerLayoutAndroid, { disallowInterruption: true });\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type DrawerLayoutAndroid = typeof DrawerLayoutAndroid &\n RNDrawerLayoutAndroid;\n\nexport const FlatList = React.forwardRef((props, ref) => {\n const refreshControlGestureRef = React.useRef<RefreshControl>(null);\n\n const { waitFor, refreshControl, ...rest } = props;\n\n const flatListProps = {};\n const scrollViewProps = {};\n for (const [propName, value] of Object.entries(rest)) {\n // https://github.com/microsoft/TypeScript/issues/26255\n if ((nativeViewProps as readonly string[]).includes(propName)) {\n // @ts-ignore - this function cannot have generic type so we have to ignore this error\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n scrollViewProps[propName] = value;\n } else {\n // @ts-ignore - this function cannot have generic type so we have to ignore this error\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n flatListProps[propName] = value;\n }\n }\n\n return (\n // @ts-ignore - this function cannot have generic type so we have to ignore this error\n <RNFlatList\n ref={ref}\n {...flatListProps}\n renderScrollComponent={(scrollProps) => (\n <ScrollView\n {...{\n ...scrollProps,\n ...scrollViewProps,\n waitFor: [...toArray(waitFor ?? []), refreshControlGestureRef],\n }}\n />\n )}\n // @ts-ignore we don't pass `refreshing` prop as we only want to override the ref\n refreshControl={\n refreshControl\n ? React.cloneElement(refreshControl, {\n // @ts-ignore for reasons unknown to me, `ref` doesn't exist on the type inferred by TS\n ref: refreshControlGestureRef,\n })\n : undefined\n }\n />\n );\n}) as <ItemT = any>(\n props: PropsWithChildren<\n RNFlatListProps<ItemT> &\n RefAttributes<FlatList<ItemT>> &\n NativeViewGestureHandlerProps\n >,\n ref: ForwardedRef<FlatList<ItemT>>\n) => ReactElement | null;\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type FlatList<ItemT = any> = typeof FlatList & RNFlatList<ItemT>;\n"]}
1
+ {"version":3,"sources":["GestureComponents.tsx"],"names":["React","ScrollView","RNScrollView","Switch","RNSwitch","TextInput","RNTextInput","DrawerLayoutAndroid","RNDrawerLayoutAndroid","FlatList","RNFlatList","RefreshControl","RNRefreshControl","createNativeWrapper","nativeViewProps","toArray","disallowInterruption","shouldCancelWhenOutside","GHScrollView","forwardRef","props","ref","refreshControlGestureRef","useRef","refreshControl","waitFor","rest","cloneElement","undefined","shouldActivateOnStart","flatListProps","scrollViewProps","propName","value","Object","entries","includes","scrollProps"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {\n PropsWithChildren,\n ForwardedRef,\n RefAttributes,\n ReactElement,\n} from 'react';\nimport {\n ScrollView as RNScrollView,\n ScrollViewProps as RNScrollViewProps,\n Switch as RNSwitch,\n SwitchProps as RNSwitchProps,\n TextInput as RNTextInput,\n TextInputProps as RNTextInputProps,\n DrawerLayoutAndroid as RNDrawerLayoutAndroid,\n DrawerLayoutAndroidProps as RNDrawerLayoutAndroidProps,\n FlatList as RNFlatList,\n FlatListProps as RNFlatListProps,\n RefreshControl as RNRefreshControl,\n} from 'react-native';\n\nimport createNativeWrapper from '../handlers/createNativeWrapper';\n\nimport {\n NativeViewGestureHandlerProps,\n nativeViewProps,\n} from '../handlers/NativeViewGestureHandler';\n\nimport { toArray } from '../utils';\n\nexport const RefreshControl = createNativeWrapper(RNRefreshControl, {\n disallowInterruption: true,\n shouldCancelWhenOutside: false,\n});\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type RefreshControl = typeof RefreshControl & RNRefreshControl;\n\nconst GHScrollView = createNativeWrapper<PropsWithChildren<RNScrollViewProps>>(\n RNScrollView,\n {\n disallowInterruption: true,\n shouldCancelWhenOutside: false,\n }\n);\nexport const ScrollView = React.forwardRef<\n RNScrollView,\n RNScrollViewProps & NativeViewGestureHandlerProps\n>((props, ref) => {\n const refreshControlGestureRef = React.useRef<RefreshControl>(null);\n const { refreshControl, waitFor, ...rest } = props;\n\n return (\n <GHScrollView\n {...rest}\n // @ts-ignore `ref` exists on `GHScrollView`\n ref={ref}\n waitFor={[...toArray(waitFor ?? []), refreshControlGestureRef]}\n // @ts-ignore we don't pass `refreshing` prop as we only want to override the ref\n refreshControl={\n refreshControl\n ? React.cloneElement(refreshControl, {\n // @ts-ignore for reasons unknown to me, `ref` doesn't exist on the type inferred by TS\n ref: refreshControlGestureRef,\n })\n : undefined\n }\n />\n );\n});\n// Backward type compatibility with https://github.com/software-mansion/react-native-gesture-handler/blob/db78d3ca7d48e8ba57482d3fe9b0a15aa79d9932/react-native-gesture-handler.d.ts#L440-L457\n// include methods of wrapped components by creating an intersection type with the RN component instead of duplicating them.\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type ScrollView = typeof GHScrollView & RNScrollView;\n\nexport const Switch = createNativeWrapper<RNSwitchProps>(RNSwitch, {\n shouldCancelWhenOutside: false,\n shouldActivateOnStart: true,\n disallowInterruption: true,\n});\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type Switch = typeof Switch & RNSwitch;\n\nexport const TextInput = createNativeWrapper<RNTextInputProps>(RNTextInput);\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type TextInput = typeof TextInput & RNTextInput;\n\nexport const DrawerLayoutAndroid = createNativeWrapper<\n PropsWithChildren<RNDrawerLayoutAndroidProps>\n>(RNDrawerLayoutAndroid, { disallowInterruption: true });\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type DrawerLayoutAndroid = typeof DrawerLayoutAndroid &\n RNDrawerLayoutAndroid;\n\nexport const FlatList = React.forwardRef((props, ref) => {\n const refreshControlGestureRef = React.useRef<RefreshControl>(null);\n\n const { waitFor, refreshControl, ...rest } = props;\n\n const flatListProps = {};\n const scrollViewProps = {};\n for (const [propName, value] of Object.entries(rest)) {\n // https://github.com/microsoft/TypeScript/issues/26255\n if ((nativeViewProps as readonly string[]).includes(propName)) {\n // @ts-ignore - this function cannot have generic type so we have to ignore this error\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n scrollViewProps[propName] = value;\n } else {\n // @ts-ignore - this function cannot have generic type so we have to ignore this error\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n flatListProps[propName] = value;\n }\n }\n\n return (\n // @ts-ignore - this function cannot have generic type so we have to ignore this error\n <RNFlatList\n ref={ref}\n {...flatListProps}\n renderScrollComponent={(scrollProps) => (\n <ScrollView\n {...{\n ...scrollProps,\n ...scrollViewProps,\n waitFor: [...toArray(waitFor ?? []), refreshControlGestureRef],\n }}\n />\n )}\n // @ts-ignore we don't pass `refreshing` prop as we only want to override the ref\n refreshControl={\n refreshControl\n ? React.cloneElement(refreshControl, {\n // @ts-ignore for reasons unknown to me, `ref` doesn't exist on the type inferred by TS\n ref: refreshControlGestureRef,\n })\n : undefined\n }\n />\n );\n}) as <ItemT = any>(\n props: PropsWithChildren<\n Omit<RNFlatListProps<ItemT>, 'renderScrollComponent'> &\n RefAttributes<FlatList<ItemT>> &\n NativeViewGestureHandlerProps\n >,\n ref: ForwardedRef<FlatList<ItemT>>\n) => ReactElement | null;\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type FlatList<ItemT = any> = typeof FlatList & RNFlatList<ItemT>;\n"]}
@@ -1,75 +1,77 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
1
3
  import React, { useCallback, useMemo, useRef, useState } from 'react';
2
4
  import { GestureObjects as Gesture } from '../../handlers/gestures/gestureObjects';
3
5
  import { GestureDetector } from '../../handlers/gestures/GestureDetector';
4
- import { Platform, View, processColor, StyleSheet } from 'react-native';
6
+ import { Platform, processColor } from 'react-native';
5
7
  import NativeButton from '../GestureHandlerButton';
6
- import { numberAsInset, gestureToPressableEvent, isTouchWithinInset, gestureTouchToPressableEvent, addInsets, splitStyles } from './utils';
8
+ import { numberAsInset, gestureToPressableEvent, isTouchWithinInset, gestureTouchToPressableEvent, addInsets } from './utils';
7
9
  import { PressabilityDebugView } from '../../handlers/PressabilityDebugView';
10
+ import { INT32_MAX } from '../../utils';
8
11
  const DEFAULT_LONG_PRESS_DURATION = 500;
9
12
  export default function Pressable(props) {
10
- var _props$testOnly_press, _props$delayLongPress, _props$unstable_press, _props$android_disabl, _props$android_ripple, _props$android_ripple2, _props$android_ripple3, _props$android_ripple4;
11
-
12
- const [pressedState, setPressedState] = useState((_props$testOnly_press = props.testOnly_pressed) !== null && _props$testOnly_press !== void 0 ? _props$testOnly_press : false);
13
+ var _android_ripple$color, _android_ripple$radiu;
14
+
15
+ const {
16
+ testOnly_pressed,
17
+ hitSlop,
18
+ pressRetentionOffset,
19
+ delayHoverIn,
20
+ onHoverIn,
21
+ delayHoverOut,
22
+ onHoverOut,
23
+ delayLongPress,
24
+ unstable_pressDelay,
25
+ onPress,
26
+ onPressIn,
27
+ onPressOut,
28
+ onLongPress,
29
+ style,
30
+ children,
31
+ android_disableSound,
32
+ android_ripple,
33
+ disabled,
34
+ ...remainingProps
35
+ } = props;
36
+ const [pressedState, setPressedState] = useState(testOnly_pressed !== null && testOnly_pressed !== void 0 ? testOnly_pressed : false);
13
37
  const pressableRef = useRef(null); // Disabled when onLongPress has been called
14
38
 
15
39
  const isPressCallbackEnabled = useRef(true);
16
40
  const hasPassedBoundsChecks = useRef(false);
17
41
  const shouldPreventNativeEffects = useRef(false);
18
- const normalizedHitSlop = useMemo(() => {
19
- var _props$hitSlop;
20
-
21
- return typeof props.hitSlop === 'number' ? numberAsInset(props.hitSlop) : (_props$hitSlop = props.hitSlop) !== null && _props$hitSlop !== void 0 ? _props$hitSlop : {};
22
- }, [props.hitSlop]);
23
- const normalizedPressRetentionOffset = useMemo(() => {
24
- var _props$pressRetention;
25
-
26
- return typeof props.pressRetentionOffset === 'number' ? numberAsInset(props.pressRetentionOffset) : (_props$pressRetention = props.pressRetentionOffset) !== null && _props$pressRetention !== void 0 ? _props$pressRetention : {};
27
- }, [props.pressRetentionOffset]);
42
+ const normalizedHitSlop = useMemo(() => typeof hitSlop === 'number' ? numberAsInset(hitSlop) : hitSlop !== null && hitSlop !== void 0 ? hitSlop : {}, [hitSlop]);
43
+ const normalizedPressRetentionOffset = useMemo(() => typeof pressRetentionOffset === 'number' ? numberAsInset(pressRetentionOffset) : pressRetentionOffset !== null && pressRetentionOffset !== void 0 ? pressRetentionOffset : {}, [pressRetentionOffset]);
28
44
  const hoverInTimeout = useRef(null);
29
45
  const hoverOutTimeout = useRef(null);
30
46
  const hoverGesture = useMemo(() => Gesture.Hover().manualActivation(true) // Stops Hover from blocking Native gesture activation on web
31
47
  .cancelsTouchesInView(false).onBegin(event => {
32
- var _props$onHoverIn2;
33
-
34
48
  if (hoverOutTimeout.current) {
35
49
  clearTimeout(hoverOutTimeout.current);
36
50
  }
37
51
 
38
- if (props.delayHoverIn) {
39
- hoverInTimeout.current = setTimeout(() => {
40
- var _props$onHoverIn;
41
-
42
- return (_props$onHoverIn = props.onHoverIn) === null || _props$onHoverIn === void 0 ? void 0 : _props$onHoverIn.call(props, gestureToPressableEvent(event));
43
- }, props.delayHoverIn);
52
+ if (delayHoverIn) {
53
+ hoverInTimeout.current = setTimeout(() => onHoverIn === null || onHoverIn === void 0 ? void 0 : onHoverIn(gestureToPressableEvent(event)), delayHoverIn);
44
54
  return;
45
55
  }
46
56
 
47
- (_props$onHoverIn2 = props.onHoverIn) === null || _props$onHoverIn2 === void 0 ? void 0 : _props$onHoverIn2.call(props, gestureToPressableEvent(event));
57
+ onHoverIn === null || onHoverIn === void 0 ? void 0 : onHoverIn(gestureToPressableEvent(event));
48
58
  }).onFinalize(event => {
49
- var _props$onHoverOut2;
50
-
51
59
  if (hoverInTimeout.current) {
52
60
  clearTimeout(hoverInTimeout.current);
53
61
  }
54
62
 
55
- if (props.delayHoverOut) {
56
- hoverOutTimeout.current = setTimeout(() => {
57
- var _props$onHoverOut;
58
-
59
- return (_props$onHoverOut = props.onHoverOut) === null || _props$onHoverOut === void 0 ? void 0 : _props$onHoverOut.call(props, gestureToPressableEvent(event));
60
- }, props.delayHoverOut);
63
+ if (delayHoverOut) {
64
+ hoverOutTimeout.current = setTimeout(() => onHoverOut === null || onHoverOut === void 0 ? void 0 : onHoverOut(gestureToPressableEvent(event)), delayHoverOut);
61
65
  return;
62
66
  }
63
67
 
64
- (_props$onHoverOut2 = props.onHoverOut) === null || _props$onHoverOut2 === void 0 ? void 0 : _props$onHoverOut2.call(props, gestureToPressableEvent(event));
65
- }), [props]);
68
+ onHoverOut === null || onHoverOut === void 0 ? void 0 : onHoverOut(gestureToPressableEvent(event));
69
+ }), [delayHoverIn, delayHoverOut, onHoverIn, onHoverOut]);
66
70
  const pressDelayTimeoutRef = useRef(null);
67
71
  const isTouchPropagationAllowed = useRef(false); // iOS only: due to varying flow of gestures, events sometimes have to be saved for later use
68
72
 
69
73
  const deferredEventPayload = useRef(null);
70
74
  const pressInHandler = useCallback(event => {
71
- var _props$onPressIn;
72
-
73
75
  if (handlingOnTouchesDown.current) {
74
76
  deferredEventPayload.current = event;
75
77
  }
@@ -79,19 +81,17 @@ export default function Pressable(props) {
79
81
  }
80
82
 
81
83
  deferredEventPayload.current = null;
82
- (_props$onPressIn = props.onPressIn) === null || _props$onPressIn === void 0 ? void 0 : _props$onPressIn.call(props, event);
84
+ onPressIn === null || onPressIn === void 0 ? void 0 : onPressIn(event);
83
85
  isPressCallbackEnabled.current = true;
84
86
  pressDelayTimeoutRef.current = null;
85
87
  setPressedState(true);
86
- }, [props]);
88
+ }, [onPressIn]);
87
89
  const pressOutHandler = useCallback(event => {
88
- var _props$onPressOut;
89
-
90
90
  if (!hasPassedBoundsChecks.current || event.nativeEvent.touches.length > event.nativeEvent.changedTouches.length) {
91
91
  return;
92
92
  }
93
93
 
94
- if (props.unstable_pressDelay && pressDelayTimeoutRef.current !== null) {
94
+ if (unstable_pressDelay && pressDelayTimeoutRef.current !== null) {
95
95
  // When delay is preemptively finished by lifting touches,
96
96
  // we want to immediately activate it's effects - pressInHandler,
97
97
  // even though we are located at the pressOutHandler
@@ -100,18 +100,14 @@ export default function Pressable(props) {
100
100
  }
101
101
 
102
102
  if (deferredEventPayload.current) {
103
- var _props$onPressIn2;
104
-
105
- (_props$onPressIn2 = props.onPressIn) === null || _props$onPressIn2 === void 0 ? void 0 : _props$onPressIn2.call(props, deferredEventPayload.current);
103
+ onPressIn === null || onPressIn === void 0 ? void 0 : onPressIn(deferredEventPayload.current);
106
104
  deferredEventPayload.current = null;
107
105
  }
108
106
 
109
- (_props$onPressOut = props.onPressOut) === null || _props$onPressOut === void 0 ? void 0 : _props$onPressOut.call(props, event);
107
+ onPressOut === null || onPressOut === void 0 ? void 0 : onPressOut(event);
110
108
 
111
109
  if (isPressCallbackEnabled.current) {
112
- var _props$onPress;
113
-
114
- (_props$onPress = props.onPress) === null || _props$onPress === void 0 ? void 0 : _props$onPress.call(props, event);
110
+ onPress === null || onPress === void 0 ? void 0 : onPress(event);
115
111
  }
116
112
 
117
113
  if (longPressTimeoutRef.current) {
@@ -123,7 +119,7 @@ export default function Pressable(props) {
123
119
  hasPassedBoundsChecks.current = false;
124
120
  isPressCallbackEnabled.current = true;
125
121
  setPressedState(false);
126
- }, [pressInHandler, props]);
122
+ }, [onPress, onPressIn, onPressOut, pressInHandler, unstable_pressDelay]);
127
123
  const handlingOnTouchesDown = useRef(false);
128
124
  const onEndHandlingTouchesDown = useRef(null);
129
125
  const cancelledMidPress = useRef(false);
@@ -133,9 +129,7 @@ export default function Pressable(props) {
133
129
  }
134
130
 
135
131
  if (hasPassedBoundsChecks.current) {
136
- var _props$onLongPress;
137
-
138
- (_props$onLongPress = props.onLongPress) === null || _props$onLongPress === void 0 ? void 0 : _props$onLongPress.call(props, gestureTouchToPressableEvent(event));
132
+ onLongPress === null || onLongPress === void 0 ? void 0 : onLongPress(gestureTouchToPressableEvent(event));
139
133
  isPressCallbackEnabled.current = false;
140
134
  }
141
135
 
@@ -143,11 +137,11 @@ export default function Pressable(props) {
143
137
  clearTimeout(longPressTimeoutRef.current);
144
138
  longPressTimeoutRef.current = null;
145
139
  }
146
- }, [props]);
140
+ }, [onLongPress]);
147
141
  const longPressTimeoutRef = useRef(null);
148
- const longPressMinDuration = ((_props$delayLongPress = props.delayLongPress) !== null && _props$delayLongPress !== void 0 ? _props$delayLongPress : DEFAULT_LONG_PRESS_DURATION) + ((_props$unstable_press = props.unstable_pressDelay) !== null && _props$unstable_press !== void 0 ? _props$unstable_press : 0);
149
- const pressAndTouchGesture = useMemo(() => Gesture.LongPress().minDuration(Number.MAX_SAFE_INTEGER) // Stops long press from blocking native gesture
150
- .maxDistance(Number.MAX_SAFE_INTEGER) // Stops long press from cancelling after set distance
142
+ const longPressMinDuration = (delayLongPress !== null && delayLongPress !== void 0 ? delayLongPress : DEFAULT_LONG_PRESS_DURATION) + (unstable_pressDelay !== null && unstable_pressDelay !== void 0 ? unstable_pressDelay : 0);
143
+ const pressAndTouchGesture = useMemo(() => Gesture.LongPress().minDuration(INT32_MAX) // Stops long press from blocking native gesture
144
+ .maxDistance(INT32_MAX) // Stops long press from cancelling after set distance
151
145
  .cancelsTouchesInView(false).onTouchesDown(event => {
152
146
  var _pressableRef$current;
153
147
 
@@ -172,10 +166,10 @@ export default function Pressable(props) {
172
166
  longPressTimeoutRef.current = setTimeout(() => activateLongPress(event), longPressMinDuration);
173
167
  }
174
168
 
175
- if (props.unstable_pressDelay) {
169
+ if (unstable_pressDelay) {
176
170
  pressDelayTimeoutRef.current = setTimeout(() => {
177
171
  pressInHandler(gestureTouchToPressableEvent(event));
178
- }, props.unstable_pressDelay);
172
+ }, unstable_pressDelay);
179
173
  } else {
180
174
  pressInHandler(gestureTouchToPressableEvent(event));
181
175
  }
@@ -214,7 +208,7 @@ export default function Pressable(props) {
214
208
  }
215
209
 
216
210
  pressOutHandler(gestureTouchToPressableEvent(event));
217
- }), [activateLongPress, longPressMinDuration, normalizedHitSlop, pressInHandler, pressOutHandler, props.unstable_pressDelay]); // RNButton is placed inside ButtonGesture to enable Android's ripple and to capture non-propagating events
211
+ }), [activateLongPress, longPressMinDuration, normalizedHitSlop, pressInHandler, pressOutHandler, unstable_pressDelay]); // RNButton is placed inside ButtonGesture to enable Android's ripple and to capture non-propagating events
218
212
 
219
213
  const buttonGesture = useMemo(() => Gesture.Native().onBegin(() => {
220
214
  // Android sets BEGAN state on press down
@@ -258,7 +252,7 @@ export default function Pressable(props) {
258
252
  isTouchPropagationAllowed.current = true;
259
253
  }), [pressInHandler, pressOutHandler]);
260
254
  const appliedHitSlop = addInsets(normalizedHitSlop, normalizedPressRetentionOffset);
261
- const isPressableEnabled = props.disabled !== true;
255
+ const isPressableEnabled = disabled !== true;
262
256
  const gestures = [pressAndTouchGesture, hoverGesture, buttonGesture];
263
257
 
264
258
  for (const gesture of gestures) {
@@ -275,35 +269,30 @@ export default function Pressable(props) {
275
269
 
276
270
  buttonGesture.hitSlop(normalizedHitSlop);
277
271
  const gesture = Gesture.Simultaneous(...gestures);
278
- const defaultRippleColor = props.android_ripple ? undefined : 'transparent'; // `cursor: 'pointer'` on `RNButton` crashes iOS
272
+ const defaultRippleColor = android_ripple ? undefined : 'transparent'; // `cursor: 'pointer'` on `RNButton` crashes iOS
279
273
 
280
274
  const pointerStyle = Platform.OS === 'web' ? {
281
275
  cursor: 'pointer'
282
276
  } : {};
283
- const styleProp = typeof props.style === 'function' ? props.style({
277
+ const styleProp = typeof style === 'function' ? style({
284
278
  pressed: pressedState
285
- }) : props.style;
286
- const childrenProp = typeof props.children === 'function' ? props.children({
279
+ }) : style;
280
+ const childrenProp = typeof children === 'function' ? children({
287
281
  pressed: pressedState
288
- }) : props.children;
289
- const flattenedStyles = StyleSheet.flatten(styleProp !== null && styleProp !== void 0 ? styleProp : {});
290
- const [innerStyles, outerStyles] = splitStyles(flattenedStyles);
291
- return /*#__PURE__*/React.createElement(View, {
292
- style: outerStyles
293
- }, /*#__PURE__*/React.createElement(GestureDetector, {
282
+ }) : children;
283
+ return /*#__PURE__*/React.createElement(GestureDetector, {
294
284
  gesture: gesture
295
- }, /*#__PURE__*/React.createElement(NativeButton, {
285
+ }, /*#__PURE__*/React.createElement(NativeButton, _extends({}, remainingProps, {
296
286
  ref: pressableRef,
297
- testID: props.testID,
298
287
  hitSlop: appliedHitSlop,
299
288
  enabled: isPressableEnabled,
300
- touchSoundDisabled: (_props$android_disabl = props.android_disableSound) !== null && _props$android_disabl !== void 0 ? _props$android_disabl : undefined,
301
- rippleColor: processColor((_props$android_ripple = (_props$android_ripple2 = props.android_ripple) === null || _props$android_ripple2 === void 0 ? void 0 : _props$android_ripple2.color) !== null && _props$android_ripple !== void 0 ? _props$android_ripple : defaultRippleColor),
302
- rippleRadius: (_props$android_ripple3 = (_props$android_ripple4 = props.android_ripple) === null || _props$android_ripple4 === void 0 ? void 0 : _props$android_ripple4.radius) !== null && _props$android_ripple3 !== void 0 ? _props$android_ripple3 : undefined,
303
- style: [StyleSheet.absoluteFill, pointerStyle, innerStyles]
304
- }, childrenProp, __DEV__ ? /*#__PURE__*/React.createElement(PressabilityDebugView, {
289
+ touchSoundDisabled: android_disableSound !== null && android_disableSound !== void 0 ? android_disableSound : undefined,
290
+ rippleColor: processColor((_android_ripple$color = android_ripple === null || android_ripple === void 0 ? void 0 : android_ripple.color) !== null && _android_ripple$color !== void 0 ? _android_ripple$color : defaultRippleColor),
291
+ rippleRadius: (_android_ripple$radiu = android_ripple === null || android_ripple === void 0 ? void 0 : android_ripple.radius) !== null && _android_ripple$radiu !== void 0 ? _android_ripple$radiu : undefined,
292
+ style: [pointerStyle, styleProp]
293
+ }), childrenProp, __DEV__ ? /*#__PURE__*/React.createElement(PressabilityDebugView, {
305
294
  color: "red",
306
295
  hitSlop: normalizedHitSlop
307
- }) : null)));
296
+ }) : null));
308
297
  }
309
298
  //# sourceMappingURL=Pressable.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["Pressable.tsx"],"names":["React","useCallback","useMemo","useRef","useState","GestureObjects","Gesture","GestureDetector","Platform","View","processColor","StyleSheet","NativeButton","numberAsInset","gestureToPressableEvent","isTouchWithinInset","gestureTouchToPressableEvent","addInsets","splitStyles","PressabilityDebugView","DEFAULT_LONG_PRESS_DURATION","Pressable","props","pressedState","setPressedState","testOnly_pressed","pressableRef","isPressCallbackEnabled","hasPassedBoundsChecks","shouldPreventNativeEffects","normalizedHitSlop","hitSlop","normalizedPressRetentionOffset","pressRetentionOffset","hoverInTimeout","hoverOutTimeout","hoverGesture","Hover","manualActivation","cancelsTouchesInView","onBegin","event","current","clearTimeout","delayHoverIn","setTimeout","onHoverIn","onFinalize","delayHoverOut","onHoverOut","pressDelayTimeoutRef","isTouchPropagationAllowed","deferredEventPayload","pressInHandler","handlingOnTouchesDown","onPressIn","pressOutHandler","nativeEvent","touches","length","changedTouches","unstable_pressDelay","onPressOut","onPress","longPressTimeoutRef","onEndHandlingTouchesDown","cancelledMidPress","activateLongPress","onLongPress","longPressMinDuration","delayLongPress","pressAndTouchGesture","LongPress","minDuration","Number","MAX_SAFE_INTEGER","maxDistance","onTouchesDown","measure","_x","_y","width","height","at","onTouchesUp","onTouchesCancelled","allTouches","buttonGesture","Native","OS","onStart","appliedHitSlop","isPressableEnabled","disabled","gestures","gesture","enabled","runOnJS","shouldCancelWhenOutside","Simultaneous","defaultRippleColor","android_ripple","undefined","pointerStyle","cursor","styleProp","style","pressed","childrenProp","children","flattenedStyles","flatten","innerStyles","outerStyles","testID","android_disableSound","color","radius","absoluteFill","__DEV__"],"mappings":"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","sourcesContent":["import React, { useCallback, useMemo, useRef, useState } from 'react';\nimport { GestureObjects as Gesture } from '../../handlers/gestures/gestureObjects';\nimport { GestureDetector } from '../../handlers/gestures/GestureDetector';\nimport { PressableEvent, PressableProps } from './PressableProps';\nimport {\n Insets,\n Platform,\n StyleProp,\n View,\n ViewStyle,\n processColor,\n StyleSheet,\n} from 'react-native';\nimport NativeButton from '../GestureHandlerButton';\nimport {\n numberAsInset,\n gestureToPressableEvent,\n isTouchWithinInset,\n gestureTouchToPressableEvent,\n addInsets,\n splitStyles,\n} from './utils';\nimport { PressabilityDebugView } from '../../handlers/PressabilityDebugView';\nimport { GestureTouchEvent } from '../../handlers/gestureHandlerCommon';\n\nconst DEFAULT_LONG_PRESS_DURATION = 500;\n\nexport default function Pressable(props: PressableProps) {\n const [pressedState, setPressedState] = useState(\n props.testOnly_pressed ?? false\n );\n\n const pressableRef = useRef<View>(null);\n\n // Disabled when onLongPress has been called\n const isPressCallbackEnabled = useRef<boolean>(true);\n const hasPassedBoundsChecks = useRef<boolean>(false);\n const shouldPreventNativeEffects = useRef<boolean>(false);\n\n const normalizedHitSlop: Insets = useMemo(\n () =>\n typeof props.hitSlop === 'number'\n ? numberAsInset(props.hitSlop)\n : props.hitSlop ?? {},\n [props.hitSlop]\n );\n\n const normalizedPressRetentionOffset: Insets = useMemo(\n () =>\n typeof props.pressRetentionOffset === 'number'\n ? numberAsInset(props.pressRetentionOffset)\n : props.pressRetentionOffset ?? {},\n [props.pressRetentionOffset]\n );\n\n const hoverInTimeout = useRef<number | null>(null);\n const hoverOutTimeout = useRef<number | null>(null);\n\n const hoverGesture = useMemo(\n () =>\n Gesture.Hover()\n .manualActivation(true) // Stops Hover from blocking Native gesture activation on web\n .cancelsTouchesInView(false)\n .onBegin((event) => {\n if (hoverOutTimeout.current) {\n clearTimeout(hoverOutTimeout.current);\n }\n if (props.delayHoverIn) {\n hoverInTimeout.current = setTimeout(\n () => props.onHoverIn?.(gestureToPressableEvent(event)),\n props.delayHoverIn\n );\n return;\n }\n props.onHoverIn?.(gestureToPressableEvent(event));\n })\n .onFinalize((event) => {\n if (hoverInTimeout.current) {\n clearTimeout(hoverInTimeout.current);\n }\n if (props.delayHoverOut) {\n hoverOutTimeout.current = setTimeout(\n () => props.onHoverOut?.(gestureToPressableEvent(event)),\n props.delayHoverOut\n );\n return;\n }\n props.onHoverOut?.(gestureToPressableEvent(event));\n }),\n [props]\n );\n\n const pressDelayTimeoutRef = useRef<number | null>(null);\n const isTouchPropagationAllowed = useRef<boolean>(false);\n\n // iOS only: due to varying flow of gestures, events sometimes have to be saved for later use\n const deferredEventPayload = useRef<PressableEvent | null>(null);\n\n const pressInHandler = useCallback(\n (event: PressableEvent) => {\n if (handlingOnTouchesDown.current) {\n deferredEventPayload.current = event;\n }\n\n if (!isTouchPropagationAllowed.current) {\n return;\n }\n\n deferredEventPayload.current = null;\n\n props.onPressIn?.(event);\n isPressCallbackEnabled.current = true;\n pressDelayTimeoutRef.current = null;\n setPressedState(true);\n },\n [props]\n );\n\n const pressOutHandler = useCallback(\n (event: PressableEvent) => {\n if (\n !hasPassedBoundsChecks.current ||\n event.nativeEvent.touches.length >\n event.nativeEvent.changedTouches.length\n ) {\n return;\n }\n\n if (props.unstable_pressDelay && pressDelayTimeoutRef.current !== null) {\n // When delay is preemptively finished by lifting touches,\n // we want to immediately activate it's effects - pressInHandler,\n // even though we are located at the pressOutHandler\n clearTimeout(pressDelayTimeoutRef.current);\n pressInHandler(event);\n }\n\n if (deferredEventPayload.current) {\n props.onPressIn?.(deferredEventPayload.current);\n deferredEventPayload.current = null;\n }\n\n props.onPressOut?.(event);\n\n if (isPressCallbackEnabled.current) {\n props.onPress?.(event);\n }\n\n if (longPressTimeoutRef.current) {\n clearTimeout(longPressTimeoutRef.current);\n longPressTimeoutRef.current = null;\n }\n\n isTouchPropagationAllowed.current = false;\n hasPassedBoundsChecks.current = false;\n isPressCallbackEnabled.current = true;\n setPressedState(false);\n },\n [pressInHandler, props]\n );\n\n const handlingOnTouchesDown = useRef<boolean>(false);\n const onEndHandlingTouchesDown = useRef<(() => void) | null>(null);\n const cancelledMidPress = useRef<boolean>(false);\n\n const activateLongPress = useCallback(\n (event: GestureTouchEvent) => {\n if (!isTouchPropagationAllowed.current) {\n return;\n }\n\n if (hasPassedBoundsChecks.current) {\n props.onLongPress?.(gestureTouchToPressableEvent(event));\n isPressCallbackEnabled.current = false;\n }\n\n if (longPressTimeoutRef.current) {\n clearTimeout(longPressTimeoutRef.current);\n longPressTimeoutRef.current = null;\n }\n },\n [props]\n );\n\n const longPressTimeoutRef = useRef<number | null>(null);\n const longPressMinDuration =\n (props.delayLongPress ?? DEFAULT_LONG_PRESS_DURATION) +\n (props.unstable_pressDelay ?? 0);\n\n const pressAndTouchGesture = useMemo(\n () =>\n Gesture.LongPress()\n .minDuration(Number.MAX_SAFE_INTEGER) // Stops long press from blocking native gesture\n .maxDistance(Number.MAX_SAFE_INTEGER) // Stops long press from cancelling after set distance\n .cancelsTouchesInView(false)\n .onTouchesDown((event) => {\n handlingOnTouchesDown.current = true;\n pressableRef.current?.measure((_x, _y, width, height) => {\n if (\n !isTouchWithinInset(\n {\n width,\n height,\n },\n normalizedHitSlop,\n event.changedTouches.at(-1)\n ) ||\n hasPassedBoundsChecks.current ||\n cancelledMidPress.current\n ) {\n cancelledMidPress.current = false;\n onEndHandlingTouchesDown.current = null;\n handlingOnTouchesDown.current = false;\n return;\n }\n\n hasPassedBoundsChecks.current = true;\n\n // In case of multiple touches, the first one starts long press gesture\n if (longPressTimeoutRef.current === null) {\n // Start long press gesture timer\n longPressTimeoutRef.current = setTimeout(\n () => activateLongPress(event),\n longPressMinDuration\n );\n }\n\n if (props.unstable_pressDelay) {\n pressDelayTimeoutRef.current = setTimeout(() => {\n pressInHandler(gestureTouchToPressableEvent(event));\n }, props.unstable_pressDelay);\n } else {\n pressInHandler(gestureTouchToPressableEvent(event));\n }\n\n onEndHandlingTouchesDown.current?.();\n onEndHandlingTouchesDown.current = null;\n handlingOnTouchesDown.current = false;\n });\n })\n .onTouchesUp((event) => {\n if (handlingOnTouchesDown.current) {\n onEndHandlingTouchesDown.current = () =>\n pressOutHandler(gestureTouchToPressableEvent(event));\n return;\n }\n // On iOS, short taps will make LongPress gesture call onTouchesUp before Native gesture calls onStart\n // This variable ensures that onStart isn't detected as the first gesture since Pressable is pressed.\n if (deferredEventPayload.current !== null) {\n shouldPreventNativeEffects.current = true;\n }\n pressOutHandler(gestureTouchToPressableEvent(event));\n })\n .onTouchesCancelled((event) => {\n isPressCallbackEnabled.current = false;\n\n if (handlingOnTouchesDown.current) {\n cancelledMidPress.current = true;\n onEndHandlingTouchesDown.current = () =>\n pressOutHandler(gestureTouchToPressableEvent(event));\n return;\n }\n\n if (\n !hasPassedBoundsChecks.current ||\n event.allTouches.length > event.changedTouches.length\n ) {\n return;\n }\n\n pressOutHandler(gestureTouchToPressableEvent(event));\n }),\n [\n activateLongPress,\n longPressMinDuration,\n normalizedHitSlop,\n pressInHandler,\n pressOutHandler,\n props.unstable_pressDelay,\n ]\n );\n\n // RNButton is placed inside ButtonGesture to enable Android's ripple and to capture non-propagating events\n const buttonGesture = useMemo(\n () =>\n Gesture.Native()\n .onBegin(() => {\n // Android sets BEGAN state on press down\n if (Platform.OS === 'android') {\n isTouchPropagationAllowed.current = true;\n }\n })\n .onStart(() => {\n if (Platform.OS === 'web') {\n isTouchPropagationAllowed.current = true;\n }\n\n // iOS sets ACTIVE state on press down\n if (Platform.OS !== 'ios') {\n return;\n }\n\n if (deferredEventPayload.current) {\n isTouchPropagationAllowed.current = true;\n\n if (hasPassedBoundsChecks.current) {\n pressInHandler(deferredEventPayload.current);\n deferredEventPayload.current = null;\n } else {\n pressOutHandler(deferredEventPayload.current);\n isTouchPropagationAllowed.current = false;\n }\n\n return;\n }\n\n if (hasPassedBoundsChecks.current) {\n isTouchPropagationAllowed.current = true;\n return;\n }\n\n if (shouldPreventNativeEffects.current) {\n shouldPreventNativeEffects.current = false;\n return;\n }\n\n isTouchPropagationAllowed.current = true;\n }),\n [pressInHandler, pressOutHandler]\n );\n\n const appliedHitSlop = addInsets(\n normalizedHitSlop,\n normalizedPressRetentionOffset\n );\n\n const isPressableEnabled = props.disabled !== true;\n\n const gestures = [pressAndTouchGesture, hoverGesture, buttonGesture];\n\n for (const gesture of gestures) {\n gesture.enabled(isPressableEnabled);\n gesture.runOnJS(true);\n gesture.hitSlop(appliedHitSlop);\n gesture.shouldCancelWhenOutside(false);\n\n if (Platform.OS !== 'web') {\n gesture.shouldCancelWhenOutside(true);\n }\n }\n\n // Uses different hitSlop, to activate on hitSlop area instead of pressRetentionOffset area\n buttonGesture.hitSlop(normalizedHitSlop);\n\n const gesture = Gesture.Simultaneous(...gestures);\n\n const defaultRippleColor = props.android_ripple ? undefined : 'transparent';\n\n // `cursor: 'pointer'` on `RNButton` crashes iOS\n const pointerStyle: StyleProp<ViewStyle> =\n Platform.OS === 'web' ? { cursor: 'pointer' } : {};\n\n const styleProp =\n typeof props.style === 'function'\n ? props.style({ pressed: pressedState })\n : props.style;\n\n const childrenProp =\n typeof props.children === 'function'\n ? props.children({ pressed: pressedState })\n : props.children;\n\n const flattenedStyles = StyleSheet.flatten(styleProp ?? {});\n\n const [innerStyles, outerStyles] = splitStyles(flattenedStyles);\n\n return (\n <View style={outerStyles}>\n <GestureDetector gesture={gesture}>\n <NativeButton\n ref={pressableRef}\n testID={props.testID}\n hitSlop={appliedHitSlop}\n enabled={isPressableEnabled}\n touchSoundDisabled={props.android_disableSound ?? undefined}\n rippleColor={processColor(\n props.android_ripple?.color ?? defaultRippleColor\n )}\n rippleRadius={props.android_ripple?.radius ?? undefined}\n style={[StyleSheet.absoluteFill, pointerStyle, innerStyles]}>\n {childrenProp}\n {__DEV__ ? (\n <PressabilityDebugView color=\"red\" hitSlop={normalizedHitSlop} />\n ) : null}\n </NativeButton>\n </GestureDetector>\n </View>\n );\n}\n"]}
1
+ {"version":3,"sources":["Pressable.tsx"],"names":["React","useCallback","useMemo","useRef","useState","GestureObjects","Gesture","GestureDetector","Platform","processColor","NativeButton","numberAsInset","gestureToPressableEvent","isTouchWithinInset","gestureTouchToPressableEvent","addInsets","PressabilityDebugView","INT32_MAX","DEFAULT_LONG_PRESS_DURATION","Pressable","props","testOnly_pressed","hitSlop","pressRetentionOffset","delayHoverIn","onHoverIn","delayHoverOut","onHoverOut","delayLongPress","unstable_pressDelay","onPress","onPressIn","onPressOut","onLongPress","style","children","android_disableSound","android_ripple","disabled","remainingProps","pressedState","setPressedState","pressableRef","isPressCallbackEnabled","hasPassedBoundsChecks","shouldPreventNativeEffects","normalizedHitSlop","normalizedPressRetentionOffset","hoverInTimeout","hoverOutTimeout","hoverGesture","Hover","manualActivation","cancelsTouchesInView","onBegin","event","current","clearTimeout","setTimeout","onFinalize","pressDelayTimeoutRef","isTouchPropagationAllowed","deferredEventPayload","pressInHandler","handlingOnTouchesDown","pressOutHandler","nativeEvent","touches","length","changedTouches","longPressTimeoutRef","onEndHandlingTouchesDown","cancelledMidPress","activateLongPress","longPressMinDuration","pressAndTouchGesture","LongPress","minDuration","maxDistance","onTouchesDown","measure","_x","_y","width","height","at","onTouchesUp","onTouchesCancelled","allTouches","buttonGesture","Native","OS","onStart","appliedHitSlop","isPressableEnabled","gestures","gesture","enabled","runOnJS","shouldCancelWhenOutside","Simultaneous","defaultRippleColor","undefined","pointerStyle","cursor","styleProp","pressed","childrenProp","color","radius","__DEV__"],"mappings":"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","sourcesContent":["import React, { useCallback, useMemo, useRef, useState } from 'react';\nimport { GestureObjects as Gesture } from '../../handlers/gestures/gestureObjects';\nimport { GestureDetector } from '../../handlers/gestures/GestureDetector';\nimport { PressableEvent, PressableProps } from './PressableProps';\nimport {\n Insets,\n Platform,\n StyleProp,\n View,\n ViewStyle,\n processColor,\n} from 'react-native';\nimport NativeButton from '../GestureHandlerButton';\nimport {\n numberAsInset,\n gestureToPressableEvent,\n isTouchWithinInset,\n gestureTouchToPressableEvent,\n addInsets,\n} from './utils';\nimport { PressabilityDebugView } from '../../handlers/PressabilityDebugView';\nimport { GestureTouchEvent } from '../../handlers/gestureHandlerCommon';\nimport { INT32_MAX } from '../../utils';\n\nconst DEFAULT_LONG_PRESS_DURATION = 500;\n\nexport default function Pressable(props: PressableProps) {\n const {\n testOnly_pressed,\n hitSlop,\n pressRetentionOffset,\n delayHoverIn,\n onHoverIn,\n delayHoverOut,\n onHoverOut,\n delayLongPress,\n unstable_pressDelay,\n onPress,\n onPressIn,\n onPressOut,\n onLongPress,\n style,\n children,\n android_disableSound,\n android_ripple,\n disabled,\n ...remainingProps\n } = props;\n\n const [pressedState, setPressedState] = useState(testOnly_pressed ?? false);\n\n const pressableRef = useRef<View>(null);\n\n // Disabled when onLongPress has been called\n const isPressCallbackEnabled = useRef<boolean>(true);\n const hasPassedBoundsChecks = useRef<boolean>(false);\n const shouldPreventNativeEffects = useRef<boolean>(false);\n\n const normalizedHitSlop: Insets = useMemo(\n () =>\n typeof hitSlop === 'number' ? numberAsInset(hitSlop) : hitSlop ?? {},\n [hitSlop]\n );\n\n const normalizedPressRetentionOffset: Insets = useMemo(\n () =>\n typeof pressRetentionOffset === 'number'\n ? numberAsInset(pressRetentionOffset)\n : pressRetentionOffset ?? {},\n [pressRetentionOffset]\n );\n\n const hoverInTimeout = useRef<number | null>(null);\n const hoverOutTimeout = useRef<number | null>(null);\n\n const hoverGesture = useMemo(\n () =>\n Gesture.Hover()\n .manualActivation(true) // Stops Hover from blocking Native gesture activation on web\n .cancelsTouchesInView(false)\n .onBegin((event) => {\n if (hoverOutTimeout.current) {\n clearTimeout(hoverOutTimeout.current);\n }\n if (delayHoverIn) {\n hoverInTimeout.current = setTimeout(\n () => onHoverIn?.(gestureToPressableEvent(event)),\n delayHoverIn\n );\n return;\n }\n onHoverIn?.(gestureToPressableEvent(event));\n })\n .onFinalize((event) => {\n if (hoverInTimeout.current) {\n clearTimeout(hoverInTimeout.current);\n }\n if (delayHoverOut) {\n hoverOutTimeout.current = setTimeout(\n () => onHoverOut?.(gestureToPressableEvent(event)),\n delayHoverOut\n );\n return;\n }\n onHoverOut?.(gestureToPressableEvent(event));\n }),\n [delayHoverIn, delayHoverOut, onHoverIn, onHoverOut]\n );\n\n const pressDelayTimeoutRef = useRef<number | null>(null);\n const isTouchPropagationAllowed = useRef<boolean>(false);\n\n // iOS only: due to varying flow of gestures, events sometimes have to be saved for later use\n const deferredEventPayload = useRef<PressableEvent | null>(null);\n\n const pressInHandler = useCallback(\n (event: PressableEvent) => {\n if (handlingOnTouchesDown.current) {\n deferredEventPayload.current = event;\n }\n\n if (!isTouchPropagationAllowed.current) {\n return;\n }\n\n deferredEventPayload.current = null;\n\n onPressIn?.(event);\n isPressCallbackEnabled.current = true;\n pressDelayTimeoutRef.current = null;\n setPressedState(true);\n },\n [onPressIn]\n );\n\n const pressOutHandler = useCallback(\n (event: PressableEvent) => {\n if (\n !hasPassedBoundsChecks.current ||\n event.nativeEvent.touches.length >\n event.nativeEvent.changedTouches.length\n ) {\n return;\n }\n\n if (unstable_pressDelay && pressDelayTimeoutRef.current !== null) {\n // When delay is preemptively finished by lifting touches,\n // we want to immediately activate it's effects - pressInHandler,\n // even though we are located at the pressOutHandler\n clearTimeout(pressDelayTimeoutRef.current);\n pressInHandler(event);\n }\n\n if (deferredEventPayload.current) {\n onPressIn?.(deferredEventPayload.current);\n deferredEventPayload.current = null;\n }\n\n onPressOut?.(event);\n\n if (isPressCallbackEnabled.current) {\n onPress?.(event);\n }\n\n if (longPressTimeoutRef.current) {\n clearTimeout(longPressTimeoutRef.current);\n longPressTimeoutRef.current = null;\n }\n\n isTouchPropagationAllowed.current = false;\n hasPassedBoundsChecks.current = false;\n isPressCallbackEnabled.current = true;\n setPressedState(false);\n },\n [onPress, onPressIn, onPressOut, pressInHandler, unstable_pressDelay]\n );\n\n const handlingOnTouchesDown = useRef<boolean>(false);\n const onEndHandlingTouchesDown = useRef<(() => void) | null>(null);\n const cancelledMidPress = useRef<boolean>(false);\n\n const activateLongPress = useCallback(\n (event: GestureTouchEvent) => {\n if (!isTouchPropagationAllowed.current) {\n return;\n }\n\n if (hasPassedBoundsChecks.current) {\n onLongPress?.(gestureTouchToPressableEvent(event));\n isPressCallbackEnabled.current = false;\n }\n\n if (longPressTimeoutRef.current) {\n clearTimeout(longPressTimeoutRef.current);\n longPressTimeoutRef.current = null;\n }\n },\n [onLongPress]\n );\n\n const longPressTimeoutRef = useRef<number | null>(null);\n const longPressMinDuration =\n (delayLongPress ?? DEFAULT_LONG_PRESS_DURATION) +\n (unstable_pressDelay ?? 0);\n\n const pressAndTouchGesture = useMemo(\n () =>\n Gesture.LongPress()\n .minDuration(INT32_MAX) // Stops long press from blocking native gesture\n .maxDistance(INT32_MAX) // Stops long press from cancelling after set distance\n .cancelsTouchesInView(false)\n .onTouchesDown((event) => {\n handlingOnTouchesDown.current = true;\n pressableRef.current?.measure((_x, _y, width, height) => {\n if (\n !isTouchWithinInset(\n {\n width,\n height,\n },\n normalizedHitSlop,\n event.changedTouches.at(-1)\n ) ||\n hasPassedBoundsChecks.current ||\n cancelledMidPress.current\n ) {\n cancelledMidPress.current = false;\n onEndHandlingTouchesDown.current = null;\n handlingOnTouchesDown.current = false;\n return;\n }\n\n hasPassedBoundsChecks.current = true;\n\n // In case of multiple touches, the first one starts long press gesture\n if (longPressTimeoutRef.current === null) {\n // Start long press gesture timer\n longPressTimeoutRef.current = setTimeout(\n () => activateLongPress(event),\n longPressMinDuration\n );\n }\n\n if (unstable_pressDelay) {\n pressDelayTimeoutRef.current = setTimeout(() => {\n pressInHandler(gestureTouchToPressableEvent(event));\n }, unstable_pressDelay);\n } else {\n pressInHandler(gestureTouchToPressableEvent(event));\n }\n\n onEndHandlingTouchesDown.current?.();\n onEndHandlingTouchesDown.current = null;\n handlingOnTouchesDown.current = false;\n });\n })\n .onTouchesUp((event) => {\n if (handlingOnTouchesDown.current) {\n onEndHandlingTouchesDown.current = () =>\n pressOutHandler(gestureTouchToPressableEvent(event));\n return;\n }\n // On iOS, short taps will make LongPress gesture call onTouchesUp before Native gesture calls onStart\n // This variable ensures that onStart isn't detected as the first gesture since Pressable is pressed.\n if (deferredEventPayload.current !== null) {\n shouldPreventNativeEffects.current = true;\n }\n pressOutHandler(gestureTouchToPressableEvent(event));\n })\n .onTouchesCancelled((event) => {\n isPressCallbackEnabled.current = false;\n\n if (handlingOnTouchesDown.current) {\n cancelledMidPress.current = true;\n onEndHandlingTouchesDown.current = () =>\n pressOutHandler(gestureTouchToPressableEvent(event));\n return;\n }\n\n if (\n !hasPassedBoundsChecks.current ||\n event.allTouches.length > event.changedTouches.length\n ) {\n return;\n }\n\n pressOutHandler(gestureTouchToPressableEvent(event));\n }),\n [\n activateLongPress,\n longPressMinDuration,\n normalizedHitSlop,\n pressInHandler,\n pressOutHandler,\n unstable_pressDelay,\n ]\n );\n\n // RNButton is placed inside ButtonGesture to enable Android's ripple and to capture non-propagating events\n const buttonGesture = useMemo(\n () =>\n Gesture.Native()\n .onBegin(() => {\n // Android sets BEGAN state on press down\n if (Platform.OS === 'android') {\n isTouchPropagationAllowed.current = true;\n }\n })\n .onStart(() => {\n if (Platform.OS === 'web') {\n isTouchPropagationAllowed.current = true;\n }\n\n // iOS sets ACTIVE state on press down\n if (Platform.OS !== 'ios') {\n return;\n }\n\n if (deferredEventPayload.current) {\n isTouchPropagationAllowed.current = true;\n\n if (hasPassedBoundsChecks.current) {\n pressInHandler(deferredEventPayload.current);\n deferredEventPayload.current = null;\n } else {\n pressOutHandler(deferredEventPayload.current);\n isTouchPropagationAllowed.current = false;\n }\n\n return;\n }\n\n if (hasPassedBoundsChecks.current) {\n isTouchPropagationAllowed.current = true;\n return;\n }\n\n if (shouldPreventNativeEffects.current) {\n shouldPreventNativeEffects.current = false;\n return;\n }\n\n isTouchPropagationAllowed.current = true;\n }),\n [pressInHandler, pressOutHandler]\n );\n\n const appliedHitSlop = addInsets(\n normalizedHitSlop,\n normalizedPressRetentionOffset\n );\n\n const isPressableEnabled = disabled !== true;\n\n const gestures = [pressAndTouchGesture, hoverGesture, buttonGesture];\n\n for (const gesture of gestures) {\n gesture.enabled(isPressableEnabled);\n gesture.runOnJS(true);\n gesture.hitSlop(appliedHitSlop);\n gesture.shouldCancelWhenOutside(false);\n\n if (Platform.OS !== 'web') {\n gesture.shouldCancelWhenOutside(true);\n }\n }\n\n // Uses different hitSlop, to activate on hitSlop area instead of pressRetentionOffset area\n buttonGesture.hitSlop(normalizedHitSlop);\n\n const gesture = Gesture.Simultaneous(...gestures);\n\n const defaultRippleColor = android_ripple ? undefined : 'transparent';\n\n // `cursor: 'pointer'` on `RNButton` crashes iOS\n const pointerStyle: StyleProp<ViewStyle> =\n Platform.OS === 'web' ? { cursor: 'pointer' } : {};\n\n const styleProp =\n typeof style === 'function' ? style({ pressed: pressedState }) : style;\n\n const childrenProp =\n typeof children === 'function'\n ? children({ pressed: pressedState })\n : children;\n\n return (\n <GestureDetector gesture={gesture}>\n <NativeButton\n {...remainingProps}\n ref={pressableRef}\n hitSlop={appliedHitSlop}\n enabled={isPressableEnabled}\n touchSoundDisabled={android_disableSound ?? undefined}\n rippleColor={processColor(android_ripple?.color ?? defaultRippleColor)}\n rippleRadius={android_ripple?.radius ?? undefined}\n style={[pointerStyle, styleProp]}>\n {childrenProp}\n {__DEV__ ? (\n <PressabilityDebugView color=\"red\" hitSlop={normalizedHitSlop} />\n ) : null}\n </NativeButton>\n </GestureDetector>\n );\n}\n"]}
@@ -1,3 +1,2 @@
1
- export { PressableProps } from './PressableProps';
2
1
  export { default } from './Pressable';
3
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":["PressableProps","default"],"mappings":"AAAA,SAASA,cAAT,QAA+B,kBAA/B;AACA,SAASC,OAAT,QAAwB,aAAxB","sourcesContent":["export { PressableProps } from './PressableProps';\nexport { default } from './Pressable';\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":["default"],"mappings":"AACA,SAASA,OAAT,QAAwB,aAAxB","sourcesContent":["export type { PressableProps } from './PressableProps';\nexport { default } from './Pressable';\n"]}
@@ -95,26 +95,5 @@ const gestureTouchToPressableEvent = event => {
95
95
  };
96
96
  };
97
97
 
98
- // Source:
99
- // - From ViewStyle extracted FlexStyle sub-interface which contains all of the box-model manipulating props.
100
- // - From FlexStyle handpicked those styles, which act on the inner part of the box-model.
101
- const innerStyleKeys = new Set(['alignContent', 'alignItems', 'flexBasis', 'flexDirection', 'flexWrap', 'rowGap', 'gap', 'columnGap', 'justifyContent', 'overflow', 'padding', 'paddingBottom', 'paddingEnd', 'paddingHorizontal', 'paddingLeft', 'paddingRight', 'paddingStart', 'paddingTop', 'paddingVertical', 'start', 'end', 'direction' // iOS only
102
- ]);
103
-
104
- const splitStyles = from => {
105
- const outerStyles = {};
106
- const innerStyles = {};
107
-
108
- for (const key in from) {
109
- if (innerStyleKeys.has(key)) {
110
- innerStyles[key] = from[key];
111
- } else {
112
- outerStyles[key] = from[key];
113
- }
114
- }
115
-
116
- return [innerStyles, outerStyles];
117
- };
118
-
119
- export { numberAsInset, addInsets, isTouchWithinInset, gestureToPressableEvent, gestureTouchToPressableEvent, splitStyles };
98
+ export { numberAsInset, addInsets, isTouchWithinInset, gestureToPressableEvent, gestureTouchToPressableEvent };
120
99
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["utils.ts"],"names":["numberAsInset","value","left","right","top","bottom","addInsets","a","b","touchDataToPressEvent","data","timestamp","targetId","identifier","id","locationX","x","locationY","y","pageX","absoluteX","pageY","absoluteY","target","touches","changedTouches","gestureToPressEvent","event","handlerTag","isTouchWithinInset","dimensions","inset","touch","width","height","gestureToPressableEvent","Date","now","pressEvent","nativeEvent","force","undefined","gestureTouchToPressableEvent","touchesList","allTouches","map","changedTouchesList","at","innerStyleKeys","Set","splitStyles","from","outerStyles","innerStyles","key","has"],"mappings":"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","sourcesContent":["import { Insets, ViewStyle } from 'react-native';\nimport { LongPressGestureHandlerEventPayload } from '../../handlers/GestureHandlerEventPayload';\nimport {\n TouchData,\n GestureStateChangeEvent,\n GestureTouchEvent,\n} from '../../handlers/gestureHandlerCommon';\nimport { HoverGestureHandlerEventPayload } from '../../handlers/gestures/hoverGesture';\nimport { InnerPressableEvent, PressableEvent } from './PressableProps';\n\nconst numberAsInset = (value: number): Insets => ({\n left: value,\n right: value,\n top: value,\n bottom: value,\n});\n\nconst addInsets = (a: Insets, b: Insets): Insets => ({\n left: (a.left ?? 0) + (b.left ?? 0),\n right: (a.right ?? 0) + (b.right ?? 0),\n top: (a.top ?? 0) + (b.top ?? 0),\n bottom: (a.bottom ?? 0) + (b.bottom ?? 0),\n});\n\nconst touchDataToPressEvent = (\n data: TouchData,\n timestamp: number,\n targetId: number\n): InnerPressableEvent => ({\n identifier: data.id,\n locationX: data.x,\n locationY: data.y,\n pageX: data.absoluteX,\n pageY: data.absoluteY,\n target: targetId,\n timestamp: timestamp,\n touches: [], // Always empty - legacy compatibility\n changedTouches: [], // Always empty - legacy compatibility\n});\n\nconst gestureToPressEvent = (\n event: GestureStateChangeEvent<\n HoverGestureHandlerEventPayload | LongPressGestureHandlerEventPayload\n >,\n timestamp: number,\n targetId: number\n): InnerPressableEvent => ({\n identifier: event.handlerTag,\n locationX: event.x,\n locationY: event.y,\n pageX: event.absoluteX,\n pageY: event.absoluteY,\n target: targetId,\n timestamp: timestamp,\n touches: [], // Always empty - legacy compatibility\n changedTouches: [], // Always empty - legacy compatibility\n});\n\nconst isTouchWithinInset = (\n dimensions: { width: number; height: number },\n inset: Insets,\n touch?: TouchData\n) =>\n (touch?.x ?? 0) < (inset.right ?? 0) + dimensions.width &&\n (touch?.y ?? 0) < (inset.bottom ?? 0) + dimensions.height &&\n (touch?.x ?? 0) > -(inset.left ?? 0) &&\n (touch?.y ?? 0) > -(inset.top ?? 0);\n\nconst gestureToPressableEvent = (\n event: GestureStateChangeEvent<\n HoverGestureHandlerEventPayload | LongPressGestureHandlerEventPayload\n >\n): PressableEvent => {\n const timestamp = Date.now();\n\n // As far as I can see, there isn't a conventional way of getting targetId with the data we get\n const targetId = 0;\n\n const pressEvent = gestureToPressEvent(event, timestamp, targetId);\n\n return {\n nativeEvent: {\n touches: [pressEvent],\n changedTouches: [pressEvent],\n identifier: pressEvent.identifier,\n locationX: event.x,\n locationY: event.y,\n pageX: event.absoluteX,\n pageY: event.absoluteY,\n target: targetId,\n timestamp: timestamp,\n force: undefined,\n },\n };\n};\n\nconst gestureTouchToPressableEvent = (\n event: GestureTouchEvent\n): PressableEvent => {\n const timestamp = Date.now();\n\n // As far as I can see, there isn't a conventional way of getting targetId with the data we get\n const targetId = 0;\n\n const touchesList = event.allTouches.map((touch: TouchData) =>\n touchDataToPressEvent(touch, timestamp, targetId)\n );\n const changedTouchesList = event.changedTouches.map((touch: TouchData) =>\n touchDataToPressEvent(touch, timestamp, targetId)\n );\n\n return {\n nativeEvent: {\n touches: touchesList,\n changedTouches: changedTouchesList,\n identifier: event.handlerTag,\n locationX: event.allTouches.at(0)?.x ?? -1,\n locationY: event.allTouches.at(0)?.y ?? -1,\n pageX: event.allTouches.at(0)?.absoluteX ?? -1,\n pageY: event.allTouches.at(0)?.absoluteY ?? -1,\n target: targetId,\n timestamp: timestamp,\n force: undefined,\n },\n };\n};\n\ntype StylePropKeys = (keyof ViewStyle)[];\n\n// Source:\n// - From ViewStyle extracted FlexStyle sub-interface which contains all of the box-model manipulating props.\n// - From FlexStyle handpicked those styles, which act on the inner part of the box-model.\nconst innerStyleKeys = new Set([\n 'alignContent',\n 'alignItems',\n 'flexBasis',\n 'flexDirection',\n 'flexWrap',\n 'rowGap',\n 'gap',\n 'columnGap',\n 'justifyContent',\n 'overflow',\n 'padding',\n 'paddingBottom',\n 'paddingEnd',\n 'paddingHorizontal',\n 'paddingLeft',\n 'paddingRight',\n 'paddingStart',\n 'paddingTop',\n 'paddingVertical',\n 'start',\n 'end',\n 'direction', // iOS only\n] as StylePropKeys);\n\nconst splitStyles = (from: ViewStyle): [ViewStyle, ViewStyle] => {\n const outerStyles: Record<string, unknown> = {};\n const innerStyles: Record<string, unknown> = {};\n\n for (const key in from) {\n if (innerStyleKeys.has(key as keyof ViewStyle)) {\n innerStyles[key] = from[key as keyof ViewStyle];\n } else {\n outerStyles[key] = from[key as keyof ViewStyle];\n }\n }\n\n return [innerStyles, outerStyles];\n};\n\nexport {\n numberAsInset,\n addInsets,\n isTouchWithinInset,\n gestureToPressableEvent,\n gestureTouchToPressableEvent,\n splitStyles,\n};\n"]}
1
+ {"version":3,"sources":["utils.ts"],"names":["numberAsInset","value","left","right","top","bottom","addInsets","a","b","touchDataToPressEvent","data","timestamp","targetId","identifier","id","locationX","x","locationY","y","pageX","absoluteX","pageY","absoluteY","target","touches","changedTouches","gestureToPressEvent","event","handlerTag","isTouchWithinInset","dimensions","inset","touch","width","height","gestureToPressableEvent","Date","now","pressEvent","nativeEvent","force","undefined","gestureTouchToPressableEvent","touchesList","allTouches","map","changedTouchesList","at"],"mappings":"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","sourcesContent":["import { Insets } from 'react-native';\nimport {\n HoverGestureHandlerEventPayload,\n LongPressGestureHandlerEventPayload,\n} from '../../handlers/GestureHandlerEventPayload';\nimport {\n TouchData,\n GestureStateChangeEvent,\n GestureTouchEvent,\n} from '../../handlers/gestureHandlerCommon';\nimport { InnerPressableEvent, PressableEvent } from './PressableProps';\n\nconst numberAsInset = (value: number): Insets => ({\n left: value,\n right: value,\n top: value,\n bottom: value,\n});\n\nconst addInsets = (a: Insets, b: Insets): Insets => ({\n left: (a.left ?? 0) + (b.left ?? 0),\n right: (a.right ?? 0) + (b.right ?? 0),\n top: (a.top ?? 0) + (b.top ?? 0),\n bottom: (a.bottom ?? 0) + (b.bottom ?? 0),\n});\n\nconst touchDataToPressEvent = (\n data: TouchData,\n timestamp: number,\n targetId: number\n): InnerPressableEvent => ({\n identifier: data.id,\n locationX: data.x,\n locationY: data.y,\n pageX: data.absoluteX,\n pageY: data.absoluteY,\n target: targetId,\n timestamp: timestamp,\n touches: [], // Always empty - legacy compatibility\n changedTouches: [], // Always empty - legacy compatibility\n});\n\nconst gestureToPressEvent = (\n event: GestureStateChangeEvent<\n HoverGestureHandlerEventPayload | LongPressGestureHandlerEventPayload\n >,\n timestamp: number,\n targetId: number\n): InnerPressableEvent => ({\n identifier: event.handlerTag,\n locationX: event.x,\n locationY: event.y,\n pageX: event.absoluteX,\n pageY: event.absoluteY,\n target: targetId,\n timestamp: timestamp,\n touches: [], // Always empty - legacy compatibility\n changedTouches: [], // Always empty - legacy compatibility\n});\n\nconst isTouchWithinInset = (\n dimensions: { width: number; height: number },\n inset: Insets,\n touch?: TouchData\n) =>\n (touch?.x ?? 0) < (inset.right ?? 0) + dimensions.width &&\n (touch?.y ?? 0) < (inset.bottom ?? 0) + dimensions.height &&\n (touch?.x ?? 0) > -(inset.left ?? 0) &&\n (touch?.y ?? 0) > -(inset.top ?? 0);\n\nconst gestureToPressableEvent = (\n event: GestureStateChangeEvent<\n HoverGestureHandlerEventPayload | LongPressGestureHandlerEventPayload\n >\n): PressableEvent => {\n const timestamp = Date.now();\n\n // As far as I can see, there isn't a conventional way of getting targetId with the data we get\n const targetId = 0;\n\n const pressEvent = gestureToPressEvent(event, timestamp, targetId);\n\n return {\n nativeEvent: {\n touches: [pressEvent],\n changedTouches: [pressEvent],\n identifier: pressEvent.identifier,\n locationX: event.x,\n locationY: event.y,\n pageX: event.absoluteX,\n pageY: event.absoluteY,\n target: targetId,\n timestamp: timestamp,\n force: undefined,\n },\n };\n};\n\nconst gestureTouchToPressableEvent = (\n event: GestureTouchEvent\n): PressableEvent => {\n const timestamp = Date.now();\n\n // As far as I can see, there isn't a conventional way of getting targetId with the data we get\n const targetId = 0;\n\n const touchesList = event.allTouches.map((touch: TouchData) =>\n touchDataToPressEvent(touch, timestamp, targetId)\n );\n const changedTouchesList = event.changedTouches.map((touch: TouchData) =>\n touchDataToPressEvent(touch, timestamp, targetId)\n );\n\n return {\n nativeEvent: {\n touches: touchesList,\n changedTouches: changedTouchesList,\n identifier: event.handlerTag,\n locationX: event.allTouches.at(0)?.x ?? -1,\n locationY: event.allTouches.at(0)?.y ?? -1,\n pageX: event.allTouches.at(0)?.absoluteX ?? -1,\n pageY: event.allTouches.at(0)?.absoluteY ?? -1,\n target: targetId,\n timestamp: timestamp,\n force: undefined,\n },\n };\n};\n\nexport {\n numberAsInset,\n addInsets,\n isTouchWithinInset,\n gestureToPressableEvent,\n gestureTouchToPressableEvent,\n};\n"]}