From acc32559d1e408cfa400320e6999787aec979919 Mon Sep 17 00:00:00 2001 From: Sean Lynch Date: Sat, 9 Sep 2023 16:41:44 -0400 Subject: [PATCH] Only close Dialog/Drawer on direct Backdrop click (not drag from Dialog/Drawer to Backdrop) --- .changeset/neat-frogs-crash.md | 5 +++++ src/lib/components/Dialog.svelte | 8 +++++--- src/lib/components/Drawer.svelte | 8 +++++--- 3 files changed, 15 insertions(+), 6 deletions(-) create mode 100644 .changeset/neat-frogs-crash.md diff --git a/.changeset/neat-frogs-crash.md b/.changeset/neat-frogs-crash.md new file mode 100644 index 000000000..5dc7a28c1 --- /dev/null +++ b/.changeset/neat-frogs-crash.md @@ -0,0 +1,5 @@ +--- +'svelte-ux': patch +--- + +Only close Dialog/Drawer on direct Backdrop click (not drag from Dialog/Drawer to Backdrop) diff --git a/src/lib/components/Dialog.svelte b/src/lib/components/Dialog.svelte index 0698a8629..6d5374e57 100644 --- a/src/lib/components/Dialog.svelte +++ b/src/lib/components/Dialog.svelte @@ -66,14 +66,16 @@ {#if open} { - // Do not allow event to reach Popover's on:mouseup (clickOutside) - e.stopPropagation(); + on:click={() => { if (!persistent) { open = false; } dispatch('close-attempt'); }} + on:mouseup={(e) => { + // Do not allow event to reach Popover's on:mouseup (clickOutside) + e.stopPropagation(); + }} class={cls('z-50', theme.backdrop, classes.backdrop)} fadeParams={{ duration: 150 }} {portal} diff --git a/src/lib/components/Drawer.svelte b/src/lib/components/Drawer.svelte index 6f916e970..36ddfb458 100644 --- a/src/lib/components/Drawer.svelte +++ b/src/lib/components/Drawer.svelte @@ -34,14 +34,16 @@ {#if open} { - // Do not allow event to reach Popover's on:mouseup (clickOutside) - e.stopPropagation(); + on:click={(e) => { if (!persistent) { open = false; } dispatch('close-attempt'); }} + on:mouseup={(e) => { + // Do not allow event to reach Popover's on:mouseup (clickOutside) + e.stopPropagation(); + }} class={cls('z-50', theme.backdrop, classes.backdrop)} {portal} />