@tamagui/sheet 2.0.0-1769233344020 → 2.0.0-1769256574467
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.
- package/dist/cjs/GestureDetectorWrapper.cjs +48 -0
- package/dist/cjs/GestureDetectorWrapper.js +29 -0
- package/dist/cjs/GestureDetectorWrapper.js.map +6 -0
- package/dist/cjs/GestureDetectorWrapper.native.js +53 -0
- package/dist/cjs/GestureDetectorWrapper.native.js.map +1 -0
- package/dist/cjs/GestureSheetContext.cjs +52 -0
- package/dist/cjs/GestureSheetContext.js +43 -0
- package/dist/cjs/GestureSheetContext.js.map +6 -0
- package/dist/cjs/GestureSheetContext.native.js +56 -0
- package/dist/cjs/GestureSheetContext.native.js.map +1 -0
- package/dist/cjs/SheetImplementationCustom.cjs +85 -40
- package/dist/cjs/SheetImplementationCustom.js +81 -58
- package/dist/cjs/SheetImplementationCustom.js.map +1 -1
- package/dist/cjs/SheetImplementationCustom.native.js +105 -50
- package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
- package/dist/cjs/SheetScrollView.cjs +80 -8
- package/dist/cjs/SheetScrollView.js +76 -10
- package/dist/cjs/SheetScrollView.js.map +1 -1
- package/dist/cjs/SheetScrollView.native.js +94 -10
- package/dist/cjs/SheetScrollView.native.js.map +1 -1
- package/dist/cjs/gestureState.cjs +31 -0
- package/dist/cjs/gestureState.js +24 -0
- package/dist/cjs/gestureState.js.map +6 -0
- package/dist/cjs/gestureState.native.js +34 -0
- package/dist/cjs/gestureState.native.js.map +1 -0
- package/dist/cjs/setupGestureHandler.cjs +43 -0
- package/dist/cjs/setupGestureHandler.js +35 -0
- package/dist/cjs/setupGestureHandler.js.map +6 -0
- package/dist/cjs/setupGestureHandler.native.js +47 -0
- package/dist/cjs/setupGestureHandler.native.js.map +1 -0
- package/dist/cjs/useGestureHandlerPan.cjs +125 -0
- package/dist/cjs/useGestureHandlerPan.js +116 -0
- package/dist/cjs/useGestureHandlerPan.js.map +6 -0
- package/dist/cjs/useGestureHandlerPan.native.js +134 -0
- package/dist/cjs/useGestureHandlerPan.native.js.map +1 -0
- package/dist/esm/GestureDetectorWrapper.js +15 -0
- package/dist/esm/GestureDetectorWrapper.js.map +6 -0
- package/dist/esm/GestureDetectorWrapper.mjs +25 -0
- package/dist/esm/GestureDetectorWrapper.mjs.map +1 -0
- package/dist/esm/GestureDetectorWrapper.native.js +27 -0
- package/dist/esm/GestureDetectorWrapper.native.js.map +1 -0
- package/dist/esm/GestureSheetContext.js +28 -0
- package/dist/esm/GestureSheetContext.js.map +6 -0
- package/dist/esm/GestureSheetContext.mjs +28 -0
- package/dist/esm/GestureSheetContext.mjs.map +1 -0
- package/dist/esm/GestureSheetContext.native.js +29 -0
- package/dist/esm/GestureSheetContext.native.js.map +1 -0
- package/dist/esm/SheetImplementationCustom.js +83 -57
- package/dist/esm/SheetImplementationCustom.js.map +1 -1
- package/dist/esm/SheetImplementationCustom.mjs +85 -40
- package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
- package/dist/esm/SheetImplementationCustom.native.js +105 -50
- package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
- package/dist/esm/SheetScrollView.js +77 -9
- package/dist/esm/SheetScrollView.js.map +1 -1
- package/dist/esm/SheetScrollView.mjs +80 -8
- package/dist/esm/SheetScrollView.mjs.map +1 -1
- package/dist/esm/SheetScrollView.native.js +94 -10
- package/dist/esm/SheetScrollView.native.js.map +1 -1
- package/dist/esm/gestureState.js +13 -0
- package/dist/esm/gestureState.js.map +6 -0
- package/dist/esm/gestureState.mjs +5 -0
- package/dist/esm/gestureState.mjs.map +1 -0
- package/dist/esm/gestureState.native.js +5 -0
- package/dist/esm/gestureState.native.js.map +1 -0
- package/dist/esm/setupGestureHandler.js +19 -0
- package/dist/esm/setupGestureHandler.js.map +6 -0
- package/dist/esm/setupGestureHandler.mjs +19 -0
- package/dist/esm/setupGestureHandler.mjs.map +1 -0
- package/dist/esm/setupGestureHandler.native.js +20 -0
- package/dist/esm/setupGestureHandler.native.js.map +1 -0
- package/dist/esm/useGestureHandlerPan.js +101 -0
- package/dist/esm/useGestureHandlerPan.js.map +6 -0
- package/dist/esm/useGestureHandlerPan.mjs +102 -0
- package/dist/esm/useGestureHandlerPan.mjs.map +1 -0
- package/dist/esm/useGestureHandlerPan.native.js +108 -0
- package/dist/esm/useGestureHandlerPan.native.js.map +1 -0
- package/dist/jsx/GestureDetectorWrapper.js +15 -0
- package/dist/jsx/GestureDetectorWrapper.js.map +6 -0
- package/dist/jsx/GestureDetectorWrapper.mjs +25 -0
- package/dist/jsx/GestureDetectorWrapper.mjs.map +1 -0
- package/dist/jsx/GestureDetectorWrapper.native.js +53 -0
- package/dist/jsx/GestureDetectorWrapper.native.js.map +1 -0
- package/dist/jsx/GestureSheetContext.js +28 -0
- package/dist/jsx/GestureSheetContext.js.map +6 -0
- package/dist/jsx/GestureSheetContext.mjs +28 -0
- package/dist/jsx/GestureSheetContext.mjs.map +1 -0
- package/dist/jsx/GestureSheetContext.native.js +56 -0
- package/dist/jsx/GestureSheetContext.native.js.map +1 -0
- package/dist/jsx/SheetImplementationCustom.js +83 -57
- package/dist/jsx/SheetImplementationCustom.js.map +1 -1
- package/dist/jsx/SheetImplementationCustom.mjs +85 -40
- package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
- package/dist/jsx/SheetImplementationCustom.native.js +105 -50
- package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
- package/dist/jsx/SheetScrollView.js +77 -9
- package/dist/jsx/SheetScrollView.js.map +1 -1
- package/dist/jsx/SheetScrollView.mjs +80 -8
- package/dist/jsx/SheetScrollView.mjs.map +1 -1
- package/dist/jsx/SheetScrollView.native.js +94 -10
- package/dist/jsx/SheetScrollView.native.js.map +1 -1
- package/dist/jsx/gestureState.js +13 -0
- package/dist/jsx/gestureState.js.map +6 -0
- package/dist/jsx/gestureState.mjs +5 -0
- package/dist/jsx/gestureState.mjs.map +1 -0
- package/dist/jsx/gestureState.native.js +34 -0
- package/dist/jsx/gestureState.native.js.map +1 -0
- package/dist/jsx/setupGestureHandler.js +19 -0
- package/dist/jsx/setupGestureHandler.js.map +6 -0
- package/dist/jsx/setupGestureHandler.mjs +19 -0
- package/dist/jsx/setupGestureHandler.mjs.map +1 -0
- package/dist/jsx/setupGestureHandler.native.js +47 -0
- package/dist/jsx/setupGestureHandler.native.js.map +1 -0
- package/dist/jsx/useGestureHandlerPan.js +101 -0
- package/dist/jsx/useGestureHandlerPan.js.map +6 -0
- package/dist/jsx/useGestureHandlerPan.mjs +102 -0
- package/dist/jsx/useGestureHandlerPan.mjs.map +1 -0
- package/dist/jsx/useGestureHandlerPan.native.js +134 -0
- package/dist/jsx/useGestureHandlerPan.native.js.map +1 -0
- package/package.json +48 -21
- package/src/GestureDetectorWrapper.tsx +41 -0
- package/src/GestureSheetContext.tsx +62 -0
- package/src/SheetImplementationCustom.tsx +124 -57
- package/src/SheetScrollView.tsx +157 -8
- package/src/gestureState.ts +17 -0
- package/src/setupGestureHandler.ts +32 -0
- package/src/types.tsx +15 -0
- package/src/useGestureHandlerPan.tsx +299 -0
- package/types/GestureDetectorWrapper.d.ts +14 -0
- package/types/GestureDetectorWrapper.d.ts.map +1 -0
- package/types/GestureDetectorWrapper.native.d.ts +14 -0
- package/types/GestureDetectorWrapper.native.d.ts.map +1 -0
- package/types/GestureSheetContext.d.ts +36 -0
- package/types/GestureSheetContext.d.ts.map +1 -0
- package/types/SheetImplementationCustom.d.ts.map +1 -1
- package/types/SheetScrollView.d.ts.map +1 -1
- package/types/gestureState.d.ts +9 -0
- package/types/gestureState.d.ts.map +1 -0
- package/types/gestureState.native.d.ts +12 -0
- package/types/gestureState.native.d.ts.map +1 -0
- package/types/setupGestureHandler.d.ts +12 -0
- package/types/setupGestureHandler.d.ts.map +1 -0
- package/types/setupGestureHandler.native.d.ts +41 -0
- package/types/setupGestureHandler.native.d.ts.map +1 -0
- package/types/types.d.ts +8 -0
- package/types/types.d.ts.map +1 -1
- package/types/useGestureHandlerPan.d.ts +43 -0
- package/types/useGestureHandlerPan.d.ts.map +1 -0
- package/types/useGestureHandlerPan.native.d.ts +33 -0
- package/types/useGestureHandlerPan.native.d.ts.map +1 -0
|
@@ -4,6 +4,8 @@ import { isClient, isWeb, View } from "@tamagui/core";
|
|
|
4
4
|
import { ScrollView } from "@tamagui/scroll-view";
|
|
5
5
|
import { useControllableState } from "@tamagui/use-controllable-state";
|
|
6
6
|
import React, { useEffect, useRef, useState } from "react";
|
|
7
|
+
import { useGestureSheetContext } from "./GestureSheetContext.native.js";
|
|
8
|
+
import { getGestureHandlerState, isGestureHandlerEnabled } from "./gestureState.native.js";
|
|
7
9
|
import { useSheetContext } from "./SheetContext.native.js";
|
|
8
10
|
var SHEET_SCROLL_VIEW_NAME = "SheetScrollView",
|
|
9
11
|
SheetScrollView = /* @__PURE__ */React.forwardRef(
|
|
@@ -18,6 +20,7 @@ var SHEET_SCROLL_VIEW_NAME = "SheetScrollView",
|
|
|
18
20
|
...props
|
|
19
21
|
} = param,
|
|
20
22
|
context = useSheetContext(SHEET_SCROLL_VIEW_NAME, __scopeSheet),
|
|
23
|
+
gestureContext = useGestureSheetContext(),
|
|
21
24
|
{
|
|
22
25
|
scrollBridge,
|
|
23
26
|
setHasScrollView
|
|
@@ -27,11 +30,32 @@ var SHEET_SCROLL_VIEW_NAME = "SheetScrollView",
|
|
|
27
30
|
defaultProp: !0
|
|
28
31
|
}),
|
|
29
32
|
scrollRef = React.useRef(null),
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
panGestureRef = gestureContext?.panGestureRef,
|
|
34
|
+
{
|
|
35
|
+
ScrollView: RNGHScrollView
|
|
36
|
+
} = getGestureHandlerState(),
|
|
37
|
+
useRNGHScrollView = isGestureHandlerEnabled() && RNGHScrollView && panGestureRef,
|
|
38
|
+
currentScrollOffset = useRef(0),
|
|
39
|
+
lockedScrollY = useRef(0),
|
|
40
|
+
setScrollEnabled = function (next, lockTo) {
|
|
41
|
+
if (next) lockedScrollY.current = currentScrollOffset.current, scrollBridge.scrollLockY = void 0;else {
|
|
42
|
+
var _scrollRef_current_scrollTo,
|
|
43
|
+
_scrollRef_current,
|
|
44
|
+
lockY = lockTo ?? currentScrollOffset.current;
|
|
45
|
+
lockedScrollY.current = lockY, scrollBridge.scrollLockY = lockY, (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 || (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 || _scrollRef_current_scrollTo.call(_scrollRef_current, {
|
|
46
|
+
x: 0,
|
|
47
|
+
y: lockY,
|
|
48
|
+
animated: !1
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
forceScrollTo = function (y) {
|
|
53
|
+
var _scrollRef_current_scrollTo, _scrollRef_current;
|
|
54
|
+
(_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 || (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 || _scrollRef_current_scrollTo.call(_scrollRef_current, {
|
|
55
|
+
x: 0,
|
|
56
|
+
y,
|
|
57
|
+
animated: !1
|
|
58
|
+
});
|
|
35
59
|
},
|
|
36
60
|
state = React.useRef({
|
|
37
61
|
lastPageY: 0,
|
|
@@ -42,8 +66,8 @@ var SHEET_SCROLL_VIEW_NAME = "SheetScrollView",
|
|
|
42
66
|
isDraggingScrollArea: !1
|
|
43
67
|
});
|
|
44
68
|
useEffect(function () {
|
|
45
|
-
return setHasScrollView(!0), function () {
|
|
46
|
-
setHasScrollView(!1);
|
|
69
|
+
return setHasScrollView(!0), isGestureHandlerEnabled() && (scrollBridge.setScrollEnabled = setScrollEnabled, scrollBridge.forceScrollTo = forceScrollTo), function () {
|
|
70
|
+
setHasScrollView(!1), scrollBridge.setScrollEnabled && (scrollBridge.setScrollEnabled = void 0), scrollBridge.forceScrollTo && (scrollBridge.forceScrollTo = void 0);
|
|
47
71
|
};
|
|
48
72
|
}, []);
|
|
49
73
|
var release = function () {
|
|
@@ -95,15 +119,74 @@ var SHEET_SCROLL_VIEW_NAME = "SheetScrollView",
|
|
|
95
119
|
setIsScrollable = function () {
|
|
96
120
|
parentHeight.current && contentHeight.current && setHasScrollableContent(contentHeight.current > parentHeight.current);
|
|
97
121
|
};
|
|
98
|
-
|
|
122
|
+
if (useEffect(function () {
|
|
99
123
|
scrollBridge.hasScrollableContent = hasScrollableContent;
|
|
100
|
-
}, [hasScrollableContent]),
|
|
124
|
+
}, [hasScrollableContent]), useRNGHScrollView && RNGHScrollView && panGestureRef) {
|
|
125
|
+
var RNGHComponent = RNGHScrollView;
|
|
126
|
+
return /* @__PURE__ */_jsxs(RNGHComponent, {
|
|
127
|
+
ref: composeRefs(scrollRef, ref),
|
|
128
|
+
style: {
|
|
129
|
+
flex: 1
|
|
130
|
+
},
|
|
131
|
+
scrollEventThrottle: 1,
|
|
132
|
+
scrollEnabled: scrollable,
|
|
133
|
+
simultaneousHandlers: [panGestureRef],
|
|
134
|
+
onLayout: function (e) {
|
|
135
|
+
parentHeight.current = Math.ceil(e.nativeEvent.layout.height), setIsScrollable();
|
|
136
|
+
},
|
|
137
|
+
onScroll: function (e) {
|
|
138
|
+
var {
|
|
139
|
+
y
|
|
140
|
+
} = e.nativeEvent.contentOffset;
|
|
141
|
+
if (currentScrollOffset.current = y, scrollBridge.scrollLockY !== void 0) {
|
|
142
|
+
if (y !== scrollBridge.scrollLockY) {
|
|
143
|
+
var _scrollRef_current_scrollTo, _scrollRef_current;
|
|
144
|
+
(_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 || (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 || _scrollRef_current_scrollTo.call(_scrollRef_current, {
|
|
145
|
+
x: 0,
|
|
146
|
+
y: scrollBridge.scrollLockY,
|
|
147
|
+
animated: !1
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
scrollBridge.y = scrollBridge.scrollLockY;
|
|
151
|
+
var lockedEvent = {
|
|
152
|
+
...e,
|
|
153
|
+
nativeEvent: {
|
|
154
|
+
...e.nativeEvent,
|
|
155
|
+
contentOffset: {
|
|
156
|
+
...e.nativeEvent.contentOffset,
|
|
157
|
+
y: scrollBridge.scrollLockY
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
onScroll?.(lockedEvent);
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
scrollBridge.y = y, y > 0 && (scrollBridge.scrollStartY = -1), onScroll?.(e);
|
|
165
|
+
},
|
|
166
|
+
contentContainerStyle: {
|
|
167
|
+
minHeight: "100%"
|
|
168
|
+
},
|
|
169
|
+
bounces: !1,
|
|
170
|
+
...props,
|
|
171
|
+
children: [/* content height measurer */
|
|
172
|
+
/* @__PURE__ */_jsx(View, {
|
|
173
|
+
position: "absolute",
|
|
174
|
+
inset: 0,
|
|
175
|
+
pointerEvents: "none",
|
|
176
|
+
zIndex: -1,
|
|
177
|
+
onLayout: function (e) {
|
|
178
|
+
contentHeight.current = Math.floor(e.nativeEvent.layout.height), setIsScrollable();
|
|
179
|
+
}
|
|
180
|
+
}), children]
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
var content = /* @__PURE__ */_jsxs(ScrollView, {
|
|
101
184
|
onLayout: function (e) {
|
|
102
185
|
parentHeight.current = Math.ceil(e.nativeEvent.layout.height), setIsScrollable();
|
|
103
186
|
},
|
|
104
187
|
ref: composeRefs(scrollRef, ref),
|
|
105
188
|
flex: 1,
|
|
106
|
-
scrollEventThrottle:
|
|
189
|
+
scrollEventThrottle: 1,
|
|
107
190
|
onResponderRelease: release,
|
|
108
191
|
className: "_ovs-contain",
|
|
109
192
|
scrollEnabled: scrollable,
|
|
@@ -170,6 +253,7 @@ var SHEET_SCROLL_VIEW_NAME = "SheetScrollView",
|
|
|
170
253
|
}
|
|
171
254
|
}), children]
|
|
172
255
|
});
|
|
256
|
+
return content;
|
|
173
257
|
});
|
|
174
258
|
export { SheetScrollView };
|
|
175
259
|
//# sourceMappingURL=SheetScrollView.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","composeRefs","isClient","isWeb","View","ScrollView","useControllableState","React","useEffect","useRef","useState","useSheetContext","SHEET_SCROLL_VIEW_NAME","SheetScrollView","forwardRef","param","ref","__scopeSheet","children","onScroll","scrollEnabled","scrollEnabledProp","props","context","scrollBridge","setHasScrollView","setScrollEnabled_","prop","defaultProp","scrollRef","setScrollEnabled","next","
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","composeRefs","isClient","isWeb","View","ScrollView","useControllableState","React","useEffect","useRef","useState","useGestureSheetContext","getGestureHandlerState","isGestureHandlerEnabled","useSheetContext","SHEET_SCROLL_VIEW_NAME","SheetScrollView","forwardRef","param","ref","__scopeSheet","children","onScroll","scrollEnabled","scrollEnabledProp","props","context","gestureContext","scrollBridge","setHasScrollView","setScrollEnabled_","prop","defaultProp","scrollRef","panGestureRef","RNGHScrollView","useRNGHScrollView","currentScrollOffset","lockedScrollY","setScrollEnabled","next","lockTo","current","scrollLockY","_scrollRef_current_scrollTo","_scrollRef_current","lockY","scrollTo","call","x","y","animated","forceScrollTo","state","lastPageY","dragAt","dys","isScrolling","isDraggingScrollArea","release","scrollStartY","scrollLock","vy","length","recentDys","slice","dist","reduce","a","b","avgDy","scrollable","controller","AbortController","node","getScrollableNode","addEventListener","e","isParentDragging","top","behavior","signal","passive","disposeBridgeListen","onParentDragging","val","abort","hasScrollableContent","setHasScrollableContent","parentHeight","contentHeight","setIsScrollable","RNGHComponent","style","flex","scrollEventThrottle","simultaneousHandlers","onLayout","Math","ceil","nativeEvent","layout","height","contentOffset","lockedEvent","contentContainerStyle","minHeight","bounces","position","inset","pointerEvents","zIndex","floor","content","onResponderRelease","className","onStartShouldSetResponder","onMoveShouldSetResponder","pageY","dy","abs","onResponderMove","isDraggingUp","isPaneAtTop","paneY","paneMinY","shouldScrollLock"],"sources":["../../src/SheetScrollView.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAmBC,KAAA;AAC5B,SAASC,WAAU,QAAO,uBAAyB;AAEnD,SAASC,QAAA,EAAAC,KAAA,EAAAC,IAAkB;AAC3B,SAASC,UAAA,8BAA4B;AACrC,SAAOC,oBAAoB,QAAQ,iCAAgB;AAEnD,OAAAC,KAAS,IAAAC,SAAA,EAAAC,MAAA,EAAAC,QAA8B;AACvC,SAASC,sBAAA,QAAwB;AACjC,SAASC,sBAAA,EAAuBC,uBAAA;AA2NxB,SAuDEC,eAvDF;AAlNR,IAAAC,sBAAM,oBAAyB;EAAAC,eAElB,kBAAwBT,KAAA,CAAAU,UAAA;EAMnC;EACE;EACE,UACAC,KAAA,EAAAC,GAAA;IACA;QAAAC,YAAA;QAAAC,QAAA;QAAAC,QAAA;QAAAC,aAAA,EAAAC,iBAAA;QAAA,GAAAC;MAAA,IAAAP,KAAA;MAAAQ,OAAA,GAAAZ,eAAA,CAAAC,sBAAA,EAAAK,YAAA;MAAAO,cAAA,GAAAhB,sBAAA;MAAA;QAAAiB,YAAA;QAAAC;MAAA,IAAAH,OAAA;MAAA,CAAAH,aAAA,EAAAO,iBAAA,IAAAxB,oBAAA;QACAyB,IAAA,EAAAP,iBAAe;QACfQ,WAAG;MACL,CACA;MAAAC,SACG,GAAA1B,KAAA,CAAAE,MAAA;MAAAyB,aAAA,GAAAP,cAAA,EAAAO,aAAA;MAAA;QAAA7B,UAAA,EAAA8B;MAAA,IAAAvB,sBAAA;MAAAwB,iBAAA,GAAAvB,uBAAA,MAAAsB,cAAA,IAAAD,aAAA;MAAAG,mBAAA,GAAA5B,MAAA;MAAA6B,aAAA,GAAA7B,MAAA;MAAA8B,gBAAA,YAAAA,CAAAC,IAAA,EAAAC,MAAA;QACH,IAAMD,IAAA,EAIJF,aAAM,CAAAI,OAAA,GAAAL,mBAAA,CAAAK,OAAA,EAAAd,YAAA,CAAAe,WAAA,eACN;UAEI,IAAAC,2BAAkD;YAIlDC,kBAAgB;YAAAC,KAAA,GAAAL,MAAgB,IAAAJ,mBAG9B,CAAAK,OAAY;UAyBlBJ,aAAK,CAAAI,OAAA,GAAAI,KAAA,EAAAlB,YAAA,CAAAe,WAAA,GAAAG,KAAA,GAAAD,kBAAA,GAAAZ,SAAA,CAAAS,OAAA,cAAAG,kBAAA,gBAAAD,2BAAA,GAAAC,kBAAA,CAAAE,QAAA,cAAAH,2BAAA,eAAAA,2BAAA,CAAAI,IAAA,CAAAH,kBAAA;YAiBHI,CAAA;YAC2BC,CAlBlB,EAAAJ,KAAA;YAKTK,QAAM;UACN;QAI8B;MACzB;MAAAC,aACA,YAAAA,CAAAF,CAAA;QAAA,IACHN,2BAAU,EAAAC,kBAAA;QAAA,CAAAA,kBACX,GAAAZ,SAAA,CAAAS,OAAA,cAAAG,kBAAA,gBAAAD,2BAAA,GAAAC,kBAAA,CAAAE,QAAA,cAAAH,2BAAA,eAAAA,2BAAA,CAAAI,IAAA,CAAAH,kBAAA;UACHI,CAAA;UAaIC,CAAA;UAEJC,QAAU;QAAoB,EAC5B;MAAG;MAAAE,KACH,GAAA9C,KAAA,CAAAE,MAAA;QAAA6C,SACA,GAAU;QACZC,MAAC;QACHC,GAEM;QACJ;QACAC,WAAQ;QACRC,oBAAM;MAAA;IAAAlD,SACN,aAAa;MACb,OAAAqB,gBAAsB,MAAAhB,uBAAA,OAAAe,YAAA,CAAAW,gBAAA,GAAAA,gBAAA,EAAAX,YAAA,CAAAwB,aAAA,GAAAA,aAAA;QACvBvB,gBAAA,MAAAD,YAAA,CAAAW,gBAAA,KAAAX,YAAA,CAAAW,gBAAA,YAAAX,YAAA,CAAAwB,aAAA,KAAAxB,YAAA,CAAAwB,aAAA;MAED;IAUI;IAOF,IACCO,OAAE,YAAAA,CAAA;QAEL,IAAMN,KAAA,CAAAX,OAAU,CAAAgB,oBAAM;UACpBL,KAAK,CAAAX,OAAM,CAAAgB,oBAAQ,OAAA9B,YAAA,CAAAgC,YAAA,OAAAhC,YAAA,CAAAiC,UAAA,OAAAR,KAAA,CAAAX,OAAA,CAAAe,WAAA,OAAAlB,gBAAA;UACjB,IAAAuB,EAAA;UAEF,IAAMT,KAAA,CAAAX,OAAQ,CAAAc,GAAA,CAAAO,MAAA;YAKV,IAAAC,SAAK,GAAAX,KAAA,CAAAX,OAAA,CAAAc,GAAA,CAAAS,KAAA;cAAAC,IAAA,GAAAF,SAAA,CAAAD,MAAA,GAAAC,SAAA,CAAAG,MAAA,WAAAC,CAAA,EAAAC,CAAA;gBACL,OAAMD,CAAA,GAAAC,CAAQ;cAChB,IAAM;cAAAC,KAAY,GAAAJ,IAAM,GAAAF,SAAY,CAAAD,MAAM;YAG1CD,EAAA,GAFaQ,KAAA,OAAU;UAGzB;UACAjB,KAAM,CAAAX,OAAQ,CAAAc,GAAA,GAAO,EACrB,EAAA5B,YAAa,CAAA+B,OAAQ;YACnBJ,MAAQ,EAAAF,KAAM,CAAAX,OAAQ,CAAAa,MAAA;YACtBO;UACD;QACH;MAIA;MAAAS,UAAU,GAAMhD,aAAA;IAEdf,SADK,aACA;MAEL,IAAAqC,kBAAmB;MAInB,IAAI3C,QAAC,IAAA+B,SAAA,CAAAS,OAAA;QACH,IAAA8B,UAAA,OAAAC,eAAA;UAAAC,IAAA,IAAA7B,kBAAA,GAAAZ,SAAA,CAAAS,OAAA,cAAAG,kBAAA,uBAAAA,kBAAA,CAAA8B,iBAAA;QAMF,IAAKD,IAAA;UACHA,IAAA,CAAAE,gBAAA,CACC,WAAM,EACD,UAAAC,CAAA,EAAa;YAEbjD,YAAK,CAAAkD,gBAAa,IAAAJ,IAAA,CAAA3B,QAAA;cAClBgC,GAAA,EAAAnD,YAAU,CAAAsB,CAAA;cACX8B,QAAA;YAGL;UACA;UACE;UACA;YACFC,MAAA,EAAAT,UAAA,CAAAS,MAAA;YACFC,OAAA;UAEM,CAGL;UAED,IAAOC,mBAAM,GAAAvD,YAAA,CAAAwD,gBAAA,WAAAC,GAAA,GACX;UAEF;YACEF,mBAAU,IAAAX,UAAA,CAAAc,KAAA;UAER,CAAC;QAKD;MAGN;IAQA,IALErD,SAAA,CACF;IAQI,IAHoB,CAAAsD,oBAAA,EAAAC,uBAAA,IAAA9E,QAAA;MAAA+E,YAAA,GAAAhF,MAAA;MAAAiF,aAAA,GAAAjF,MAAA;MAAAkF,eAAA,YAAAA,CAAA;QAGnBF,YAAA,CAAA/C,OAAA,IAAAgD,aAAA,CAAAhD,OAAA,IAAA8C,uBAAA,CAAAE,aAAA,CAAAhD,OAAA,GAAA+C,YAAA,CAAA/C,OAAA;MAAA;IACuC,IACtClC,SAAS,aAAQ;MAAAoB,YACjB,CAAA2D,oBAAqB,GAAAA,oBAAA;IAAA,IACNA,oBACf,CAAoC,GACpCnD,iBAAsB,IAAAD,cAAA,IAAAD,aAAA;MACpB,IAAA0D,aAAa,GAAAzD,cAAe;MACZ,OAClB,eAAAnC,KAAA,CAAA4F,aAAA;QACAzE,GAAA,EAAAlB,WAAW,CAAWgC,SAAA,EAAAd,GAAA;QACpB0E,KAAA;UAOAC,IAHA;QAIE;QACgCC,mBACzB;QAAAxE,aACA,EAAAgD,UAAa;QAAAyB,oBACN,GAAA9D,aAId,CAEA;QAAoB+D,QAClB,EAAG,SAAAA,CAAApB,CAAA;UAAAY,YACH,CAAA/C,OAAa,GAAAwD,IAAA,CAAAC,IAAA,CAAAtB,CAAA,CAAAuB,WAAA,CAAAC,MAAA,CAAAC,MAAA,GAAAX,eAAA;QAAA;QACNrE,QACL,WAAAA,CAAAuD,CAAA;UAAe;YAAA3B;UACb,IAAG2B,CAAE,CAAAuB,WAAY,CAAAG,aAAA;UAAA,IAAAlE,mBACd,CAAaK,OAAA,GAAAQ,CAAA,EAAAtB,YAAA,CAAAe,WAAA;YAAA,IAClBO,CAAA,KAAAtB,YAAA,CAAAe,WAAA;cACF,IAAAC,2BAAA,EAAAC,kBAAA;cACF,CAAAA,kBAAA,GAAAZ,SAAA,CAAAS,OAAA,cAAAG,kBAAA,gBAAAD,2BAAA,GAAAC,kBAAA,CAAAE,QAAA,cAAAH,2BAAA,eAAAA,2BAAA,CAAAI,IAAA,CAAAH,kBAAA;gBACAI,CAAA;gBACAC,CAAA,EAAAtB,YAAA,CAAAe,WAAA;gBACFQ,QAAA;cAGA;YAKF;YACAvB,YAAA,CAAAsB,CAAA,GAAAtB,YAAyB,CAAAe,WAAkB;YAC3C,IAAA6D,WAAS;cACL,GAAA3B,CAAA;cAGJuB,WAAA;gBAAA,GAAAvB,CAAA,CAAAuB,WAAA;gBAACG,aAAA;kBAAA,GAAA1B,CAAA,CAAAuB,WAAA,CAAAG,aAAA;kBACCrD,CAAA,EAAAtB,YAAS,CAAAe;gBACT;cACA;YAAc;YACNrB,QACR,GAAAkF,WAAiB;YACf;UACgB;UAClB5E,YAAA,CAAAsB,CAAA,GAAAA,CAAA,EAAAA,CAAA,SAAAtB,YAAA,CAAAgC,YAAA,QAAAtC,QAAA,GAAAuD,CAAA;QAAA;QACF4B,qBACC;UAAAC,SAAA;QAAA;QAOLC,OAAA;QAAC,GAAAlF,KAAA;QAAAJ,QAAA,GACC;QACE,eAAavB,IAAA,CAAAM,IAAU;UAEzBwG,QAAA;UACAC,KAAK;UACLC,aAAM;UACNC,MAAA;UACAd,QAAA,WAAAA,CAAoBpB,CAAA;YACpBa,aAAU,CAAAhD,OAAA,GAAAwD,IAAA,CAAAc,KAAA,CAAAnC,CAAA,CAAAuB,WAAA,CAAAC,MAAA,CAAAC,MAAA,GAAAX,eAAA;UACV;QAIA,IACEtE,QAAQ;MAUI,EASd;IAAA;IAMS,IAET4F,OAAA,kBAA0BjH,KAAC,CAAAK,UAAM;MAC/B4F,QAAI,EAAC,SAAAA,CAAApB,CAAY;QAIjBY,YAAQ,CAAA/C,OAAU,GAAEwD,IAAA,CAAAC,IAAA,CAAAtB,CAAA,CAAAuB,WAAA,CAAAC,MAAA,CAAAC,MAAA,GAAAX,eAAA;MACpB;MAKYxE,GACd,EAAAlB,WAAA,CAAAgC,SAAA,EAAAd,GAAA;MAAA2E,IACA;MAAuBC,mBACV;MAAAmB,kBACb,EAAAvD,OAAA;MAAAwD,SACA,gBAAkB;MAEhB5F,aAAI,EAAOgD,UAAA;MACT;MAEA;MAOA;MAEAjD,QAAA,WAAAA,CAAMuD,CAAQ;QACd;UAAA3B;QAAA,IAAM2B,CAAA,CAAAuB,WAAe,CAAAG,aACf;QAKN3E,YAFE,CAAAsB,CAAA,GAAAA,CAAA,EAAA/C,KAAA,KAAAyB,YAAgC,CAAAiC,UAAK,GAAAX,CAAA,KAAiB,EAAAA,CAAA,SAAAtB,YAEzB,CAAAgC,YAAQ,MAAa,EAAAtC,QAAA,GAAAuD,CAAA;MAClD;MAGA;MAAA;MAMF;MACE;MAGF;MAMiD;MAEnDuC,yBACF,WAAAA,CAAA;QACC,OAAGxF,YAAA,CAAAgC,YAAA,OAAAP,KAAA,CAAAX,OAAA,CAAAgB,oBAAA;MAAA;MAGJ2D,wBAAA,WAAAA,CAAAxC,CAAA;QAAA,IAAC,CAAAN,UAAA;QAAA;UAAA+C;QAAA,IAAAzC,CAAA,CAAAuB,WAAA;QAAA,IAAA/C,KACC,CAAAX,OAAS,CAAAY,SAAA,eACTD,KAAO,CAAAX,OAAA,CAAAY,SAAA,GAAAgE,KAAA;QAAA,IAAAC,EACP,GAAArB,IAAA,CAAAsB,GAAA,CAAAF,KAAc,GAAAjE,KAAA,CAAAX,OAAA,CAAAY,SAAA;QAAA,OACdiE,EAAA,KAAQ;MAAA;MAGNd,qBAAA;QACgBC,SAClB;MAAA;MAAAe,eACF,WAAAA,CAAA5C,CAAA;QAAA,IAEC1E,KAAA;UAAA;YAAAmH;UAAA,IAAAzC,CAAA,CAAAuB,WAAA;UAAA/C,KAAA,CAAAX,OAAA,CAAAe,WAAA,IAAA7B,YAAA,CAAAgC,YAAA,YAAAhC,YAAA,CAAAgC,YAAA,GAAA0D,KAAA,EAAAjE,KAAA,CAAAX,OAAA,CAAAY,SAAA,GAAAgE,KAAA;UACH,IAAA/D,MAAA,GAAA+D,KAAA,GAAA1F,YAAA,CAAAgC,YAAA;YAAA2D,EAAA,GAAAD,KAAA,GAAAjE,KAAA,CAAAX,OAAA,CAAAY,SAAA;UAIJD,KAAA,CAAAX,OAAA,CAAAY,SAAA,GAAAgE,KAAA;UACF,IAAAI,YAAA,GAAAH,EAAA;YAAAI,WAAA,GAAA/F,YAAA,CAAAgG,KAAA,IAAAhG,YAAA,CAAAiG,QAAA;YAAAC,gBAAA,GAAAvC,oBAAA,KAAAgC,EAAA,UAAAG,YAAA,KAAAC,WAAA","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isGestureHandlerEnabled,
|
|
3
|
+
getGestureHandlerState
|
|
4
|
+
} from "@tamagui/native";
|
|
5
|
+
import { setGestureHandlerState } from "@tamagui/native";
|
|
6
|
+
import { setGestureHandlerState as setGestureHandlerState2 } from "@tamagui/native";
|
|
7
|
+
export {
|
|
8
|
+
getGestureHandlerState,
|
|
9
|
+
isGestureHandlerEnabled,
|
|
10
|
+
setGestureHandlerState,
|
|
11
|
+
setGestureHandlerState2 as setGestureState
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=gestureState.js.map
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { isGestureHandlerEnabled, getGestureHandlerState } from "@tamagui/native";
|
|
2
|
+
import { setGestureHandlerState } from "@tamagui/native";
|
|
3
|
+
import { setGestureHandlerState as setGestureHandlerState2 } from "@tamagui/native";
|
|
4
|
+
export { getGestureHandlerState, isGestureHandlerEnabled, setGestureHandlerState, setGestureHandlerState2 as setGestureState };
|
|
5
|
+
//# sourceMappingURL=gestureState.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isGestureHandlerEnabled","getGestureHandlerState","setGestureHandlerState","setGestureHandlerState2"],"sources":["../../src/gestureState.ts"],"sourcesContent":[null],"mappings":"AAKA,SACEA,uBAAA,EACAC,sBAAA,QACK;AAKP,SAASC,sBAAA,QAA8B;AAGvC,SAAmCA,sBAAA,IAA1BC,uBAAA,QAAiD","ignoreList":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { isGestureHandlerEnabled, getGestureHandlerState } from "@tamagui/native";
|
|
2
|
+
import { setGestureHandlerState } from "@tamagui/native";
|
|
3
|
+
import { setGestureHandlerState as setGestureHandlerState2 } from "@tamagui/native";
|
|
4
|
+
export { getGestureHandlerState, isGestureHandlerEnabled, setGestureHandlerState, setGestureHandlerState2 as setGestureState };
|
|
5
|
+
//# sourceMappingURL=gestureState.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isGestureHandlerEnabled","getGestureHandlerState","setGestureHandlerState","setGestureHandlerState2"],"sources":["../../src/gestureState.ts"],"sourcesContent":[null],"mappings":"AAKA,SAAAA,uBAAA,EAAAC,sBAAA;AAAA,SACEC,sBAAA;AAAA,SACAA,sBAAA,IAAAC,uBAAA;AAAA,SAMFF,sBAAS,EAGTD,uBAAmC,E","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { setGestureHandlerState, isGestureHandlerEnabled } from "@tamagui/native";
|
|
2
|
+
function setupGestureHandler(config) {
|
|
3
|
+
const g = globalThis;
|
|
4
|
+
if (g.__tamagui_sheet_gesture_handler_setup)
|
|
5
|
+
return;
|
|
6
|
+
g.__tamagui_sheet_gesture_handler_setup = !0;
|
|
7
|
+
const { Gesture, GestureDetector, ScrollView } = config;
|
|
8
|
+
Gesture && GestureDetector && setGestureHandlerState({
|
|
9
|
+
enabled: !0,
|
|
10
|
+
Gesture,
|
|
11
|
+
GestureDetector,
|
|
12
|
+
ScrollView: ScrollView || null
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
isGestureHandlerEnabled,
|
|
17
|
+
setupGestureHandler
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=setupGestureHandler.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/setupGestureHandler.ts"],
|
|
4
|
+
"mappings": "AAIA,SAAS,wBAAwB,+BAA+B;AAUzD,SAAS,oBAAoB,QAAyC;AAC3E,QAAM,IAAI;AACV,MAAI,EAAE;AACJ;AAEF,IAAE,wCAAwC;AAE1C,QAAM,EAAE,SAAS,iBAAiB,WAAW,IAAI;AAEjD,EAAI,WAAW,mBACb,uBAAuB;AAAA,IACrB,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA,YAAY,cAAc;AAAA,EAC5B,CAAC;AAEL;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { setGestureHandlerState, isGestureHandlerEnabled } from "@tamagui/native";
|
|
2
|
+
function setupGestureHandler(config) {
|
|
3
|
+
const g = globalThis;
|
|
4
|
+
if (g.__tamagui_sheet_gesture_handler_setup) return;
|
|
5
|
+
g.__tamagui_sheet_gesture_handler_setup = !0;
|
|
6
|
+
const {
|
|
7
|
+
Gesture,
|
|
8
|
+
GestureDetector,
|
|
9
|
+
ScrollView
|
|
10
|
+
} = config;
|
|
11
|
+
Gesture && GestureDetector && setGestureHandlerState({
|
|
12
|
+
enabled: !0,
|
|
13
|
+
Gesture,
|
|
14
|
+
GestureDetector,
|
|
15
|
+
ScrollView: ScrollView || null
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
export { isGestureHandlerEnabled, setupGestureHandler };
|
|
19
|
+
//# sourceMappingURL=setupGestureHandler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["setGestureHandlerState","isGestureHandlerEnabled","setupGestureHandler","config","g","globalThis","__tamagui_sheet_gesture_handler_setup","Gesture","GestureDetector","ScrollView","enabled"],"sources":["../../src/setupGestureHandler.ts"],"sourcesContent":[null],"mappings":"AAIA,SAASA,sBAAA,EAAwBC,uBAAA,QAA+B;AAUzD,SAASC,oBAAoBC,MAAA,EAAyC;EAC3E,MAAMC,CAAA,GAAIC,UAAA;EACV,IAAID,CAAA,CAAEE,qCAAA,EACJ;EAEFF,CAAA,CAAEE,qCAAA,GAAwC;EAE1C,MAAM;IAAEC,OAAA;IAASC,eAAA;IAAiBC;EAAW,IAAIN,MAAA;EAE7CI,OAAA,IAAWC,eAAA,IACbR,sBAAA,CAAuB;IACrBU,OAAA,EAAS;IACTH,OAAA;IACAC,eAAA;IACAC,UAAA,EAAYA,UAAA,IAAc;EAC5B,CAAC;AAEL","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { setGestureHandlerState, isGestureHandlerEnabled } from "@tamagui/native";
|
|
2
|
+
function setupGestureHandler(config) {
|
|
3
|
+
var g = globalThis;
|
|
4
|
+
if (!g.__tamagui_sheet_gesture_handler_setup) {
|
|
5
|
+
g.__tamagui_sheet_gesture_handler_setup = !0;
|
|
6
|
+
var {
|
|
7
|
+
Gesture,
|
|
8
|
+
GestureDetector,
|
|
9
|
+
ScrollView
|
|
10
|
+
} = config;
|
|
11
|
+
Gesture && GestureDetector && setGestureHandlerState({
|
|
12
|
+
enabled: !0,
|
|
13
|
+
Gesture,
|
|
14
|
+
GestureDetector,
|
|
15
|
+
ScrollView: ScrollView || null
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export { isGestureHandlerEnabled, setupGestureHandler };
|
|
20
|
+
//# sourceMappingURL=setupGestureHandler.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["setGestureHandlerState","isGestureHandlerEnabled","setupGestureHandler","config","g","globalThis","__tamagui_sheet_gesture_handler_setup","Gesture","GestureDetector","ScrollView","enabled"],"sources":["../../src/setupGestureHandler.ts"],"sourcesContent":[null],"mappings":"AAIA,SAASA,sBAAA,EAAwBC,uBAAA,QAA+B;AAUzD,SAASC,oBAAoBC,MAAA,EAAyC;EAC3E,IAAAC,CAAA,GAAMC,UAAI;EACV,IAAI,CAAAD,CAAE,CAAAE,qCAAA;IACJF,CAAA,CAAAE,qCAAA;IAEA;MAAAC,OAAA;MAAAC,eAAA;MAAAC;IAAwC,IAAAN,MAAA;IAE1CI,OAAQ,IAAAC,eAAS,IAAAR,sBAAgC;MAE7CU,OAAW;MAEXH,OAAS;MACTC,eAAA;MACAC,UAAA,EAAAA,UAAA;IACA;EACF;AAEJ","ignoreList":[]}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { useCallback, useMemo, useRef } from "react";
|
|
2
|
+
import { getGestureHandlerState, isGestureHandlerEnabled } from "./gestureState";
|
|
3
|
+
const AT_TOP_THRESHOLD = 5;
|
|
4
|
+
function useGestureHandlerPan(config) {
|
|
5
|
+
const {
|
|
6
|
+
positions,
|
|
7
|
+
frameSize,
|
|
8
|
+
setPosition,
|
|
9
|
+
animateTo,
|
|
10
|
+
stopSpring,
|
|
11
|
+
scrollBridge,
|
|
12
|
+
setIsDragging,
|
|
13
|
+
getCurrentPosition,
|
|
14
|
+
resisted,
|
|
15
|
+
disableDrag,
|
|
16
|
+
isShowingInnerSheet,
|
|
17
|
+
setAnimatedPosition,
|
|
18
|
+
scrollGestureRef
|
|
19
|
+
} = config, gestureHandlerEnabled = isGestureHandlerEnabled(), panGestureRef = useRef(null), gestureStateRef = useRef({
|
|
20
|
+
startY: 0,
|
|
21
|
+
// track last translation when pan was active (for position calculation after handoff)
|
|
22
|
+
lastPanTranslationY: 0,
|
|
23
|
+
// accumulated position offset from all pan movements
|
|
24
|
+
accumulatedOffset: 0,
|
|
25
|
+
// track previous translation for direction detection (like actions-sheet)
|
|
26
|
+
prevTranslationY: 0,
|
|
27
|
+
// track if scroll was engaged (scrollY > 0) at some point
|
|
28
|
+
scrollEngaged: !1
|
|
29
|
+
}), onStart = useCallback(() => {
|
|
30
|
+
stopSpring(), setIsDragging(!0);
|
|
31
|
+
}, [stopSpring, setIsDragging]), onEnd = useCallback(
|
|
32
|
+
(closestPoint) => {
|
|
33
|
+
setIsDragging(!1), scrollBridge.setParentDragging(!1), scrollBridge.setScrollEnabled?.(!0), setPosition(closestPoint), animateTo(closestPoint);
|
|
34
|
+
},
|
|
35
|
+
[setIsDragging, scrollBridge, setPosition, animateTo]
|
|
36
|
+
);
|
|
37
|
+
return {
|
|
38
|
+
panGesture: useMemo(() => {
|
|
39
|
+
if (!gestureHandlerEnabled || disableDrag || isShowingInnerSheet || !frameSize)
|
|
40
|
+
return null;
|
|
41
|
+
const { Gesture } = getGestureHandlerState();
|
|
42
|
+
if (!Gesture)
|
|
43
|
+
return null;
|
|
44
|
+
const minY = positions[0], gs = gestureStateRef.current, gesture = Gesture.Pan().withRef(panGestureRef).failOffsetX([-20, 20]).shouldCancelWhenOutside(!1).onBegin(() => {
|
|
45
|
+
const pos = getCurrentPosition(), atTop = pos <= minY + AT_TOP_THRESHOLD, currentScrollY = scrollBridge.y;
|
|
46
|
+
gs.startY = pos, gs.lastPanTranslationY = 0, gs.accumulatedOffset = 0, gs.prevTranslationY = 0, gs.scrollEngaged = currentScrollY > 0, atTop || scrollBridge.setScrollEnabled?.(!1, 0);
|
|
47
|
+
}).onStart(() => {
|
|
48
|
+
scrollBridge.initialPosition = gs.startY, onStart();
|
|
49
|
+
}).onChange((event) => {
|
|
50
|
+
const { translationY } = event, isSwipingDown = gs.prevTranslationY < translationY, deltaY = translationY - gs.prevTranslationY;
|
|
51
|
+
gs.prevTranslationY = translationY;
|
|
52
|
+
const scrollY = scrollBridge.y;
|
|
53
|
+
scrollY > 0 && (gs.scrollEngaged = !0);
|
|
54
|
+
const isCurrentlyAtTop = gs.startY + gs.accumulatedOffset <= minY + AT_TOP_THRESHOLD, nodeIsScrolling = scrollY > 0;
|
|
55
|
+
let panHandles = !1;
|
|
56
|
+
if (isCurrentlyAtTop ? isSwipingDown ? nodeIsScrolling ? panHandles = !1 : (gs.scrollEngaged, panHandles = !0) : panHandles = !1 : isSwipingDown ? panHandles = !nodeIsScrolling : panHandles = !0, panHandles) {
|
|
57
|
+
const lockTo = isCurrentlyAtTop ? void 0 : 0;
|
|
58
|
+
scrollBridge.setScrollEnabled?.(!1, lockTo), gs.accumulatedOffset += deltaY;
|
|
59
|
+
const newPosition = resisted(gs.startY + gs.accumulatedOffset, minY);
|
|
60
|
+
scrollBridge.paneY = newPosition, setAnimatedPosition(newPosition), scrollBridge.setParentDragging(newPosition > minY);
|
|
61
|
+
} else
|
|
62
|
+
scrollBridge.setScrollEnabled?.(!0);
|
|
63
|
+
}).onEnd((event) => {
|
|
64
|
+
const { velocityY } = event, currentPos = gs.startY + gs.accumulatedOffset;
|
|
65
|
+
if (scrollBridge.scrollLockY = void 0, currentPos <= minY + AT_TOP_THRESHOLD && scrollBridge.y > 0) {
|
|
66
|
+
onEnd(0);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const velocity = velocityY / 1e3, projectedEnd = currentPos + frameSize * velocity * 0.2;
|
|
70
|
+
let closestPoint = 0, minDist = Number.POSITIVE_INFINITY;
|
|
71
|
+
for (let i = 0; i < positions.length; i++) {
|
|
72
|
+
const pos = positions[i], dist = Math.abs(projectedEnd - pos);
|
|
73
|
+
dist < minDist && (minDist = dist, closestPoint = i);
|
|
74
|
+
}
|
|
75
|
+
onEnd(closestPoint);
|
|
76
|
+
}).onFinalize(() => {
|
|
77
|
+
scrollBridge.scrollLockY = void 0;
|
|
78
|
+
}).runOnJS(!0);
|
|
79
|
+
return scrollGestureRef?.current ? gesture.simultaneousWithExternalGesture(scrollGestureRef.current) : gesture;
|
|
80
|
+
}, [
|
|
81
|
+
gestureHandlerEnabled,
|
|
82
|
+
disableDrag,
|
|
83
|
+
isShowingInnerSheet,
|
|
84
|
+
frameSize,
|
|
85
|
+
positions,
|
|
86
|
+
scrollBridge,
|
|
87
|
+
getCurrentPosition,
|
|
88
|
+
resisted,
|
|
89
|
+
onStart,
|
|
90
|
+
onEnd,
|
|
91
|
+
setIsDragging,
|
|
92
|
+
setAnimatedPosition
|
|
93
|
+
]),
|
|
94
|
+
panGestureRef,
|
|
95
|
+
gestureHandlerEnabled
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export {
|
|
99
|
+
useGestureHandlerPan
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=useGestureHandlerPan.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/useGestureHandlerPan.tsx"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { useCallback, useMemo, useRef } from "react";
|
|
2
|
+
import { getGestureHandlerState, isGestureHandlerEnabled } from "./gestureState.mjs";
|
|
3
|
+
const AT_TOP_THRESHOLD = 5;
|
|
4
|
+
function useGestureHandlerPan(config) {
|
|
5
|
+
const {
|
|
6
|
+
positions,
|
|
7
|
+
frameSize,
|
|
8
|
+
setPosition,
|
|
9
|
+
animateTo,
|
|
10
|
+
stopSpring,
|
|
11
|
+
scrollBridge,
|
|
12
|
+
setIsDragging,
|
|
13
|
+
getCurrentPosition,
|
|
14
|
+
resisted,
|
|
15
|
+
disableDrag,
|
|
16
|
+
isShowingInnerSheet,
|
|
17
|
+
setAnimatedPosition,
|
|
18
|
+
scrollGestureRef
|
|
19
|
+
} = config,
|
|
20
|
+
gestureHandlerEnabled = isGestureHandlerEnabled(),
|
|
21
|
+
panGestureRef = useRef(null),
|
|
22
|
+
gestureStateRef = useRef({
|
|
23
|
+
startY: 0,
|
|
24
|
+
// track last translation when pan was active (for position calculation after handoff)
|
|
25
|
+
lastPanTranslationY: 0,
|
|
26
|
+
// accumulated position offset from all pan movements
|
|
27
|
+
accumulatedOffset: 0,
|
|
28
|
+
// track previous translation for direction detection (like actions-sheet)
|
|
29
|
+
prevTranslationY: 0,
|
|
30
|
+
// track if scroll was engaged (scrollY > 0) at some point
|
|
31
|
+
scrollEngaged: !1
|
|
32
|
+
}),
|
|
33
|
+
onStart = useCallback(() => {
|
|
34
|
+
stopSpring(), setIsDragging(!0);
|
|
35
|
+
}, [stopSpring, setIsDragging]),
|
|
36
|
+
onEnd = useCallback(closestPoint => {
|
|
37
|
+
setIsDragging(!1), scrollBridge.setParentDragging(!1), scrollBridge.setScrollEnabled?.(!0), setPosition(closestPoint), animateTo(closestPoint);
|
|
38
|
+
}, [setIsDragging, scrollBridge, setPosition, animateTo]);
|
|
39
|
+
return {
|
|
40
|
+
panGesture: useMemo(() => {
|
|
41
|
+
if (!gestureHandlerEnabled || disableDrag || isShowingInnerSheet || !frameSize) return null;
|
|
42
|
+
const {
|
|
43
|
+
Gesture
|
|
44
|
+
} = getGestureHandlerState();
|
|
45
|
+
if (!Gesture) return null;
|
|
46
|
+
const minY = positions[0],
|
|
47
|
+
gs = gestureStateRef.current,
|
|
48
|
+
gesture = Gesture.Pan().withRef(panGestureRef).failOffsetX([-20, 20]).shouldCancelWhenOutside(!1).onBegin(() => {
|
|
49
|
+
const pos = getCurrentPosition(),
|
|
50
|
+
atTop = pos <= minY + AT_TOP_THRESHOLD,
|
|
51
|
+
currentScrollY = scrollBridge.y;
|
|
52
|
+
gs.startY = pos, gs.lastPanTranslationY = 0, gs.accumulatedOffset = 0, gs.prevTranslationY = 0, gs.scrollEngaged = currentScrollY > 0, atTop || scrollBridge.setScrollEnabled?.(!1, 0);
|
|
53
|
+
}).onStart(() => {
|
|
54
|
+
scrollBridge.initialPosition = gs.startY, onStart();
|
|
55
|
+
}).onChange(event => {
|
|
56
|
+
const {
|
|
57
|
+
translationY
|
|
58
|
+
} = event,
|
|
59
|
+
isSwipingDown = gs.prevTranslationY < translationY,
|
|
60
|
+
deltaY = translationY - gs.prevTranslationY;
|
|
61
|
+
gs.prevTranslationY = translationY;
|
|
62
|
+
const scrollY = scrollBridge.y;
|
|
63
|
+
scrollY > 0 && (gs.scrollEngaged = !0);
|
|
64
|
+
const isCurrentlyAtTop = gs.startY + gs.accumulatedOffset <= minY + AT_TOP_THRESHOLD,
|
|
65
|
+
nodeIsScrolling = scrollY > 0;
|
|
66
|
+
let panHandles = !1;
|
|
67
|
+
if (isCurrentlyAtTop ? isSwipingDown ? nodeIsScrolling ? panHandles = !1 : (gs.scrollEngaged, panHandles = !0) : panHandles = !1 : isSwipingDown ? panHandles = !nodeIsScrolling : panHandles = !0, panHandles) {
|
|
68
|
+
const lockTo = isCurrentlyAtTop ? void 0 : 0;
|
|
69
|
+
scrollBridge.setScrollEnabled?.(!1, lockTo), gs.accumulatedOffset += deltaY;
|
|
70
|
+
const newPosition = resisted(gs.startY + gs.accumulatedOffset, minY);
|
|
71
|
+
scrollBridge.paneY = newPosition, setAnimatedPosition(newPosition), scrollBridge.setParentDragging(newPosition > minY);
|
|
72
|
+
} else scrollBridge.setScrollEnabled?.(!0);
|
|
73
|
+
}).onEnd(event => {
|
|
74
|
+
const {
|
|
75
|
+
velocityY
|
|
76
|
+
} = event,
|
|
77
|
+
currentPos = gs.startY + gs.accumulatedOffset;
|
|
78
|
+
if (scrollBridge.scrollLockY = void 0, currentPos <= minY + AT_TOP_THRESHOLD && scrollBridge.y > 0) {
|
|
79
|
+
onEnd(0);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const velocity = velocityY / 1e3,
|
|
83
|
+
projectedEnd = currentPos + frameSize * velocity * 0.2;
|
|
84
|
+
let closestPoint = 0,
|
|
85
|
+
minDist = Number.POSITIVE_INFINITY;
|
|
86
|
+
for (let i = 0; i < positions.length; i++) {
|
|
87
|
+
const pos = positions[i],
|
|
88
|
+
dist = Math.abs(projectedEnd - pos);
|
|
89
|
+
dist < minDist && (minDist = dist, closestPoint = i);
|
|
90
|
+
}
|
|
91
|
+
onEnd(closestPoint);
|
|
92
|
+
}).onFinalize(() => {
|
|
93
|
+
scrollBridge.scrollLockY = void 0;
|
|
94
|
+
}).runOnJS(!0);
|
|
95
|
+
return scrollGestureRef?.current ? gesture.simultaneousWithExternalGesture(scrollGestureRef.current) : gesture;
|
|
96
|
+
}, [gestureHandlerEnabled, disableDrag, isShowingInnerSheet, frameSize, positions, scrollBridge, getCurrentPosition, resisted, onStart, onEnd, setIsDragging, setAnimatedPosition]),
|
|
97
|
+
panGestureRef,
|
|
98
|
+
gestureHandlerEnabled
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
export { useGestureHandlerPan };
|
|
102
|
+
//# sourceMappingURL=useGestureHandlerPan.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useRef","getGestureHandlerState","isGestureHandlerEnabled","AT_TOP_THRESHOLD","useGestureHandlerPan","config","positions","frameSize","setPosition","animateTo","stopSpring","scrollBridge","setIsDragging","getCurrentPosition","resisted","disableDrag","isShowingInnerSheet","setAnimatedPosition","scrollGestureRef","gestureHandlerEnabled","panGestureRef","gestureStateRef","startY","lastPanTranslationY","accumulatedOffset","prevTranslationY","scrollEngaged","onStart","onEnd","closestPoint","setParentDragging","setScrollEnabled","panGesture","Gesture","minY","gs","current","gesture","Pan","withRef","failOffsetX","shouldCancelWhenOutside","onBegin","pos","atTop","currentScrollY","y","initialPosition","onChange","event","translationY","isSwipingDown","deltaY","scrollY","isCurrentlyAtTop","nodeIsScrolling","panHandles","lockTo","newPosition","paneY","velocityY","currentPos","scrollLockY","velocity","projectedEnd","minDist","Number","POSITIVE_INFINITY","i","length","dist","Math","abs","onFinalize","runOnJS","simultaneousWithExternalGesture"],"sources":["../../src/useGestureHandlerPan.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|