diff --git a/src/lib/components/NotificationToast.svelte b/src/lib/components/NotificationToast.svelte index 1b8d9fae8b..3eb6a17d08 100644 --- a/src/lib/components/NotificationToast.svelte +++ b/src/lib/components/NotificationToast.svelte @@ -5,6 +5,7 @@ import { marked } from 'marked'; import { createEventDispatcher, onMount } from 'svelte'; + import XMark from '$lib/components/icons/XMark.svelte'; const dispatch = createEventDispatcher(); @@ -15,6 +16,7 @@ let startX = 0, startY = 0; let moved = false; + let closeButtonElement: HTMLButtonElement; const DRAG_THRESHOLD_PX = 6; const clickHandler = () => { @@ -22,6 +24,10 @@ dispatch('closeToast'); }; + const closeHandler = () => { + dispatch('closeToast'); + }; + function onPointerDown(e: PointerEvent) { startX = e.clientX; startY = e.clientY; @@ -43,6 +49,11 @@ // Release capture if taken (e.currentTarget as HTMLElement).releasePointerCapture?.(e.pointerId); + // Skip if clicking the close button + if (closeButtonElement && (e.target === closeButtonElement || closeButtonElement.contains(e.target as Node))) { + return; + } + // Only treat as a click if there wasn't a drag if (!moved) { clickHandler(); @@ -71,7 +82,7 @@