@tamagui/sheet 1.144.3 → 1.144.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/dist/cjs/GestureDetectorWrapper.cjs +48 -0
  2. package/dist/cjs/GestureDetectorWrapper.js +29 -0
  3. package/dist/cjs/GestureDetectorWrapper.js.map +6 -0
  4. package/dist/cjs/GestureDetectorWrapper.native.js +53 -0
  5. package/dist/cjs/GestureDetectorWrapper.native.js.map +1 -0
  6. package/dist/cjs/GestureSheetContext.cjs +52 -0
  7. package/dist/cjs/GestureSheetContext.js +43 -0
  8. package/dist/cjs/GestureSheetContext.js.map +6 -0
  9. package/dist/cjs/GestureSheetContext.native.js +56 -0
  10. package/dist/cjs/GestureSheetContext.native.js.map +1 -0
  11. package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
  12. package/dist/cjs/gestureState.cjs +39 -0
  13. package/dist/cjs/gestureState.js +34 -0
  14. package/dist/cjs/gestureState.js.map +6 -0
  15. package/dist/cjs/gestureState.native.js +42 -0
  16. package/dist/cjs/gestureState.native.js.map +1 -0
  17. package/dist/cjs/setupGestureHandler.cjs +46 -0
  18. package/dist/cjs/setupGestureHandler.js +38 -0
  19. package/dist/cjs/setupGestureHandler.js.map +6 -0
  20. package/dist/cjs/setupGestureHandler.native.js +50 -0
  21. package/dist/cjs/setupGestureHandler.native.js.map +1 -0
  22. package/dist/cjs/useGestureHandlerPan.cjs +136 -0
  23. package/dist/cjs/useGestureHandlerPan.js +126 -0
  24. package/dist/cjs/useGestureHandlerPan.js.map +6 -0
  25. package/dist/cjs/useGestureHandlerPan.native.js +145 -0
  26. package/dist/cjs/useGestureHandlerPan.native.js.map +1 -0
  27. package/dist/cjs/useKeyboardControllerSheet.cjs +38 -0
  28. package/dist/cjs/useKeyboardControllerSheet.js +34 -0
  29. package/dist/cjs/useKeyboardControllerSheet.js.map +6 -0
  30. package/dist/cjs/useKeyboardControllerSheet.native.js +114 -0
  31. package/dist/cjs/useKeyboardControllerSheet.native.js.map +1 -0
  32. package/dist/cjs/useSheetScrollViewGestures.cjs +123 -0
  33. package/dist/cjs/useSheetScrollViewGestures.js +102 -0
  34. package/dist/cjs/useSheetScrollViewGestures.js.map +6 -0
  35. package/dist/cjs/useSheetScrollViewGestures.native.js +110 -0
  36. package/dist/cjs/useSheetScrollViewGestures.native.js.map +1 -0
  37. package/dist/esm/GestureDetectorWrapper.js +15 -0
  38. package/dist/esm/GestureDetectorWrapper.js.map +6 -0
  39. package/dist/esm/GestureDetectorWrapper.mjs +25 -0
  40. package/dist/esm/GestureDetectorWrapper.mjs.map +1 -0
  41. package/dist/esm/GestureDetectorWrapper.native.js +27 -0
  42. package/dist/esm/GestureDetectorWrapper.native.js.map +1 -0
  43. package/dist/esm/GestureSheetContext.js +28 -0
  44. package/dist/esm/GestureSheetContext.js.map +6 -0
  45. package/dist/esm/GestureSheetContext.mjs +28 -0
  46. package/dist/esm/GestureSheetContext.mjs.map +1 -0
  47. package/dist/esm/GestureSheetContext.native.js +29 -0
  48. package/dist/esm/GestureSheetContext.native.js.map +1 -0
  49. package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
  50. package/dist/esm/gestureState.js +18 -0
  51. package/dist/esm/gestureState.js.map +6 -0
  52. package/dist/esm/gestureState.mjs +13 -0
  53. package/dist/esm/gestureState.mjs.map +1 -0
  54. package/dist/esm/gestureState.native.js +13 -0
  55. package/dist/esm/gestureState.native.js.map +1 -0
  56. package/dist/esm/setupGestureHandler.js +22 -0
  57. package/dist/esm/setupGestureHandler.js.map +6 -0
  58. package/dist/esm/setupGestureHandler.mjs +22 -0
  59. package/dist/esm/setupGestureHandler.mjs.map +1 -0
  60. package/dist/esm/setupGestureHandler.native.js +23 -0
  61. package/dist/esm/setupGestureHandler.native.js.map +1 -0
  62. package/dist/esm/useGestureHandlerPan.js +111 -0
  63. package/dist/esm/useGestureHandlerPan.js.map +6 -0
  64. package/dist/esm/useGestureHandlerPan.mjs +113 -0
  65. package/dist/esm/useGestureHandlerPan.mjs.map +1 -0
  66. package/dist/esm/useGestureHandlerPan.native.js +119 -0
  67. package/dist/esm/useGestureHandlerPan.native.js.map +1 -0
  68. package/dist/esm/useKeyboardControllerSheet.js +18 -0
  69. package/dist/esm/useKeyboardControllerSheet.js.map +6 -0
  70. package/dist/esm/useKeyboardControllerSheet.mjs +15 -0
  71. package/dist/esm/useKeyboardControllerSheet.mjs.map +1 -0
  72. package/dist/esm/useKeyboardControllerSheet.native.js +88 -0
  73. package/dist/esm/useKeyboardControllerSheet.native.js.map +1 -0
  74. package/dist/esm/useSheetScrollViewGestures.js +86 -0
  75. package/dist/esm/useSheetScrollViewGestures.js.map +6 -0
  76. package/dist/esm/useSheetScrollViewGestures.mjs +100 -0
  77. package/dist/esm/useSheetScrollViewGestures.mjs.map +1 -0
  78. package/dist/esm/useSheetScrollViewGestures.native.js +84 -0
  79. package/dist/esm/useSheetScrollViewGestures.native.js.map +1 -0
  80. package/dist/jsx/GestureDetectorWrapper.js +15 -0
  81. package/dist/jsx/GestureDetectorWrapper.js.map +6 -0
  82. package/dist/jsx/GestureDetectorWrapper.mjs +25 -0
  83. package/dist/jsx/GestureDetectorWrapper.mjs.map +1 -0
  84. package/dist/jsx/GestureDetectorWrapper.native.js +53 -0
  85. package/dist/jsx/GestureDetectorWrapper.native.js.map +1 -0
  86. package/dist/jsx/GestureSheetContext.js +28 -0
  87. package/dist/jsx/GestureSheetContext.js.map +6 -0
  88. package/dist/jsx/GestureSheetContext.mjs +28 -0
  89. package/dist/jsx/GestureSheetContext.mjs.map +1 -0
  90. package/dist/jsx/GestureSheetContext.native.js +56 -0
  91. package/dist/jsx/GestureSheetContext.native.js.map +1 -0
  92. package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
  93. package/dist/jsx/gestureState.js +18 -0
  94. package/dist/jsx/gestureState.js.map +6 -0
  95. package/dist/jsx/gestureState.mjs +13 -0
  96. package/dist/jsx/gestureState.mjs.map +1 -0
  97. package/dist/jsx/gestureState.native.js +42 -0
  98. package/dist/jsx/gestureState.native.js.map +1 -0
  99. package/dist/jsx/setupGestureHandler.js +22 -0
  100. package/dist/jsx/setupGestureHandler.js.map +6 -0
  101. package/dist/jsx/setupGestureHandler.mjs +22 -0
  102. package/dist/jsx/setupGestureHandler.mjs.map +1 -0
  103. package/dist/jsx/setupGestureHandler.native.js +50 -0
  104. package/dist/jsx/setupGestureHandler.native.js.map +1 -0
  105. package/dist/jsx/useGestureHandlerPan.js +111 -0
  106. package/dist/jsx/useGestureHandlerPan.js.map +6 -0
  107. package/dist/jsx/useGestureHandlerPan.mjs +113 -0
  108. package/dist/jsx/useGestureHandlerPan.mjs.map +1 -0
  109. package/dist/jsx/useGestureHandlerPan.native.js +145 -0
  110. package/dist/jsx/useGestureHandlerPan.native.js.map +1 -0
  111. package/dist/jsx/useKeyboardControllerSheet.js +18 -0
  112. package/dist/jsx/useKeyboardControllerSheet.js.map +6 -0
  113. package/dist/jsx/useKeyboardControllerSheet.mjs +15 -0
  114. package/dist/jsx/useKeyboardControllerSheet.mjs.map +1 -0
  115. package/dist/jsx/useKeyboardControllerSheet.native.js +114 -0
  116. package/dist/jsx/useKeyboardControllerSheet.native.js.map +1 -0
  117. package/dist/jsx/useSheetScrollViewGestures.js +86 -0
  118. package/dist/jsx/useSheetScrollViewGestures.js.map +6 -0
  119. package/dist/jsx/useSheetScrollViewGestures.mjs +100 -0
  120. package/dist/jsx/useSheetScrollViewGestures.mjs.map +1 -0
  121. package/dist/jsx/useSheetScrollViewGestures.native.js +110 -0
  122. package/dist/jsx/useSheetScrollViewGestures.native.js.map +1 -0
  123. package/package.json +19 -19
  124. package/types/GestureDetectorWrapper.d.ts.map +1 -0
  125. package/types/GestureSheetContext.d.ts.map +1 -0
  126. package/types/gestureState.d.ts.map +1 -0
  127. package/types/setupGestureHandler.d.ts.map +1 -0
  128. package/types/useGestureHandlerPan.d.ts.map +1 -0
  129. package/types/useKeyboardControllerSheet.d.ts.map +1 -0
  130. package/types/useKeyboardControllerSheet.native.d.ts.map +1 -0
  131. package/types/useSheetScrollViewGestures.d.ts.map +1 -0
  132. package/types/useSheetScrollViewGestures.native.d.ts.map +1 -0
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: !0
22
+ }), mod);
23
+ var useGestureHandlerPan_exports = {};
24
+ __export(useGestureHandlerPan_exports, {
25
+ useGestureHandlerPan: () => useGestureHandlerPan
26
+ });
27
+ module.exports = __toCommonJS(useGestureHandlerPan_exports);
28
+ var import_react = require("react"),
29
+ import_gestureState = require("./gestureState.native.js"),
30
+ AT_TOP_THRESHOLD = 5;
31
+ function useGestureHandlerPan(config) {
32
+ var {
33
+ positions,
34
+ frameSize,
35
+ setPosition,
36
+ animateTo,
37
+ stopSpring,
38
+ scrollBridge,
39
+ setIsDragging,
40
+ getCurrentPosition,
41
+ resisted,
42
+ disableDrag,
43
+ isShowingInnerSheet,
44
+ setAnimatedPosition,
45
+ scrollGestureRef
46
+ } = config,
47
+ gestureHandlerEnabled = (0, import_gestureState.isGestureHandlerEnabled)(),
48
+ panGestureRef = (0, import_react.useRef)(null),
49
+ gestureStateRef = (0, import_react.useRef)({
50
+ startY: 0,
51
+ // track last translation when pan was active (for position calculation after handoff)
52
+ lastPanTranslationY: 0,
53
+ // accumulated position offset from all pan movements
54
+ accumulatedOffset: 0,
55
+ // track previous translation for direction detection (like actions-sheet)
56
+ prevTranslationY: 0,
57
+ // track if scroll was engaged (scrollY > 0) at some point
58
+ scrollEngaged: !1,
59
+ // positions frozen at gesture start — keyboard may dismiss during drag (input blur),
60
+ // causing positions to revert. Frozen positions ensure stable snap calculation.
61
+ frozenPositions: [],
62
+ frozenMinY: 0,
63
+ // whether pan gesture actually started (vs just a tap in onBegin)
64
+ panStarted: !1
65
+ }),
66
+ onStart = (0, import_react.useCallback)(function () {
67
+ stopSpring();
68
+ }, [stopSpring]),
69
+ onEnd = (0, import_react.useCallback)(function (closestPoint, animationOverride) {
70
+ var _scrollBridge_setScrollEnabled;
71
+ setIsDragging(!1), scrollBridge.setParentDragging(!1), (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 || _scrollBridge_setScrollEnabled.call(scrollBridge, !0), setPosition(closestPoint), animateTo(closestPoint, animationOverride);
72
+ }, [setIsDragging, scrollBridge, setPosition, animateTo]),
73
+ panGesture = (0, import_react.useMemo)(function () {
74
+ if (!gestureHandlerEnabled || disableDrag || isShowingInnerSheet || !frameSize) return null;
75
+ var {
76
+ Gesture
77
+ } = (0, import_gestureState.getGestureHandlerState)();
78
+ if (!Gesture) return null;
79
+ var minY = positions[0],
80
+ gs = gestureStateRef.current,
81
+ gesture = Gesture.Pan().withRef(panGestureRef).activeOffsetY([-10, 10]).failOffsetX([-20, 20]).shouldCancelWhenOutside(!1).onBegin(function () {
82
+ gs.panStarted = !1, config.pauseKeyboardHandler && (config.pauseKeyboardHandler.current = !0);
83
+ var pos = getCurrentPosition(),
84
+ atTop = pos <= minY + AT_TOP_THRESHOLD,
85
+ currentScrollY = scrollBridge.y;
86
+ if (gs.startY = pos, gs.lastPanTranslationY = 0, gs.accumulatedOffset = 0, gs.prevTranslationY = 0, gs.scrollEngaged = currentScrollY > 0, gs.frozenPositions = [...positions], gs.frozenMinY = minY, !atTop) {
87
+ var _scrollBridge_setScrollEnabled;
88
+ (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 || _scrollBridge_setScrollEnabled.call(scrollBridge, !1, 0);
89
+ }
90
+ }).onStart(function () {
91
+ gs.panStarted = !0, setIsDragging(!0), scrollBridge.initialPosition = gs.startY, onStart();
92
+ }).onChange(function (event) {
93
+ var {
94
+ translationY
95
+ } = event,
96
+ isSwipingDown = gs.prevTranslationY < translationY,
97
+ deltaY = translationY - gs.prevTranslationY;
98
+ gs.prevTranslationY = translationY;
99
+ var scrollY = scrollBridge.y;
100
+ scrollY > 0 && (gs.scrollEngaged = !0);
101
+ var currentPos = gs.startY + gs.accumulatedOffset,
102
+ isCurrentlyAtTop = currentPos <= minY + AT_TOP_THRESHOLD,
103
+ nodeIsScrolling = scrollY > 0,
104
+ panHandles = !1,
105
+ hasScrollableContent = scrollBridge.hasScrollableContent !== !1;
106
+ if (isCurrentlyAtTop ? isSwipingDown ? nodeIsScrolling && hasScrollableContent ? panHandles = !1 : (gs.scrollEngaged, panHandles = !0) : hasScrollableContent ? panHandles = !1 : panHandles = !0 : isSwipingDown ? panHandles = !nodeIsScrolling || !hasScrollableContent : panHandles = !0, panHandles) {
107
+ var _scrollBridge_setScrollEnabled,
108
+ lockTo = isCurrentlyAtTop ? void 0 : 0;
109
+ (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 || _scrollBridge_setScrollEnabled.call(scrollBridge, !1, lockTo), gs.accumulatedOffset += deltaY;
110
+ var newPosition = resisted(gs.startY + gs.accumulatedOffset, minY);
111
+ scrollBridge.paneY = newPosition, setAnimatedPosition(newPosition), scrollBridge.setParentDragging(newPosition > minY);
112
+ } else {
113
+ var _scrollBridge_setScrollEnabled1;
114
+ (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 || _scrollBridge_setScrollEnabled1.call(scrollBridge, !0);
115
+ }
116
+ }).onEnd(function (event) {
117
+ var {
118
+ velocityY
119
+ } = event,
120
+ currentPos = gs.startY + gs.accumulatedOffset;
121
+ scrollBridge.scrollLockY = void 0;
122
+ var snapPositions = gs.frozenPositions.length > 0 ? gs.frozenPositions : positions,
123
+ snapMinY = gs.frozenPositions.length > 0 ? gs.frozenMinY : minY;
124
+ if (currentPos <= snapMinY + AT_TOP_THRESHOLD && scrollBridge.y > 0) {
125
+ onEnd(0);
126
+ return;
127
+ }
128
+ for (var velocity = velocityY / 1e3, projectedEnd = currentPos + frameSize * velocity * 0.2, closestPoint = 0, minDist = Number.POSITIVE_INFINITY, i = 0; i < snapPositions.length; i++) {
129
+ var pos = snapPositions[i],
130
+ dist = Math.abs(projectedEnd - pos);
131
+ dist < minDist && (minDist = dist, closestPoint = i);
132
+ }
133
+ onEnd(closestPoint);
134
+ }).onFinalize(function () {
135
+ scrollBridge.scrollLockY = void 0, gs.panStarted ? setIsDragging(!1) : config.pauseKeyboardHandler && (config.pauseKeyboardHandler.current = !1);
136
+ }).runOnJS(!0);
137
+ return scrollGestureRef?.current ? gesture.simultaneousWithExternalGesture(scrollGestureRef.current) : gesture;
138
+ }, [gestureHandlerEnabled, disableDrag, isShowingInnerSheet, frameSize, positions, scrollBridge, getCurrentPosition, resisted, onStart, onEnd, setIsDragging, setAnimatedPosition]);
139
+ return {
140
+ panGesture,
141
+ panGestureRef,
142
+ gestureHandlerEnabled
143
+ };
144
+ }
145
+ //# sourceMappingURL=useGestureHandlerPan.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","useGestureHandlerPan_exports","useGestureHandlerPan","module","exports","import_react","require","import_gestureState","AT_TOP_THRESHOLD","config","positions","frameSize","setPosition","animateTo","stopSpring","scrollBridge","setIsDragging","getCurrentPosition","resisted","disableDrag","isShowingInnerSheet","setAnimatedPosition","scrollGestureRef","gestureHandlerEnabled","isGestureHandlerEnabled","panGestureRef","useRef","gestureStateRef","startY","lastPanTranslationY","accumulatedOffset","prevTranslationY","scrollEngaged","frozenPositions","frozenMinY","panStarted","onStart","useCallback","onEnd","closestPoint","animationOverride","_scrollBridge_setScrollEnabled","setParentDragging","setScrollEnabled","panGesture","useMemo","Gesture","getGestureHandlerState","minY","gs","current","gesture","Pan","withRef","activeOffsetY","failOffsetX","shouldCancelWhenOutside","onBegin","pauseKeyboardHandler","pos","atTop","currentScrollY","y","initialPosition","onChange","event","translationY","isSwipingDown","deltaY","scrollY","currentPos","isCurrentlyAtTop","nodeIsScrolling","panHandles","hasScrollableContent","lockTo","newPosition","paneY","_scrollBridge_setScrollEnabled1","velocityY","scrollLockY","snapPositions","length","snapMinY","velocity","projectedEnd","minDist","Number","POSITIVE_INFINITY","i","dist","Math","abs","onFinalize","runOnJS","simultaneousWithExternalGesture"],"sources":["../../src/useGestureHandlerPan.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ import { useRef } from "react";
2
+ const noop = () => {
3
+ };
4
+ function useKeyboardControllerSheet(_options) {
5
+ const pauseKeyboardHandler = useRef(!1);
6
+ return {
7
+ keyboardControllerEnabled: !1,
8
+ keyboardHeight: 0,
9
+ isKeyboardVisible: !1,
10
+ dismissKeyboard: noop,
11
+ pauseKeyboardHandler,
12
+ flushPendingHide: noop
13
+ };
14
+ }
15
+ export {
16
+ useKeyboardControllerSheet
17
+ };
18
+ //# sourceMappingURL=useKeyboardControllerSheet.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/useKeyboardControllerSheet.ts"],
4
+ "mappings": "AAKA,SAAS,cAAc;AAMvB,MAAM,OAAO,MAAM;AAAC;AAEb,SAAS,2BACd,UAC+B;AAC/B,QAAM,uBAAuB,OAAO,EAAK;AACzC,SAAO;AAAA,IACL,2BAA2B;AAAA,IAC3B,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IACnB,iBAAiB;AAAA,IACjB;AAAA,IACA,kBAAkB;AAAA,EACpB;AACF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,15 @@
1
+ import { useRef } from "react";
2
+ const noop = () => {};
3
+ function useKeyboardControllerSheet(_options) {
4
+ const pauseKeyboardHandler = useRef(!1);
5
+ return {
6
+ keyboardControllerEnabled: !1,
7
+ keyboardHeight: 0,
8
+ isKeyboardVisible: !1,
9
+ dismissKeyboard: noop,
10
+ pauseKeyboardHandler,
11
+ flushPendingHide: noop
12
+ };
13
+ }
14
+ export { useKeyboardControllerSheet };
15
+ //# sourceMappingURL=useKeyboardControllerSheet.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useRef","noop","useKeyboardControllerSheet","_options","pauseKeyboardHandler","keyboardControllerEnabled","keyboardHeight","isKeyboardVisible","dismissKeyboard","flushPendingHide"],"sources":["../../src/useKeyboardControllerSheet.ts"],"sourcesContent":[null],"mappings":"AAKA,SAASA,MAAA,QAAc;AAMvB,MAAMC,IAAA,GAAOA,CAAA,KAAM,CAAC;AAEb,SAASC,2BACdC,QAAA,EAC+B;EAC/B,MAAMC,oBAAA,GAAuBJ,MAAA,CAAO,EAAK;EACzC,OAAO;IACLK,yBAAA,EAA2B;IAC3BC,cAAA,EAAgB;IAChBC,iBAAA,EAAmB;IACnBC,eAAA,EAAiBP,IAAA;IACjBG,oBAAA;IACAK,gBAAA,EAAkBR;EACpB;AACF","ignoreList":[]}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: !0
22
+ }), mod);
23
+ var useKeyboardControllerSheet_native_exports = {};
24
+ __export(useKeyboardControllerSheet_native_exports, {
25
+ useKeyboardControllerSheet: () => useKeyboardControllerSheet
26
+ });
27
+ module.exports = __toCommonJS(useKeyboardControllerSheet_native_exports);
28
+ var import_react = require("react"),
29
+ import_react_native = require("react-native"),
30
+ isKeyboardControllerEnabled = function () {
31
+ return !1;
32
+ },
33
+ getKeyboardControllerState = function () {
34
+ return {};
35
+ };
36
+ try {
37
+ var nativeModule = require("@tamagui/native");
38
+ isKeyboardControllerEnabled = nativeModule.isKeyboardControllerEnabled, getKeyboardControllerState = nativeModule.getKeyboardControllerState;
39
+ } catch {}
40
+ function useKeyboardControllerSheet(options) {
41
+ var {
42
+ enabled
43
+ } = options,
44
+ [keyboardHeight, setKeyboardHeight] = (0, import_react.useState)(0),
45
+ [isKeyboardVisible, setIsKeyboardVisible] = (0, import_react.useState)(!1),
46
+ keyboardControllerEnabled = isKeyboardControllerEnabled(),
47
+ pauseKeyboardHandler = (0, import_react.useRef)(!1),
48
+ pendingHide = (0, import_react.useRef)(!1),
49
+ dismissKeyboard = (0, import_react.useCallback)(function () {
50
+ if (import_react_native.Keyboard.dismiss(), keyboardControllerEnabled) try {
51
+ var _KeyboardController_dismiss,
52
+ {
53
+ KeyboardController
54
+ } = getKeyboardControllerState();
55
+ KeyboardController == null || (_KeyboardController_dismiss = KeyboardController.dismiss) === null || _KeyboardController_dismiss === void 0 || _KeyboardController_dismiss.call(KeyboardController);
56
+ } catch {}
57
+ },
58
+ // ignore errors from keyboard-controller
59
+ [keyboardControllerEnabled]),
60
+ flushPendingHide = (0, import_react.useCallback)(function () {
61
+ pendingHide.current && (pendingHide.current = !1, setIsKeyboardVisible(!1), setKeyboardHeight(0));
62
+ }, []);
63
+ return (0, import_react.useEffect)(function () {
64
+ if (!(!enabled || !keyboardControllerEnabled)) {
65
+ var {
66
+ KeyboardEvents
67
+ } = getKeyboardControllerState();
68
+ if (KeyboardEvents?.addListener) {
69
+ var showSub = KeyboardEvents.addListener("keyboardWillShow", function (e) {
70
+ var _e_height,
71
+ height = (_e_height = e?.height) !== null && _e_height !== void 0 ? _e_height : 0;
72
+ height > 0 && setKeyboardHeight(height), setIsKeyboardVisible(!0);
73
+ }),
74
+ hideSub = KeyboardEvents.addListener("keyboardWillHide", function () {
75
+ if (pauseKeyboardHandler.current) {
76
+ pendingHide.current = !0;
77
+ return;
78
+ }
79
+ setIsKeyboardVisible(!1), setKeyboardHeight(0);
80
+ });
81
+ return function () {
82
+ var _showSub_remove, _hideSub_remove;
83
+ showSub == null || (_showSub_remove = showSub.remove) === null || _showSub_remove === void 0 || _showSub_remove.call(showSub), hideSub == null || (_hideSub_remove = hideSub.remove) === null || _hideSub_remove === void 0 || _hideSub_remove.call(hideSub);
84
+ };
85
+ }
86
+ }
87
+ }, [enabled, keyboardControllerEnabled]), (0, import_react.useEffect)(function () {
88
+ if (enabled && !keyboardControllerEnabled) {
89
+ var showEvent = import_react_native.Platform.OS === "ios" ? "keyboardWillShow" : "keyboardDidShow",
90
+ hideEvent = import_react_native.Platform.OS === "ios" ? "keyboardWillHide" : "keyboardDidHide",
91
+ showListener = import_react_native.Keyboard.addListener(showEvent, function (e) {
92
+ setKeyboardHeight(e.endCoordinates.height), setIsKeyboardVisible(!0);
93
+ }),
94
+ hideListener = import_react_native.Keyboard.addListener(hideEvent, function () {
95
+ if (pauseKeyboardHandler.current) {
96
+ pendingHide.current = !0;
97
+ return;
98
+ }
99
+ setIsKeyboardVisible(!1), setKeyboardHeight(0);
100
+ });
101
+ return function () {
102
+ showListener.remove(), hideListener.remove();
103
+ };
104
+ }
105
+ }, [enabled, keyboardControllerEnabled]), {
106
+ keyboardControllerEnabled,
107
+ keyboardHeight,
108
+ isKeyboardVisible,
109
+ dismissKeyboard,
110
+ pauseKeyboardHandler,
111
+ flushPendingHide
112
+ };
113
+ }
114
+ //# sourceMappingURL=useKeyboardControllerSheet.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useKeyboardControllerSheet_native_exports","__export","useKeyboardControllerSheet","module","exports","__toCommonJS","import_react","require","import_react_native","isKeyboardControllerEnabled","getKeyboardControllerState","nativeModule","options","enabled","keyboardHeight","setKeyboardHeight","useState","isKeyboardVisible","setIsKeyboardVisible","keyboardControllerEnabled","pauseKeyboardHandler","useRef","pendingHide","dismissKeyboard","useCallback","Keyboard","dismiss","_KeyboardController_dismiss","KeyboardController","call","flushPendingHide","current","useEffect","KeyboardEvents","addListener","showSub","e","_e_height","height","hideSub","_showSub_remove","_hideSub_remove","remove","showEvent","Platform","OS","hideEvent","showListener","endCoordinates","hideListener"],"sources":["../../src/useKeyboardControllerSheet.native.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,86 @@
1
+ import { useEffect, useRef } from "react";
2
+ function useSheetScrollViewGestures({
3
+ scrollRef,
4
+ scrollBridge,
5
+ hasScrollableContent
6
+ }) {
7
+ const state = useRef({
8
+ startY: 0,
9
+ lastY: 0,
10
+ owner: "none",
11
+ panDragOffset: 0,
12
+ dys: [],
13
+ scrollYAtGestureStart: 0
14
+ });
15
+ return useEffect(() => {
16
+ if (!scrollRef.current) return;
17
+ const controller = new AbortController(), node = scrollRef.current?.getScrollableNode();
18
+ if (!node) return;
19
+ node.style.overscrollBehavior = "contain";
20
+ let originalOverflow = "";
21
+ const disableScroll = () => {
22
+ node.style.overflowY !== "hidden" && (originalOverflow = node.style.overflowY, node.style.overflowY = "hidden");
23
+ }, enableScroll = () => {
24
+ node.style.overflowY = originalOverflow;
25
+ }, handleTouchStart = (e) => {
26
+ const touch = e.touches[0];
27
+ if (!touch) return;
28
+ const currentScrollY = node.scrollTop;
29
+ state.current = {
30
+ startY: touch.pageY,
31
+ lastY: touch.pageY,
32
+ owner: "none",
33
+ panDragOffset: 0,
34
+ dys: [],
35
+ scrollYAtGestureStart: currentScrollY
36
+ }, scrollBridge.scrollStartY = touch.pageY;
37
+ }, handleTouchMove = (e) => {
38
+ const touch = e.touches[0];
39
+ if (!touch) return;
40
+ const { current: s } = state, pageY = touch.pageY, dy = pageY - s.lastY;
41
+ if (s.lastY = pageY, dy === 0) return;
42
+ const isDraggingDown = dy > 0, currentScrollY = node.scrollTop, isPaneAtTop = scrollBridge.paneY <= scrollBridge.paneMinY + 5;
43
+ scrollBridge.y = currentScrollY;
44
+ let shouldPanOwn = !1;
45
+ isPaneAtTop ? currentScrollY <= 0 && isDraggingDown && (shouldPanOwn = !0) : shouldPanOwn = !0;
46
+ const newOwner = shouldPanOwn ? "pan" : "scroll";
47
+ if (newOwner !== s.owner && (newOwner === "pan" ? (s.panDragOffset = 0, s.dys = [], scrollBridge.setParentDragging(!0), disableScroll()) : (scrollBridge.setParentDragging(!1), scrollBridge.scrollLock = !1, enableScroll()), s.owner = newOwner), s.owner === "pan")
48
+ e.cancelable && e.preventDefault(), s.panDragOffset += dy, scrollBridge.drag(s.panDragOffset), s.dys.push(dy), s.dys.length > 100 && (s.dys = s.dys.slice(-10));
49
+ else if (s.owner === "scroll") {
50
+ const scrollDelta = -dy, maxScrollY = node.scrollHeight - node.clientHeight, newScrollY = Math.max(0, Math.min(maxScrollY, currentScrollY + scrollDelta));
51
+ newScrollY !== currentScrollY && (node.scrollTop = newScrollY, scrollBridge.y = newScrollY);
52
+ }
53
+ }, handleTouchEnd = () => {
54
+ const { current: s } = state;
55
+ if (s.owner === "pan") {
56
+ scrollBridge.setParentDragging(!1);
57
+ let vy = 0;
58
+ if (s.dys.length) {
59
+ const recentDys = s.dys.slice(-10);
60
+ vy = recentDys.reduce((a, b) => a + b, 0) / recentDys.length * 0.04;
61
+ }
62
+ scrollBridge.release({ dragAt: s.panDragOffset, vy });
63
+ }
64
+ enableScroll(), s.owner = "none", s.panDragOffset = 0, s.dys = [];
65
+ };
66
+ return node.addEventListener("touchstart", handleTouchStart, {
67
+ signal: controller.signal,
68
+ passive: !0
69
+ }), node.addEventListener("touchmove", handleTouchMove, {
70
+ signal: controller.signal,
71
+ passive: !1
72
+ }), node.addEventListener("touchend", handleTouchEnd, {
73
+ signal: controller.signal,
74
+ passive: !0
75
+ }), node.addEventListener("touchcancel", handleTouchEnd, {
76
+ signal: controller.signal,
77
+ passive: !0
78
+ }), () => {
79
+ enableScroll(), controller.abort();
80
+ };
81
+ }, [scrollRef, scrollBridge, hasScrollableContent]), {};
82
+ }
83
+ export {
84
+ useSheetScrollViewGestures
85
+ };
86
+ //# sourceMappingURL=useSheetScrollViewGestures.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/useSheetScrollViewGestures.ts"],
4
+ "mappings": "AAAA,SAAS,WAAW,cAAc;AAuB3B,SAAS,2BAA2B;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AACF,GAAoC;AAClC,QAAM,QAAQ,OAAqB;AAAA,IACjC,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,eAAe;AAAA,IACf,KAAK,CAAC;AAAA,IACN,uBAAuB;AAAA,EACzB,CAAC;AAED,mBAAU,MAAM;AACd,QAAI,CAAC,UAAU,QAAS;AAExB,UAAM,aAAa,IAAI,gBAAgB,GACjC,OAAO,UAAU,SAAS,kBAAkB;AAElD,QAAI,CAAC,KAAM;AAEX,SAAK,MAAM,qBAAqB;AAGhC,QAAI,mBAAmB;AAEvB,UAAM,gBAAgB,MAAM;AAC1B,MAAI,KAAK,MAAM,cAAc,aAC3B,mBAAmB,KAAK,MAAM,WAC9B,KAAK,MAAM,YAAY;AAAA,IAE3B,GAEM,eAAe,MAAM;AACzB,WAAK,MAAM,YAAY;AAAA,IACzB,GAEM,mBAAmB,CAAC,MAAkB;AAC1C,YAAM,QAAQ,EAAE,QAAQ,CAAC;AACzB,UAAI,CAAC,MAAO;AAEZ,YAAM,iBAAiB,KAAK;AAE5B,YAAM,UAAU;AAAA,QACd,QAAQ,MAAM;AAAA,QACd,OAAO,MAAM;AAAA,QACb,OAAO;AAAA,QACP,eAAe;AAAA,QACf,KAAK,CAAC;AAAA,QACN,uBAAuB;AAAA,MACzB,GAEA,aAAa,eAAe,MAAM;AAAA,IACpC,GAEM,kBAAkB,CAAC,MAAkB;AACzC,YAAM,QAAQ,EAAE,QAAQ,CAAC;AACzB,UAAI,CAAC,MAAO;AAEZ,YAAM,EAAE,SAAS,EAAE,IAAI,OACjB,QAAQ,MAAM,OACd,KAAK,QAAQ,EAAE;AAGrB,UAFA,EAAE,QAAQ,OAEN,OAAO,EAAG;AAEd,YAAM,iBAAiB,KAAK,GACtB,iBAAiB,KAAK,WACtB,cAAc,aAAa,SAAS,aAAa,WAAW;AAElE,mBAAa,IAAI;AAMjB,UAAI,eAAe;AAEnB,MAAK,cAGM,kBAAkB,KAAK,mBAEhC,eAAe,MAHf,eAAe;AAMjB,YAAM,WAAyB,eAAe,QAAQ;AAiBtD,UAdI,aAAa,EAAE,UACb,aAAa,SACf,EAAE,gBAAgB,GAClB,EAAE,MAAM,CAAC,GACT,aAAa,kBAAkB,EAAI,GACnC,cAAc,MAEd,aAAa,kBAAkB,EAAK,GACpC,aAAa,aAAa,IAC1B,aAAa,IAEf,EAAE,QAAQ,WAGR,EAAE,UAAU;AACd,QAAI,EAAE,cAAY,EAAE,eAAe,GAEnC,EAAE,iBAAiB,IACnB,aAAa,KAAK,EAAE,aAAa,GAEjC,EAAE,IAAI,KAAK,EAAE,GACT,EAAE,IAAI,SAAS,QAAK,EAAE,MAAM,EAAE,IAAI,MAAM,GAAG;AAAA,eACtC,EAAE,UAAU,UAAU;AAE/B,cAAM,cAAc,CAAC,IACf,aAAa,KAAK,eAAe,KAAK,cACtC,aAAa,KAAK,IAAI,GAAG,KAAK,IAAI,YAAY,iBAAiB,WAAW,CAAC;AACjF,QAAI,eAAe,mBACjB,KAAK,YAAY,YACjB,aAAa,IAAI;AAAA,MAErB;AAAA,IACF,GAEM,iBAAiB,MAAM;AAC3B,YAAM,EAAE,SAAS,EAAE,IAAI;AAEvB,UAAI,EAAE,UAAU,OAAO;AACrB,qBAAa,kBAAkB,EAAK;AAEpC,YAAI,KAAK;AACT,YAAI,EAAE,IAAI,QAAQ;AAChB,gBAAM,YAAY,EAAE,IAAI,MAAM,GAAG;AAEjC,eADa,UAAU,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,IACnC,UAAU,SAAU;AAAA,QACnC;AAEA,qBAAa,QAAQ,EAAE,QAAQ,EAAE,eAAe,GAAG,CAAC;AAAA,MACtD;AAEA,mBAAa,GACb,EAAE,QAAQ,QACV,EAAE,gBAAgB,GAClB,EAAE,MAAM,CAAC;AAAA,IACX;AAEA,gBAAK,iBAAiB,cAAc,kBAAkB;AAAA,MACpD,QAAQ,WAAW;AAAA,MACnB,SAAS;AAAA,IACX,CAAC,GACD,KAAK,iBAAiB,aAAa,iBAAiB;AAAA,MAClD,QAAQ,WAAW;AAAA,MACnB,SAAS;AAAA,IACX,CAAC,GACD,KAAK,iBAAiB,YAAY,gBAAgB;AAAA,MAChD,QAAQ,WAAW;AAAA,MACnB,SAAS;AAAA,IACX,CAAC,GACD,KAAK,iBAAiB,eAAe,gBAAgB;AAAA,MACnD,QAAQ,WAAW;AAAA,MACnB,SAAS;AAAA,IACX,CAAC,GAEM,MAAM;AACX,mBAAa,GACb,WAAW,MAAM;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,WAAW,cAAc,oBAAoB,CAAC,GAE3C,CAAC;AACV;",
5
+ "names": []
6
+ }
@@ -0,0 +1,100 @@
1
+ import { useEffect, useRef } from "react";
2
+ function useSheetScrollViewGestures({
3
+ scrollRef,
4
+ scrollBridge,
5
+ hasScrollableContent
6
+ }) {
7
+ const state = useRef({
8
+ startY: 0,
9
+ lastY: 0,
10
+ owner: "none",
11
+ panDragOffset: 0,
12
+ dys: [],
13
+ scrollYAtGestureStart: 0
14
+ });
15
+ return useEffect(() => {
16
+ if (!scrollRef.current) return;
17
+ const controller = new AbortController(),
18
+ node = scrollRef.current?.getScrollableNode();
19
+ if (!node) return;
20
+ node.style.overscrollBehavior = "contain";
21
+ let originalOverflow = "";
22
+ const disableScroll = () => {
23
+ node.style.overflowY !== "hidden" && (originalOverflow = node.style.overflowY, node.style.overflowY = "hidden");
24
+ },
25
+ enableScroll = () => {
26
+ node.style.overflowY = originalOverflow;
27
+ },
28
+ handleTouchStart = e => {
29
+ const touch = e.touches[0];
30
+ if (!touch) return;
31
+ const currentScrollY = node.scrollTop;
32
+ state.current = {
33
+ startY: touch.pageY,
34
+ lastY: touch.pageY,
35
+ owner: "none",
36
+ panDragOffset: 0,
37
+ dys: [],
38
+ scrollYAtGestureStart: currentScrollY
39
+ }, scrollBridge.scrollStartY = touch.pageY;
40
+ },
41
+ handleTouchMove = e => {
42
+ const touch = e.touches[0];
43
+ if (!touch) return;
44
+ const {
45
+ current: s
46
+ } = state,
47
+ pageY = touch.pageY,
48
+ dy = pageY - s.lastY;
49
+ if (s.lastY = pageY, dy === 0) return;
50
+ const isDraggingDown = dy > 0,
51
+ currentScrollY = node.scrollTop,
52
+ isPaneAtTop = scrollBridge.paneY <= scrollBridge.paneMinY + 5;
53
+ scrollBridge.y = currentScrollY;
54
+ let shouldPanOwn = !1;
55
+ isPaneAtTop ? currentScrollY <= 0 && isDraggingDown && (shouldPanOwn = !0) : shouldPanOwn = !0;
56
+ const newOwner = shouldPanOwn ? "pan" : "scroll";
57
+ if (newOwner !== s.owner && (newOwner === "pan" ? (s.panDragOffset = 0, s.dys = [], scrollBridge.setParentDragging(!0), disableScroll()) : (scrollBridge.setParentDragging(!1), scrollBridge.scrollLock = !1, enableScroll()), s.owner = newOwner), s.owner === "pan") e.cancelable && e.preventDefault(), s.panDragOffset += dy, scrollBridge.drag(s.panDragOffset), s.dys.push(dy), s.dys.length > 100 && (s.dys = s.dys.slice(-10));else if (s.owner === "scroll") {
58
+ const scrollDelta = -dy,
59
+ maxScrollY = node.scrollHeight - node.clientHeight,
60
+ newScrollY = Math.max(0, Math.min(maxScrollY, currentScrollY + scrollDelta));
61
+ newScrollY !== currentScrollY && (node.scrollTop = newScrollY, scrollBridge.y = newScrollY);
62
+ }
63
+ },
64
+ handleTouchEnd = () => {
65
+ const {
66
+ current: s
67
+ } = state;
68
+ if (s.owner === "pan") {
69
+ scrollBridge.setParentDragging(!1);
70
+ let vy = 0;
71
+ if (s.dys.length) {
72
+ const recentDys = s.dys.slice(-10);
73
+ vy = recentDys.reduce((a, b) => a + b, 0) / recentDys.length * 0.04;
74
+ }
75
+ scrollBridge.release({
76
+ dragAt: s.panDragOffset,
77
+ vy
78
+ });
79
+ }
80
+ enableScroll(), s.owner = "none", s.panDragOffset = 0, s.dys = [];
81
+ };
82
+ return node.addEventListener("touchstart", handleTouchStart, {
83
+ signal: controller.signal,
84
+ passive: !0
85
+ }), node.addEventListener("touchmove", handleTouchMove, {
86
+ signal: controller.signal,
87
+ passive: !1
88
+ }), node.addEventListener("touchend", handleTouchEnd, {
89
+ signal: controller.signal,
90
+ passive: !0
91
+ }), node.addEventListener("touchcancel", handleTouchEnd, {
92
+ signal: controller.signal,
93
+ passive: !0
94
+ }), () => {
95
+ enableScroll(), controller.abort();
96
+ };
97
+ }, [scrollRef, scrollBridge, hasScrollableContent]), {};
98
+ }
99
+ export { useSheetScrollViewGestures };
100
+ //# sourceMappingURL=useSheetScrollViewGestures.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","useSheetScrollViewGestures","scrollRef","scrollBridge","hasScrollableContent","state","startY","lastY","owner","panDragOffset","dys","scrollYAtGestureStart","current","controller","AbortController","node","getScrollableNode","style","overscrollBehavior","originalOverflow","disableScroll","overflowY","enableScroll","handleTouchStart","e","touch","touches","currentScrollY","scrollTop","pageY","scrollStartY","handleTouchMove","s","dy","isDraggingDown","isPaneAtTop","paneY","paneMinY","y","shouldPanOwn","newOwner","setParentDragging","scrollLock","cancelable","preventDefault","drag","push","length","slice","scrollDelta","maxScrollY","scrollHeight","clientHeight","newScrollY","Math","max","min","handleTouchEnd","vy","recentDys","reduce","a","b","release","dragAt","addEventListener","signal","passive","abort"],"sources":["../../src/useSheetScrollViewGestures.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: !0
22
+ }), mod);
23
+ var useSheetScrollViewGestures_native_exports = {};
24
+ __export(useSheetScrollViewGestures_native_exports, {
25
+ useSheetScrollViewGestures: () => useSheetScrollViewGestures
26
+ });
27
+ module.exports = __toCommonJS(useSheetScrollViewGestures_native_exports);
28
+ var import_react = require("react");
29
+ function useSheetScrollViewGestures(param) {
30
+ var {
31
+ scrollBridge,
32
+ hasScrollableContent,
33
+ scrollEnabled,
34
+ setScrollEnabled
35
+ } = param,
36
+ state = (0, import_react.useRef)({
37
+ lastPageY: 0,
38
+ dragAt: 0,
39
+ dys: [],
40
+ isScrolling: !1,
41
+ isDraggingScrollArea: !1,
42
+ scrollEngaged: !1,
43
+ prevScrollY: 0,
44
+ handoffOccurred: !1,
45
+ handoffDragOffset: 0
46
+ }),
47
+ release = function () {
48
+ var s = state.current;
49
+ if (s.isDraggingScrollArea) {
50
+ s.isDraggingScrollArea = !1, scrollBridge.scrollStartY = -1, scrollBridge.scrollLock = !1, s.isScrolling = !1, s.scrollEngaged = !1, s.prevScrollY = 0, s.handoffOccurred = !1, s.handoffDragOffset = 0, setScrollEnabled(!0);
51
+ var vy = 0;
52
+ if (s.dys.length) {
53
+ var recentDys = s.dys.slice(-10),
54
+ dist = recentDys.reduce(function (a, b) {
55
+ return a + b;
56
+ }, 0);
57
+ vy = dist / recentDys.length * 0.04;
58
+ }
59
+ s.dys = [], scrollBridge.release({
60
+ dragAt: s.dragAt,
61
+ vy
62
+ });
63
+ }
64
+ },
65
+ onStartShouldSetResponder = function () {
66
+ var s = state.current;
67
+ return scrollBridge.scrollStartY = -1, s.isDraggingScrollArea = !0, s.scrollEngaged = scrollBridge.y > 0, s.prevScrollY = scrollBridge.y, s.handoffOccurred = !1, s.handoffDragOffset = 0, !1;
68
+ },
69
+ onMoveShouldSetResponder = function (e) {
70
+ if (!scrollEnabled) return !1;
71
+ var s = state.current,
72
+ {
73
+ pageY
74
+ } = e.nativeEvent;
75
+ return s.lastPageY === 0 ? (s.lastPageY = pageY, !1) : Math.abs(pageY - s.lastPageY) > 10;
76
+ },
77
+ onResponderMove = function (e) {
78
+ var s = state.current,
79
+ {
80
+ pageY
81
+ } = e.nativeEvent;
82
+ !s.isScrolling && scrollBridge.scrollStartY === -1 && (scrollBridge.scrollStartY = pageY, s.lastPageY = pageY);
83
+ var dragAt = pageY - scrollBridge.scrollStartY,
84
+ dy = pageY - s.lastPageY;
85
+ s.lastPageY = pageY;
86
+ var isDraggingDown = dy > 0,
87
+ isPaneAtTop = scrollBridge.paneY <= scrollBridge.paneMinY + 5,
88
+ currentScrollY = scrollBridge.y;
89
+ currentScrollY > 0 && (s.scrollEngaged = !0);
90
+ var wasScrolledNowAtZero = s.scrollEngaged && s.prevScrollY > 0 && currentScrollY <= 0;
91
+ wasScrolledNowAtZero && !s.handoffOccurred && (s.handoffOccurred = !0, s.handoffDragOffset = 0), s.prevScrollY = currentScrollY;
92
+ var panHandles = !1;
93
+ if (!isPaneAtTop) panHandles = isDraggingDown ? currentScrollY <= 0 || !hasScrollableContent : !0;else if (isDraggingDown) currentScrollY > 0 && hasScrollableContent && !s.handoffOccurred ? panHandles = !1 : panHandles = s.handoffOccurred || wasScrolledNowAtZero || currentScrollY <= 0;else if (panHandles = !hasScrollableContent, !panHandles) {
94
+ s.isScrolling = !0, scrollBridge.scrollLock = !0, setScrollEnabled(!0);
95
+ return;
96
+ }
97
+ if (panHandles) {
98
+ setScrollEnabled(!1);
99
+ var effectiveDragAt = dragAt;
100
+ s.handoffOccurred && (s.handoffDragOffset += dy, effectiveDragAt = s.handoffDragOffset), scrollBridge.drag(effectiveDragAt), s.dragAt = effectiveDragAt, s.dys.push(dy), s.dys.length > 100 && (s.dys = s.dys.slice(-10));
101
+ } else setScrollEnabled(!0);
102
+ };
103
+ return {
104
+ onResponderRelease: release,
105
+ onStartShouldSetResponder,
106
+ onMoveShouldSetResponder,
107
+ onResponderMove
108
+ };
109
+ }
110
+ //# sourceMappingURL=useSheetScrollViewGestures.native.js.map