@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.
- 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.native.js.map +1 -1
- package/dist/cjs/gestureState.cjs +39 -0
- package/dist/cjs/gestureState.js +34 -0
- package/dist/cjs/gestureState.js.map +6 -0
- package/dist/cjs/gestureState.native.js +42 -0
- package/dist/cjs/gestureState.native.js.map +1 -0
- package/dist/cjs/setupGestureHandler.cjs +46 -0
- package/dist/cjs/setupGestureHandler.js +38 -0
- package/dist/cjs/setupGestureHandler.js.map +6 -0
- package/dist/cjs/setupGestureHandler.native.js +50 -0
- package/dist/cjs/setupGestureHandler.native.js.map +1 -0
- package/dist/cjs/useGestureHandlerPan.cjs +136 -0
- package/dist/cjs/useGestureHandlerPan.js +126 -0
- package/dist/cjs/useGestureHandlerPan.js.map +6 -0
- package/dist/cjs/useGestureHandlerPan.native.js +145 -0
- package/dist/cjs/useGestureHandlerPan.native.js.map +1 -0
- package/dist/cjs/useKeyboardControllerSheet.cjs +38 -0
- package/dist/cjs/useKeyboardControllerSheet.js +34 -0
- package/dist/cjs/useKeyboardControllerSheet.js.map +6 -0
- package/dist/cjs/useKeyboardControllerSheet.native.js +114 -0
- package/dist/cjs/useKeyboardControllerSheet.native.js.map +1 -0
- package/dist/cjs/useSheetScrollViewGestures.cjs +123 -0
- package/dist/cjs/useSheetScrollViewGestures.js +102 -0
- package/dist/cjs/useSheetScrollViewGestures.js.map +6 -0
- package/dist/cjs/useSheetScrollViewGestures.native.js +110 -0
- package/dist/cjs/useSheetScrollViewGestures.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.native.js.map +1 -1
- package/dist/esm/gestureState.js +18 -0
- package/dist/esm/gestureState.js.map +6 -0
- package/dist/esm/gestureState.mjs +13 -0
- package/dist/esm/gestureState.mjs.map +1 -0
- package/dist/esm/gestureState.native.js +13 -0
- package/dist/esm/gestureState.native.js.map +1 -0
- package/dist/esm/setupGestureHandler.js +22 -0
- package/dist/esm/setupGestureHandler.js.map +6 -0
- package/dist/esm/setupGestureHandler.mjs +22 -0
- package/dist/esm/setupGestureHandler.mjs.map +1 -0
- package/dist/esm/setupGestureHandler.native.js +23 -0
- package/dist/esm/setupGestureHandler.native.js.map +1 -0
- package/dist/esm/useGestureHandlerPan.js +111 -0
- package/dist/esm/useGestureHandlerPan.js.map +6 -0
- package/dist/esm/useGestureHandlerPan.mjs +113 -0
- package/dist/esm/useGestureHandlerPan.mjs.map +1 -0
- package/dist/esm/useGestureHandlerPan.native.js +119 -0
- package/dist/esm/useGestureHandlerPan.native.js.map +1 -0
- package/dist/esm/useKeyboardControllerSheet.js +18 -0
- package/dist/esm/useKeyboardControllerSheet.js.map +6 -0
- package/dist/esm/useKeyboardControllerSheet.mjs +15 -0
- package/dist/esm/useKeyboardControllerSheet.mjs.map +1 -0
- package/dist/esm/useKeyboardControllerSheet.native.js +88 -0
- package/dist/esm/useKeyboardControllerSheet.native.js.map +1 -0
- package/dist/esm/useSheetScrollViewGestures.js +86 -0
- package/dist/esm/useSheetScrollViewGestures.js.map +6 -0
- package/dist/esm/useSheetScrollViewGestures.mjs +100 -0
- package/dist/esm/useSheetScrollViewGestures.mjs.map +1 -0
- package/dist/esm/useSheetScrollViewGestures.native.js +84 -0
- package/dist/esm/useSheetScrollViewGestures.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.native.js.map +1 -1
- package/dist/jsx/gestureState.js +18 -0
- package/dist/jsx/gestureState.js.map +6 -0
- package/dist/jsx/gestureState.mjs +13 -0
- package/dist/jsx/gestureState.mjs.map +1 -0
- package/dist/jsx/gestureState.native.js +42 -0
- package/dist/jsx/gestureState.native.js.map +1 -0
- package/dist/jsx/setupGestureHandler.js +22 -0
- package/dist/jsx/setupGestureHandler.js.map +6 -0
- package/dist/jsx/setupGestureHandler.mjs +22 -0
- package/dist/jsx/setupGestureHandler.mjs.map +1 -0
- package/dist/jsx/setupGestureHandler.native.js +50 -0
- package/dist/jsx/setupGestureHandler.native.js.map +1 -0
- package/dist/jsx/useGestureHandlerPan.js +111 -0
- package/dist/jsx/useGestureHandlerPan.js.map +6 -0
- package/dist/jsx/useGestureHandlerPan.mjs +113 -0
- package/dist/jsx/useGestureHandlerPan.mjs.map +1 -0
- package/dist/jsx/useGestureHandlerPan.native.js +145 -0
- package/dist/jsx/useGestureHandlerPan.native.js.map +1 -0
- package/dist/jsx/useKeyboardControllerSheet.js +18 -0
- package/dist/jsx/useKeyboardControllerSheet.js.map +6 -0
- package/dist/jsx/useKeyboardControllerSheet.mjs +15 -0
- package/dist/jsx/useKeyboardControllerSheet.mjs.map +1 -0
- package/dist/jsx/useKeyboardControllerSheet.native.js +114 -0
- package/dist/jsx/useKeyboardControllerSheet.native.js.map +1 -0
- package/dist/jsx/useSheetScrollViewGestures.js +86 -0
- package/dist/jsx/useSheetScrollViewGestures.js.map +6 -0
- package/dist/jsx/useSheetScrollViewGestures.mjs +100 -0
- package/dist/jsx/useSheetScrollViewGestures.mjs.map +1 -0
- package/dist/jsx/useSheetScrollViewGestures.native.js +110 -0
- package/dist/jsx/useSheetScrollViewGestures.native.js.map +1 -0
- package/package.json +19 -19
- package/types/GestureDetectorWrapper.d.ts.map +1 -0
- package/types/GestureSheetContext.d.ts.map +1 -0
- package/types/gestureState.d.ts.map +1 -0
- package/types/setupGestureHandler.d.ts.map +1 -0
- package/types/useGestureHandlerPan.d.ts.map +1 -0
- package/types/useKeyboardControllerSheet.d.ts.map +1 -0
- package/types/useKeyboardControllerSheet.native.d.ts.map +1 -0
- package/types/useSheetScrollViewGestures.d.ts.map +1 -0
- 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":";;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,yCAAA;AAAAC,QAAA,CAAAD,yCAAA;EAAAE,0BAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAC,YAAA,CAAAL,yCAAA;AASI,IAAAM,YAAA,GAAyDC,OAAA;EAC7DC,mBAAA,GAAmCD,OAAA;EAE/BE,2BAAA,GAA8B,SAAAA,CAAA,EAAW;IACzC,OAAO;EACX;EACIC,0BAAA,GAA6B,SAAAA,CAAA,EAAW;IACxC,OAAO,CAAC;EACZ;AACA,IAAI;EACA,IAAIC,YAAA,GAAeJ,OAAA,CAAQ,iBAAiB;EAC5CE,2BAAA,GAA8BE,YAAA,CAAaF,2BAAA,EAC3CC,0BAAA,GAA6BC,YAAA,CAAaD,0BAAA;AAC9C,QAAY,CAAC;AAEN,SAASR,2BAA2BU,OAAA,EAAS;EAChD,IAAI;MAAEC;IAAQ,IAAID,OAAA;IACd,CAACE,cAAA,EAAgBC,iBAAiB,QAAIT,YAAA,CAAAU,QAAA,EAAS,CAAC;IAChD,CAACC,iBAAA,EAAmBC,oBAAoB,QAAIZ,YAAA,CAAAU,QAAA,EAAS,EAAK;IAC1DG,yBAAA,GAA4BV,2BAAA,CAA4B;IAIxDW,oBAAA,OAAuBd,YAAA,CAAAe,MAAA,EAAO,EAAK;IAEnCC,WAAA,OAAchB,YAAA,CAAAe,MAAA,EAAO,EAAK;IAE1BE,eAAA,OAAkBjB,YAAA,CAAAkB,WAAA,EAAY,YAAW;MAEzC,IADAhB,mBAAA,CAAAiB,QAAA,CAASC,OAAA,CAAQ,GACbP,yBAAA,EACA,IAAI;QACA,IAAIQ,2BAAA;UACA;YAAEC;UAAmB,IAAIlB,0BAAA,CAA2B;QACxDkB,kBAAA,IAAuB,SAAkDD,2BAAA,GAA8BC,kBAAA,CAAmBF,OAAA,MAAa,QAAQC,2BAAA,KAAgC,UAAkBA,2BAAA,CAA4BE,IAAA,CAAKD,kBAAkB;MACxP,QAAY,CAAC;IAErB;IAAA;IACA,CACIT,yBAAA,CACH;IAGGW,gBAAA,OAAmBxB,YAAA,CAAAkB,WAAA,EAAY,YAAW;MACtCF,WAAA,CAAYS,OAAA,KACZT,WAAA,CAAYS,OAAA,GAAU,IACtBb,oBAAA,CAAqB,EAAK,GAC1BH,iBAAA,CAAkB,CAAC;IAE3B,GAAG,EAAE;EAEL,WAAAT,YAAA,CAAA0B,SAAA,EAAU,YAAW;IACjB,IAAI,GAACnB,OAAA,IAAW,CAACM,yBAAA,GACjB;MAAA,IAAI;QAAEc;MAAe,IAAIvB,0BAAA,CAA2B;MACpD,IAAsEuB,cAAA,EAAeC,WAAA,EACrF;QAAA,IAAIC,OAAA,GAAUF,cAAA,CAAeC,WAAA,CAAY,oBAAoB,UAASE,CAAA,EAAG;YACrE,IAAIC,SAAA;cACAC,MAAA,IAAUD,SAAA,GAAkDD,CAAA,EAAEE,MAAA,MAAY,QAAQD,SAAA,KAAc,SAASA,SAAA,GAAY;YACrHC,MAAA,GAAS,KACTvB,iBAAA,CAAkBuB,MAAM,GAE5BpB,oBAAA,CAAqB,EAAI;UAC7B,CAAC;UACGqB,OAAA,GAAUN,cAAA,CAAeC,WAAA,CAAY,oBAAoB,YAAW;YACpE,IAAId,oBAAA,CAAqBW,OAAA,EAAS;cAC9BT,WAAA,CAAYS,OAAA,GAAU;cACtB;YACJ;YACAb,oBAAA,CAAqB,EAAK,GAC1BH,iBAAA,CAAkB,CAAC;UACvB,CAAC;QACD,OAAO,YAAW;UACd,IAAIyB,eAAA,EAAiBC,eAAA;UACrBN,OAAA,IAAY,SAAuCK,eAAA,GAAkBL,OAAA,CAAQO,MAAA,MAAY,QAAQF,eAAA,KAAoB,UAAkBA,eAAA,CAAgBX,IAAA,CAAKM,OAAO,GACnKI,OAAA,IAAY,SAAuCE,eAAA,GAAkBF,OAAA,CAAQG,MAAA,MAAY,QAAQD,eAAA,KAAoB,UAAkBA,eAAA,CAAgBZ,IAAA,CAAKU,OAAO;QACvK;MAAA;IAAA;EACJ,GAAG,CACC1B,OAAA,EACAM,yBAAA,CACH,OAEDb,YAAA,CAAA0B,SAAA,EAAU,YAAW;IACjB,IAAKnB,OAAA,IACD,CAAAM,yBAAA,EACJ;MAAA,IAAIwB,SAAA,GAAYnC,mBAAA,CAAAoC,QAAA,CAASC,EAAA,KAAO,QAAQ,qBAAqB;QACzDC,SAAA,GAAYtC,mBAAA,CAAAoC,QAAA,CAASC,EAAA,KAAO,QAAQ,qBAAqB;QACzDE,YAAA,GAAevC,mBAAA,CAAAiB,QAAA,CAASS,WAAA,CAAYS,SAAA,EAAW,UAASP,CAAA,EAAG;UAC3DrB,iBAAA,CAAkBqB,CAAA,CAAEY,cAAA,CAAeV,MAAM,GACzCpB,oBAAA,CAAqB,EAAI;QAC7B,CAAC;QACG+B,YAAA,GAAezC,mBAAA,CAAAiB,QAAA,CAASS,WAAA,CAAYY,SAAA,EAAW,YAAW;UAC1D,IAAI1B,oBAAA,CAAqBW,OAAA,EAAS;YAC9BT,WAAA,CAAYS,OAAA,GAAU;YACtB;UACJ;UACAb,oBAAA,CAAqB,EAAK,GAC1BH,iBAAA,CAAkB,CAAC;QACvB,CAAC;MACD,OAAO,YAAW;QACdgC,YAAA,CAAaL,MAAA,CAAO,GACpBO,YAAA,CAAaP,MAAA,CAAO;MACxB;IAAA;EACJ,GAAG,CACC7B,OAAA,EACAM,yBAAA,CACH,GACM;IACHA,yBAAA;IACAL,cAAA;IACAG,iBAAA;IACAM,eAAA;IACAH,oBAAA;IACAU;EACJ;AACJ","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": "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",
|
|
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":"AAAA,SAASA,SAAA,EAAWC,MAAA,QAAc;AAuB3B,SAASC,2BAA2B;EACzCC,SAAA;EACAC,YAAA;EACAC;AACF,GAAoC;EAClC,MAAMC,KAAA,GAAQL,MAAA,CAAqB;IACjCM,MAAA,EAAQ;IACRC,KAAA,EAAO;IACPC,KAAA,EAAO;IACPC,aAAA,EAAe;IACfC,GAAA,EAAK,EAAC;IACNC,qBAAA,EAAuB;EACzB,CAAC;EAED,OAAAZ,SAAA,CAAU,MAAM;IACd,IAAI,CAACG,SAAA,CAAUU,OAAA,EAAS;IAExB,MAAMC,UAAA,GAAa,IAAIC,eAAA,CAAgB;MACjCC,IAAA,GAAOb,SAAA,CAAUU,OAAA,EAASI,iBAAA,CAAkB;IAElD,IAAI,CAACD,IAAA,EAAM;IAEXA,IAAA,CAAKE,KAAA,CAAMC,kBAAA,GAAqB;IAGhC,IAAIC,gBAAA,GAAmB;IAEvB,MAAMC,aAAA,GAAgBA,CAAA,KAAM;QACtBL,IAAA,CAAKE,KAAA,CAAMI,SAAA,KAAc,aAC3BF,gBAAA,GAAmBJ,IAAA,CAAKE,KAAA,CAAMI,SAAA,EAC9BN,IAAA,CAAKE,KAAA,CAAMI,SAAA,GAAY;MAE3B;MAEMC,YAAA,GAAeA,CAAA,KAAM;QACzBP,IAAA,CAAKE,KAAA,CAAMI,SAAA,GAAYF,gBAAA;MACzB;MAEMI,gBAAA,GAAoBC,CAAA,IAAkB;QAC1C,MAAMC,KAAA,GAAQD,CAAA,CAAEE,OAAA,CAAQ,CAAC;QACzB,IAAI,CAACD,KAAA,EAAO;QAEZ,MAAME,cAAA,GAAiBZ,IAAA,CAAKa,SAAA;QAE5BvB,KAAA,CAAMO,OAAA,GAAU;UACdN,MAAA,EAAQmB,KAAA,CAAMI,KAAA;UACdtB,KAAA,EAAOkB,KAAA,CAAMI,KAAA;UACbrB,KAAA,EAAO;UACPC,aAAA,EAAe;UACfC,GAAA,EAAK,EAAC;UACNC,qBAAA,EAAuBgB;QACzB,GAEAxB,YAAA,CAAa2B,YAAA,GAAeL,KAAA,CAAMI,KAAA;MACpC;MAEME,eAAA,GAAmBP,CAAA,IAAkB;QACzC,MAAMC,KAAA,GAAQD,CAAA,CAAEE,OAAA,CAAQ,CAAC;QACzB,IAAI,CAACD,KAAA,EAAO;QAEZ,MAAM;YAAEb,OAAA,EAASoB;UAAE,IAAI3B,KAAA;UACjBwB,KAAA,GAAQJ,KAAA,CAAMI,KAAA;UACdI,EAAA,GAAKJ,KAAA,GAAQG,CAAA,CAAEzB,KAAA;QAGrB,IAFAyB,CAAA,CAAEzB,KAAA,GAAQsB,KAAA,EAENI,EAAA,KAAO,GAAG;QAEd,MAAMC,cAAA,GAAiBD,EAAA,GAAK;UACtBN,cAAA,GAAiBZ,IAAA,CAAKa,SAAA;UACtBO,WAAA,GAAchC,YAAA,CAAaiC,KAAA,IAASjC,YAAA,CAAakC,QAAA,GAAW;QAElElC,YAAA,CAAamC,CAAA,GAAIX,cAAA;QAMjB,IAAIY,YAAA,GAAe;QAEdJ,WAAA,GAGMR,cAAA,IAAkB,KAAKO,cAAA,KAEhCK,YAAA,GAAe,MAHfA,YAAA,GAAe;QAMjB,MAAMC,QAAA,GAAyBD,YAAA,GAAe,QAAQ;QAiBtD,IAdIC,QAAA,KAAaR,CAAA,CAAExB,KAAA,KACbgC,QAAA,KAAa,SACfR,CAAA,CAAEvB,aAAA,GAAgB,GAClBuB,CAAA,CAAEtB,GAAA,GAAM,EAAC,EACTP,YAAA,CAAasC,iBAAA,CAAkB,EAAI,GACnCrB,aAAA,CAAc,MAEdjB,YAAA,CAAasC,iBAAA,CAAkB,EAAK,GACpCtC,YAAA,CAAauC,UAAA,GAAa,IAC1BpB,YAAA,CAAa,IAEfU,CAAA,CAAExB,KAAA,GAAQgC,QAAA,GAGRR,CAAA,CAAExB,KAAA,KAAU,OACVgB,CAAA,CAAEmB,UAAA,IAAYnB,CAAA,CAAEoB,cAAA,CAAe,GAEnCZ,CAAA,CAAEvB,aAAA,IAAiBwB,EAAA,EACnB9B,YAAA,CAAa0C,IAAA,CAAKb,CAAA,CAAEvB,aAAa,GAEjCuB,CAAA,CAAEtB,GAAA,CAAIoC,IAAA,CAAKb,EAAE,GACTD,CAAA,CAAEtB,GAAA,CAAIqC,MAAA,GAAS,QAAKf,CAAA,CAAEtB,GAAA,GAAMsB,CAAA,CAAEtB,GAAA,CAAIsC,KAAA,CAAM,GAAG,YACtChB,CAAA,CAAExB,KAAA,KAAU,UAAU;UAE/B,MAAMyC,WAAA,GAAc,CAAChB,EAAA;YACfiB,UAAA,GAAanC,IAAA,CAAKoC,YAAA,GAAepC,IAAA,CAAKqC,YAAA;YACtCC,UAAA,GAAaC,IAAA,CAAKC,GAAA,CAAI,GAAGD,IAAA,CAAKE,GAAA,CAAIN,UAAA,EAAYvB,cAAA,GAAiBsB,WAAW,CAAC;UAC7EI,UAAA,KAAe1B,cAAA,KACjBZ,IAAA,CAAKa,SAAA,GAAYyB,UAAA,EACjBlD,YAAA,CAAamC,CAAA,GAAIe,UAAA;QAErB;MACF;MAEMI,cAAA,GAAiBA,CAAA,KAAM;QAC3B,MAAM;UAAE7C,OAAA,EAASoB;QAAE,IAAI3B,KAAA;QAEvB,IAAI2B,CAAA,CAAExB,KAAA,KAAU,OAAO;UACrBL,YAAA,CAAasC,iBAAA,CAAkB,EAAK;UAEpC,IAAIiB,EAAA,GAAK;UACT,IAAI1B,CAAA,CAAEtB,GAAA,CAAIqC,MAAA,EAAQ;YAChB,MAAMY,SAAA,GAAY3B,CAAA,CAAEtB,GAAA,CAAIsC,KAAA,CAAM,GAAG;YAEjCU,EAAA,GADaC,SAAA,CAAUC,MAAA,CAAO,CAACC,CAAA,EAAGC,CAAA,KAAMD,CAAA,GAAIC,CAAA,EAAG,CAAC,IACnCH,SAAA,CAAUZ,MAAA,GAAU;UACnC;UAEA5C,YAAA,CAAa4D,OAAA,CAAQ;YAAEC,MAAA,EAAQhC,CAAA,CAAEvB,aAAA;YAAeiD;UAAG,CAAC;QACtD;QAEApC,YAAA,CAAa,GACbU,CAAA,CAAExB,KAAA,GAAQ,QACVwB,CAAA,CAAEvB,aAAA,GAAgB,GAClBuB,CAAA,CAAEtB,GAAA,GAAM,EAAC;MACX;IAEA,OAAAK,IAAA,CAAKkD,gBAAA,CAAiB,cAAc1C,gBAAA,EAAkB;MACpD2C,MAAA,EAAQrD,UAAA,CAAWqD,MAAA;MACnBC,OAAA,EAAS;IACX,CAAC,GACDpD,IAAA,CAAKkD,gBAAA,CAAiB,aAAalC,eAAA,EAAiB;MAClDmC,MAAA,EAAQrD,UAAA,CAAWqD,MAAA;MACnBC,OAAA,EAAS;IACX,CAAC,GACDpD,IAAA,CAAKkD,gBAAA,CAAiB,YAAYR,cAAA,EAAgB;MAChDS,MAAA,EAAQrD,UAAA,CAAWqD,MAAA;MACnBC,OAAA,EAAS;IACX,CAAC,GACDpD,IAAA,CAAKkD,gBAAA,CAAiB,eAAeR,cAAA,EAAgB;MACnDS,MAAA,EAAQrD,UAAA,CAAWqD,MAAA;MACnBC,OAAA,EAAS;IACX,CAAC,GAEM,MAAM;MACX7C,YAAA,CAAa,GACbT,UAAA,CAAWuD,KAAA,CAAM;IACnB;EACF,GAAG,CAAClE,SAAA,EAAWC,YAAA,EAAcC,oBAAoB,CAAC,GAE3C,CAAC;AACV","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
|