diff --git a/frontend/src/lib/components/NotificationBell.svelte b/frontend/src/lib/components/NotificationBell.svelte index d21ae303..a1bb7b04 100644 --- a/frontend/src/lib/components/NotificationBell.svelte +++ b/frontend/src/lib/components/NotificationBell.svelte @@ -2,6 +2,7 @@ import { onMount, onDestroy } from 'svelte'; import { goto } from '$app/navigation'; import { m } from '$lib/paraglide/messages.js'; +import { clickOutside } from '$lib/actions/clickOutside'; import { type NotificationItem, relativeTime, @@ -110,21 +111,6 @@ function attachFirstFocusable(node: HTMLButtonElement) { }; } -// Attachment: closes dropdown when clicking outside the wrapper element -function attachClickOutside(node: HTMLElement) { - const handleClick = (event: MouseEvent) => { - if (!node.contains(event.target as Node) && !event.defaultPrevented) { - if (open) { - open = false; - } - } - }; - document.addEventListener('click', handleClick, true); - return () => { - document.removeEventListener('click', handleClick, true); - }; -} - onMount(() => { fetchUnreadCount(); eventSource = new EventSource('/api/notifications/stream'); @@ -143,7 +129,7 @@ onDestroy(() => { -
+
{ if (open) closeDropdown(); }}>