From 8dcc3564c39eada6dcd86b838b06e73aa7fb5e5b Mon Sep 17 00:00:00 2001 From: "hrynevych.romann" Date: Thu, 18 Jan 2024 22:21:37 +0200 Subject: [PATCH] fix(dialog): fix click on scrollbar close dialog bug --- .../registry/default/ui/dialog/DialogScrollContent.vue | 9 +++++++++ .../registry/new-york/ui/dialog/DialogScrollContent.vue | 9 +++++++++ apps/www/src/public/registry/styles/default/dialog.json | 2 +- apps/www/src/public/registry/styles/new-york/dialog.json | 2 +- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/apps/www/src/lib/registry/default/ui/dialog/DialogScrollContent.vue b/apps/www/src/lib/registry/default/ui/dialog/DialogScrollContent.vue index 275020bb..509550c9 100644 --- a/apps/www/src/lib/registry/default/ui/dialog/DialogScrollContent.vue +++ b/apps/www/src/lib/registry/default/ui/dialog/DialogScrollContent.vue @@ -9,12 +9,20 @@ import { useEmitAsProps, } from 'radix-vue' import { X } from 'lucide-vue-next' +import type { PointerDownOutsideEvent } from 'radix-vue/dist/DismissableLayer' import { cn } from '@/lib/utils' const props = defineProps() const emits = defineEmits() const emitsAsProps = useEmitAsProps(emits) + +function handlePointerDown(event: PointerDownOutsideEvent) { + const originalEvent = event.detail.originalEvent + // Ignore click events on the scrollbar. + if (originalEvent.offsetX > originalEvent.target?.clientWidth || originalEvent.offsetY > originalEvent.target?.clientHeight) + event.preventDefault() +}