Skip to content

Commit cdc6eda

Browse files
committed
feat: lock window scroll during drag events in BottomSheet component
1 parent d17434e commit cdc6eda

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"url": "https://github.com/megaarmos/vue-spring-bottom-sheet/issues"
3333
},
3434
"private": false,
35-
"version": "1.2.5",
35+
"version": "1.2.6",
3636
"type": "module",
3737
"exports": {
3838
".": {

src/BottomSheet.vue

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,6 @@ const open = () => {
108108
duration: props.duration,
109109
})
110110
showSheet.value = true
111-
isWindowScrollLocked.value = true
112-
isWindowRootScrollLocked.value = true
113111
114112
window.addEventListener('keydown', handleEscapeKey)
115113
@@ -133,8 +131,6 @@ const close = () => {
133131
})
134132
135133
showSheet.value = false
136-
isWindowScrollLocked.value = false
137-
isWindowRootScrollLocked.value = false
138134
139135
if (props.blocking) {
140136
focusTrap.deactivate()
@@ -211,7 +207,8 @@ const handleDrag: Handler<'drag', PointerEvent> | undefined = ({
211207
}
212208
213209
const handleDragEnd: Handler<'drag', PointerEvent> | undefined = () => {
214-
if (!sheet.value) return
210+
isWindowScrollLocked.value = false
211+
isWindowRootScrollLocked.value = false
215212
216213
translateY.value = props.canSwipeClose
217214
? [0, height.value].reduce((prev, curr) =>
@@ -240,6 +237,9 @@ const handleDragEnd: Handler<'drag', PointerEvent> | undefined = () => {
240237
}
241238
242239
const handleDragStart = () => {
240+
isWindowScrollLocked.value = true
241+
isWindowRootScrollLocked.value = true
242+
243243
height.value = sheetHeight.value
244244
translateY.value = motionValues.value.y!.get()
245245
stopMotion()
@@ -272,6 +272,9 @@ useGesture(
272272
useGesture(
273273
{
274274
onDragStart: ({ direction: [_directionX, _directionY] }) => {
275+
isWindowScrollLocked.value = true
276+
isWindowRootScrollLocked.value = true
277+
275278
height.value = sheetHeight.value
276279
translateY.value = motionValues.value.y!.get()
277280
stopMotion()

0 commit comments

Comments
 (0)