@tamagui/sheet 2.3.3 → 2.4.0-1783099846627
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/.turbo/turbo-build.log +1 -1
- package/dist/cjs/SheetImplementationCustom.cjs +42 -29
- package/dist/cjs/SheetImplementationCustom.native.js +46 -33
- package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
- package/dist/cjs/SheetScrollView.cjs +64 -22
- package/dist/cjs/SheetScrollView.native.js +66 -23
- package/dist/cjs/SheetScrollView.native.js.map +1 -1
- package/dist/cjs/gestureState.cjs +13 -2
- package/dist/cjs/gestureState.native.js +14 -2
- package/dist/cjs/gestureState.native.js.map +1 -1
- package/dist/cjs/index.cjs +12 -1
- package/dist/cjs/index.native.js +11 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/setupGestureHandler.cjs +7 -4
- package/dist/cjs/setupGestureHandler.native.js +9 -4
- package/dist/cjs/setupGestureHandler.native.js.map +1 -1
- package/dist/cjs/useGestureHandlerPan.cjs +61 -8
- package/dist/cjs/useGestureHandlerPan.native.js +64 -8
- package/dist/cjs/useGestureHandlerPan.native.js.map +1 -1
- package/dist/cjs/useSheetScrollViewGestures.cjs +13 -3
- package/dist/esm/SheetImplementationCustom.mjs +43 -32
- package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
- package/dist/esm/SheetImplementationCustom.native.js +47 -36
- package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
- package/dist/esm/SheetScrollView.mjs +64 -22
- package/dist/esm/SheetScrollView.mjs.map +1 -1
- package/dist/esm/SheetScrollView.native.js +66 -23
- package/dist/esm/SheetScrollView.native.js.map +1 -1
- package/dist/esm/gestureState.mjs +13 -2
- package/dist/esm/gestureState.mjs.map +1 -1
- package/dist/esm/gestureState.native.js +14 -2
- package/dist/esm/gestureState.native.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +2 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -0
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/setupGestureHandler.mjs +7 -4
- package/dist/esm/setupGestureHandler.mjs.map +1 -1
- package/dist/esm/setupGestureHandler.native.js +9 -4
- package/dist/esm/setupGestureHandler.native.js.map +1 -1
- package/dist/esm/useGestureHandlerPan.mjs +62 -9
- package/dist/esm/useGestureHandlerPan.mjs.map +1 -1
- package/dist/esm/useGestureHandlerPan.native.js +65 -9
- package/dist/esm/useGestureHandlerPan.native.js.map +1 -1
- package/dist/esm/useSheetScrollViewGestures.mjs +13 -3
- package/dist/esm/useSheetScrollViewGestures.mjs.map +1 -1
- package/dist/jsx/SheetImplementationCustom.mjs +43 -32
- package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
- package/dist/jsx/SheetImplementationCustom.native.js +46 -33
- package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
- package/dist/jsx/SheetScrollView.mjs +64 -22
- package/dist/jsx/SheetScrollView.mjs.map +1 -1
- package/dist/jsx/SheetScrollView.native.js +66 -23
- package/dist/jsx/SheetScrollView.native.js.map +1 -1
- package/dist/jsx/gestureState.mjs +13 -2
- package/dist/jsx/gestureState.mjs.map +1 -1
- package/dist/jsx/gestureState.native.js +14 -2
- package/dist/jsx/gestureState.native.js.map +1 -1
- package/dist/jsx/index.js +2 -0
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +2 -0
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +11 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/setupGestureHandler.mjs +7 -4
- package/dist/jsx/setupGestureHandler.mjs.map +1 -1
- package/dist/jsx/setupGestureHandler.native.js +9 -4
- package/dist/jsx/setupGestureHandler.native.js.map +1 -1
- package/dist/jsx/useGestureHandlerPan.mjs +62 -9
- package/dist/jsx/useGestureHandlerPan.mjs.map +1 -1
- package/dist/jsx/useGestureHandlerPan.native.js +64 -8
- package/dist/jsx/useGestureHandlerPan.native.js.map +1 -1
- package/dist/jsx/useSheetScrollViewGestures.mjs +13 -3
- package/dist/jsx/useSheetScrollViewGestures.mjs.map +1 -1
- package/package.json +20 -20
- package/src/SheetImplementationCustom.tsx +79 -47
- package/src/SheetScrollView.tsx +61 -13
- package/src/gestureState.ts +22 -2
- package/src/index.ts +4 -0
- package/src/setupGestureHandler.ts +12 -3
- package/src/types.tsx +3 -0
- package/src/useGestureHandlerPan.tsx +64 -10
- package/src/useSheetScrollViewGestures.ts +17 -2
- package/types/SheetImplementationCustom.d.ts.map +1 -1
- package/types/SheetScrollView.d.ts.map +1 -1
- package/types/gestureState.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/setupGestureHandler.d.ts.map +1 -1
- package/types/types.d.ts +1 -0
- package/types/types.d.ts.map +1 -1
- package/types/useGestureHandlerPan.d.ts.map +1 -1
- package/types/useSheetScrollViewGestures.d.ts +2 -1
- package/types/useSheetScrollViewGestures.d.ts.map +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isWeb } from '@tamagui/constants'
|
|
2
|
-
import { useCallback, useMemo, useRef, type RefObject } from 'react'
|
|
2
|
+
import { useCallback, useEffect, useMemo, useRef, type RefObject } from 'react'
|
|
3
3
|
import { getGestureHandlerState, isGestureHandlerEnabled } from './gestureState'
|
|
4
4
|
import { getSheetReleasePosition } from './keyboardAvoidance'
|
|
5
5
|
import type { ScrollBridge, SnapPointsMode } from './types'
|
|
@@ -7,6 +7,7 @@ import type { ScrollBridge, SnapPointsMode } from './types'
|
|
|
7
7
|
// threshold in pixels for considering sheet "at top" position
|
|
8
8
|
// allows for small measurement variations
|
|
9
9
|
const AT_TOP_THRESHOLD = 5
|
|
10
|
+
const SCROLL_HANDOFF_THRESHOLD = 160
|
|
10
11
|
|
|
11
12
|
interface GesturePanConfig {
|
|
12
13
|
positions: number[]
|
|
@@ -104,18 +105,45 @@ export function useGestureHandlerPan(config: GesturePanConfig): GesturePanResult
|
|
|
104
105
|
frozenIsKeyboardVisible: false,
|
|
105
106
|
// whether pan gesture actually started (vs just a tap in onBegin)
|
|
106
107
|
panStarted: false,
|
|
108
|
+
startedBelowTop: false,
|
|
109
|
+
upwardDragAfterTop: 0,
|
|
110
|
+
scrollUnlockedAfterTop: false,
|
|
111
|
+
keepScrollLockedAfterEnd: false,
|
|
107
112
|
})
|
|
113
|
+
const unlockScrollTimer = useRef<ReturnType<typeof setTimeout> | null>(null)
|
|
114
|
+
|
|
115
|
+
useEffect(() => {
|
|
116
|
+
return () => {
|
|
117
|
+
if (unlockScrollTimer.current) {
|
|
118
|
+
clearTimeout(unlockScrollTimer.current)
|
|
119
|
+
unlockScrollTimer.current = null
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}, [])
|
|
108
123
|
|
|
109
124
|
const onStart = useCallback(() => {
|
|
110
125
|
stopSpring()
|
|
111
126
|
}, [stopSpring])
|
|
112
127
|
|
|
113
128
|
const onEnd = useCallback(
|
|
114
|
-
(closestPoint: number, animationOverride?: any) => {
|
|
129
|
+
(closestPoint: number, animationOverride?: any, keepScrollLocked = false) => {
|
|
130
|
+
if (unlockScrollTimer.current) {
|
|
131
|
+
clearTimeout(unlockScrollTimer.current)
|
|
132
|
+
unlockScrollTimer.current = null
|
|
133
|
+
}
|
|
115
134
|
setIsDragging(false)
|
|
116
135
|
scrollBridge.setParentDragging(false)
|
|
117
|
-
|
|
118
|
-
|
|
136
|
+
scrollBridge.lockScrollAtTop = false
|
|
137
|
+
if (keepScrollLocked) {
|
|
138
|
+
scrollBridge.setScrollEnabled?.(false, 0)
|
|
139
|
+
unlockScrollTimer.current = setTimeout(() => {
|
|
140
|
+
unlockScrollTimer.current = null
|
|
141
|
+
scrollBridge.setScrollEnabled?.(true)
|
|
142
|
+
}, 160)
|
|
143
|
+
} else {
|
|
144
|
+
// re-enable scroll when gesture ends
|
|
145
|
+
scrollBridge.setScrollEnabled?.(true)
|
|
146
|
+
}
|
|
119
147
|
setPosition(closestPoint)
|
|
120
148
|
animateTo(closestPoint, animationOverride)
|
|
121
149
|
},
|
|
@@ -173,6 +201,15 @@ export function useGestureHandlerPan(config: GesturePanConfig): GesturePanResult
|
|
|
173
201
|
gs.frozenPositions = [...positions]
|
|
174
202
|
gs.frozenMinY = minY
|
|
175
203
|
gs.frozenIsKeyboardVisible = releaseConfigRef.current.isKeyboardVisible
|
|
204
|
+
gs.startedBelowTop = !atTop
|
|
205
|
+
gs.upwardDragAfterTop = 0
|
|
206
|
+
gs.scrollUnlockedAfterTop = false
|
|
207
|
+
gs.keepScrollLockedAfterEnd = false
|
|
208
|
+
scrollBridge.lockScrollAtTop = false
|
|
209
|
+
if (unlockScrollTimer.current) {
|
|
210
|
+
clearTimeout(unlockScrollTimer.current)
|
|
211
|
+
unlockScrollTimer.current = null
|
|
212
|
+
}
|
|
176
213
|
|
|
177
214
|
// if sheet not at top, DISABLE SCROLL immediately and lock to 0
|
|
178
215
|
// this prevents scroll from firing before pan takes over
|
|
@@ -251,8 +288,18 @@ export function useGestureHandlerPan(config: GesturePanConfig): GesturePanResult
|
|
|
251
288
|
// if there's scrollable content, let scroll handle so user can scroll into content
|
|
252
289
|
// resistance only applies when there's NO scrollable content
|
|
253
290
|
if (hasScrollableContent) {
|
|
254
|
-
|
|
255
|
-
|
|
291
|
+
if (gs.startedBelowTop && !gs.scrollUnlockedAfterTop) {
|
|
292
|
+
gs.upwardDragAfterTop += Math.max(0, -deltaY)
|
|
293
|
+
if (gs.upwardDragAfterTop >= SCROLL_HANDOFF_THRESHOLD) {
|
|
294
|
+
gs.scrollUnlockedAfterTop = true
|
|
295
|
+
panHandles = false
|
|
296
|
+
} else {
|
|
297
|
+
panHandles = true
|
|
298
|
+
}
|
|
299
|
+
} else {
|
|
300
|
+
// content is scrollable - let scroll handle (user wants to scroll down into content)
|
|
301
|
+
panHandles = false
|
|
302
|
+
}
|
|
256
303
|
} else {
|
|
257
304
|
// no scrollable content -> pan handles for resistance effect
|
|
258
305
|
panHandles = true
|
|
@@ -261,6 +308,7 @@ export function useGestureHandlerPan(config: GesturePanConfig): GesturePanResult
|
|
|
261
308
|
}
|
|
262
309
|
|
|
263
310
|
if (panHandles) {
|
|
311
|
+
scrollBridge.lockScrollAtTop = gs.startedBelowTop && !gs.scrollUnlockedAfterTop
|
|
264
312
|
// pan handles - disable scroll and move sheet
|
|
265
313
|
// when swiping down at top after scroll was engaged: lock at current scroll position
|
|
266
314
|
// (handoff from scroll to pan — preserve scroll offset)
|
|
@@ -278,17 +326,22 @@ export function useGestureHandlerPan(config: GesturePanConfig): GesturePanResult
|
|
|
278
326
|
setAnimatedPosition(newPosition)
|
|
279
327
|
scrollBridge.setParentDragging(newPosition > minY)
|
|
280
328
|
} else {
|
|
329
|
+
scrollBridge.lockScrollAtTop = false
|
|
281
330
|
// scroll handles - enable scroll so it can move freely
|
|
282
331
|
scrollBridge.setScrollEnabled?.(true)
|
|
332
|
+
scrollBridge.setParentDragging(false)
|
|
283
333
|
// don't accumulate offset when scroll is handling
|
|
284
334
|
}
|
|
285
335
|
})
|
|
286
336
|
.onEnd((event: { velocityY: number }) => {
|
|
287
337
|
const { velocityY } = event
|
|
288
338
|
const currentPos = gs.startY + gs.accumulatedOffset
|
|
339
|
+
const keepScrollLockedAfterEnd = gs.startedBelowTop && !gs.scrollUnlockedAfterTop
|
|
289
340
|
|
|
290
341
|
// clear scroll lock
|
|
291
|
-
scrollBridge.
|
|
342
|
+
scrollBridge.lockScrollAtTop = false
|
|
343
|
+
scrollBridge.scrollLockY = keepScrollLockedAfterEnd ? 0 : undefined
|
|
344
|
+
gs.keepScrollLockedAfterEnd = keepScrollLockedAfterEnd
|
|
292
345
|
|
|
293
346
|
// use frozen positions from gesture start — keyboard may have dismissed
|
|
294
347
|
// during drag (input blur), reverting activePositions. Frozen positions
|
|
@@ -301,7 +354,7 @@ export function useGestureHandlerPan(config: GesturePanConfig): GesturePanResult
|
|
|
301
354
|
|
|
302
355
|
// if sheet is at top and scroll is engaged, just stay at top
|
|
303
356
|
if (currentPos <= snapMinY + AT_TOP_THRESHOLD && scrollBridge.y > 0) {
|
|
304
|
-
onEnd(0)
|
|
357
|
+
onEnd(0, undefined, keepScrollLockedAfterEnd)
|
|
305
358
|
return
|
|
306
359
|
}
|
|
307
360
|
|
|
@@ -321,11 +374,12 @@ export function useGestureHandlerPan(config: GesturePanConfig): GesturePanResult
|
|
|
321
374
|
isWeb,
|
|
322
375
|
})
|
|
323
376
|
|
|
324
|
-
onEnd(closestPoint)
|
|
377
|
+
onEnd(closestPoint, undefined, keepScrollLockedAfterEnd)
|
|
325
378
|
})
|
|
326
379
|
.onFinalize(() => {
|
|
327
380
|
// clear scroll lock on finalize too (safety)
|
|
328
|
-
scrollBridge.
|
|
381
|
+
scrollBridge.lockScrollAtTop = false
|
|
382
|
+
scrollBridge.scrollLockY = gs.keepScrollLockedAfterEnd ? 0 : undefined
|
|
329
383
|
if (gs.panStarted) {
|
|
330
384
|
// real pan gesture — reset isDragging (also un-pauses keyboard handler + flushes)
|
|
331
385
|
setIsDragging(false)
|
|
@@ -20,12 +20,14 @@ interface UseSheetScrollViewGesturesProps {
|
|
|
20
20
|
hasScrollableContent: boolean
|
|
21
21
|
scrollEnabled: boolean
|
|
22
22
|
setScrollEnabled: (enabled: boolean, lockTo?: number) => void
|
|
23
|
+
onManualScroll?: (node: HTMLElement, y: number) => void
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
export function useSheetScrollViewGestures({
|
|
26
27
|
scrollRef,
|
|
27
28
|
scrollBridge,
|
|
28
29
|
hasScrollableContent,
|
|
30
|
+
onManualScroll,
|
|
29
31
|
}: UseSheetScrollViewGesturesProps) {
|
|
30
32
|
const state = useRef<GestureState>({
|
|
31
33
|
startY: 0,
|
|
@@ -36,6 +38,11 @@ export function useSheetScrollViewGestures({
|
|
|
36
38
|
dys: [],
|
|
37
39
|
scrollYAtGestureStart: 0,
|
|
38
40
|
})
|
|
41
|
+
const onManualScrollRef = useRef(onManualScroll)
|
|
42
|
+
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
onManualScrollRef.current = onManualScroll
|
|
45
|
+
}, [onManualScroll])
|
|
39
46
|
|
|
40
47
|
useEffect(() => {
|
|
41
48
|
if (!scrollRef.current) return
|
|
@@ -61,6 +68,13 @@ export function useSheetScrollViewGestures({
|
|
|
61
68
|
node.style.overflowY = originalOverflow
|
|
62
69
|
}
|
|
63
70
|
|
|
71
|
+
const setScrollTop = (nextScrollY: number) => {
|
|
72
|
+
if (node.scrollTop === nextScrollY) return
|
|
73
|
+
|
|
74
|
+
node.scrollTop = nextScrollY
|
|
75
|
+
onManualScrollRef.current?.(node, nextScrollY)
|
|
76
|
+
}
|
|
77
|
+
|
|
64
78
|
const handleTouchStart = (e: TouchEvent) => {
|
|
65
79
|
const touch = e.touches[0]
|
|
66
80
|
if (!touch) return
|
|
@@ -97,7 +111,8 @@ export function useSheetScrollViewGestures({
|
|
|
97
111
|
|
|
98
112
|
const isDraggingDown = dy > 0
|
|
99
113
|
const currentScrollY = node.scrollTop
|
|
100
|
-
const isPaneAtTop =
|
|
114
|
+
const isPaneAtTop =
|
|
115
|
+
scrollBridge.isAtTop ?? scrollBridge.paneY <= scrollBridge.paneMinY + 5
|
|
101
116
|
|
|
102
117
|
scrollBridge.y = currentScrollY
|
|
103
118
|
|
|
@@ -161,7 +176,7 @@ export function useSheetScrollViewGestures({
|
|
|
161
176
|
const maxScrollY = node.scrollHeight - node.clientHeight
|
|
162
177
|
const newScrollY = Math.max(0, Math.min(maxScrollY, currentScrollY + scrollDelta))
|
|
163
178
|
if (newScrollY !== currentScrollY) {
|
|
164
|
-
|
|
179
|
+
setScrollTop(newScrollY)
|
|
165
180
|
scrollBridge.y = newScrollY
|
|
166
181
|
if (newScrollY > 0) scrollBridge.scrollStartY = -1
|
|
167
182
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SheetImplementationCustom.d.ts","sourceRoot":"","sources":["../src/SheetImplementationCustom.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAOvC,OAAO,EAA4B,IAAI,EAAE,MAAM,cAAc,CAAA;AAmB7D,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,SAAS,CAAA;AAmCzD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"SheetImplementationCustom.d.ts","sourceRoot":"","sources":["../src/SheetImplementationCustom.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAOvC,OAAO,EAA4B,IAAI,EAAE,MAAM,cAAc,CAAA;AAmB7D,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,SAAS,CAAA;AAmCzD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAo/BrC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SheetScrollView.d.ts","sourceRoot":"","sources":["../src/SheetScrollView.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AAgB9D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"SheetScrollView.d.ts","sourceRoot":"","sources":["../src/SheetScrollView.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AAgB9D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAyV3B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gestureState.d.ts","sourceRoot":"","sources":["../src/gestureState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEtE,YAAY,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"gestureState.d.ts","sourceRoot":"","sources":["../src/gestureState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEtE,YAAY,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAa1E,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED,wBAAgB,sBAAsB,IAAI,YAAY,CAErD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAY3E;AAGD,eAAO,MAAM,eAAe,+BAAyB,CAAA"}
|
package/types/index.d.ts
CHANGED
|
@@ -9,4 +9,5 @@ export * from './SheetScrollView';
|
|
|
9
9
|
export * from './nativeSheet';
|
|
10
10
|
export * from './types';
|
|
11
11
|
export * from './contexts';
|
|
12
|
+
export { getGestureHandlerState as unstable_getSheetGestureHandlerState, isGestureHandlerEnabled as unstable_isSheetGestureHandlerEnabled, } from './gestureState';
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,OAAO,EACL,sBAAsB,IAAI,oCAAoC,EAC9D,uBAAuB,IAAI,qCAAqC,GACjE,MAAM,gBAAgB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupGestureHandler.d.ts","sourceRoot":"","sources":["../src/setupGestureHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"setupGestureHandler.d.ts","sourceRoot":"","sources":["../src/setupGestureHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,wBAAgB,uBAAuB,IAAI,OAAO,CAMjD;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,GAAG,CAAA;IACZ,eAAe,EAAE,GAAG,CAAA;IACpB,UAAU,CAAC,EAAE,GAAG,CAAA;CACjB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAkB3E"}
|
package/types/types.d.ts
CHANGED
|
@@ -102,6 +102,7 @@ export type ScrollBridge = {
|
|
|
102
102
|
setScrollEnabled?: (enabled: boolean, lockTo?: number) => void;
|
|
103
103
|
_lastTouchY?: number;
|
|
104
104
|
scrollLockY?: number;
|
|
105
|
+
lockScrollAtTop?: boolean;
|
|
105
106
|
forceScrollTo?: (y: number) => void;
|
|
106
107
|
isAtTop?: boolean;
|
|
107
108
|
snapToPosition?: (positionIndex: number) => void;
|
package/types/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGestureHandlerPan.d.ts","sourceRoot":"","sources":["../src/useGestureHandlerPan.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"useGestureHandlerPan.d.ts","sourceRoot":"","sources":["../src/useGestureHandlerPan.tsx"],"names":[],"mappings":"AACA,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAG/E,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO3D,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;IACzD,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,kBAAkB,EAAE,MAAM,MAAM,CAAA;IAChC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B,mBAAmB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAE1C,gBAAgB,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IAExC,oBAAoB,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;CAC1C;AAED,UAAU,gBAAgB;IACxB,UAAU,EAAE,GAAG,GAAG,IAAI,CAAA;IACtB,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;IAC7B,qBAAqB,EAAE,OAAO,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CA4W/E"}
|
|
@@ -6,7 +6,8 @@ interface UseSheetScrollViewGesturesProps {
|
|
|
6
6
|
hasScrollableContent: boolean;
|
|
7
7
|
scrollEnabled: boolean;
|
|
8
8
|
setScrollEnabled: (enabled: boolean, lockTo?: number) => void;
|
|
9
|
+
onManualScroll?: (node: HTMLElement, y: number) => void;
|
|
9
10
|
}
|
|
10
|
-
export declare function useSheetScrollViewGestures({ scrollRef, scrollBridge, hasScrollableContent, }: UseSheetScrollViewGesturesProps): {};
|
|
11
|
+
export declare function useSheetScrollViewGestures({ scrollRef, scrollBridge, hasScrollableContent, onManualScroll, }: UseSheetScrollViewGesturesProps): {};
|
|
11
12
|
export {};
|
|
12
13
|
//# sourceMappingURL=useSheetScrollViewGestures.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSheetScrollViewGestures.d.ts","sourceRoot":"","sources":["../src/useSheetScrollViewGestures.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAc3C,UAAU,+BAA+B;IACvC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IAC/C,YAAY,EAAE,YAAY,CAAA;IAC1B,oBAAoB,EAAE,OAAO,CAAA;IAC7B,aAAa,EAAE,OAAO,CAAA;IACtB,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"useSheetScrollViewGestures.d.ts","sourceRoot":"","sources":["../src/useSheetScrollViewGestures.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAc3C,UAAU,+BAA+B;IACvC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IAC/C,YAAY,EAAE,YAAY,CAAA;IAC1B,oBAAoB,EAAE,OAAO,CAAA;IAC7B,aAAa,EAAE,OAAO,CAAA;IACtB,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7D,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CACxD;AAED,wBAAgB,0BAA0B,CAAC,EACzC,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,cAAc,GACf,EAAE,+BAA+B,MAkNjC"}
|