@@ -153,7 +153,11 @@ const backdropClick = () => {
153
153
if (props .canBackdropClose ) close ()
154
154
}
155
155
156
- // Scroll prevention handler
156
+ function handleTouchMove(event : TouchEvent ) {
157
+ preventScroll .value = true
158
+ handleSheetScroll (event )
159
+ }
160
+
157
161
function handleSheetScroll(event : TouchEvent ) {
158
162
if (preventScroll .value ) {
159
163
event .preventDefault ()
@@ -235,13 +239,15 @@ const handleDragEnd: Handler<'drag', PointerEvent> | undefined = () => {
235
239
})
236
240
}
237
241
242
+ const handleDragStart = () => {
243
+ height .value = sheetHeight .value
244
+ translateY .value = motionValues .value .y ! .get ()
245
+ stopMotion ()
246
+ }
247
+
238
248
useGesture (
239
249
{
240
- onDragStart : () => {
241
- height .value = sheetHeight .value
242
- translateY .value = motionValues .value .y ! .get ()
243
- stopMotion ()
244
- },
250
+ onDragStart: handleDragStart ,
245
251
onDrag: handleDrag ,
246
252
onDragEnd: handleDragEnd ,
247
253
},
@@ -253,11 +259,7 @@ useGesture(
253
259
254
260
useGesture (
255
261
{
256
- onDragStart : () => {
257
- height .value = sheetHeight .value
258
- translateY .value = motionValues .value .y ! .get ()
259
- stopMotion ()
260
- },
262
+ onDragStart: handleDragStart ,
261
263
onDrag: handleDrag ,
262
264
onDragEnd: handleDragEnd ,
263
265
},
@@ -424,7 +426,7 @@ defineExpose({ open, close, snapToPoint })
424
426
data-vsbs-sheet
425
427
tabindex =" -1"
426
428
>
427
- <div ref =" sheetHeader" data-vsbs-header >
429
+ <div ref =" sheetHeader" data-vsbs-header @touchmove = " handleTouchMove " >
428
430
<slot name =" header" />
429
431
</div >
430
432
@@ -436,7 +438,7 @@ defineExpose({ open, close, snapToPoint })
436
438
</div >
437
439
</div >
438
440
439
- <div ref =" sheetFooter" data-vsbs-footer >
441
+ <div ref =" sheetFooter" data-vsbs-footer @touchmove = " handleTouchMove " >
440
442
<slot name =" footer" />
441
443
</div >
442
444
</div >
0 commit comments