diff --git a/frontend/src/lib/components/apps/components/display/AppMenu.svelte b/frontend/src/lib/components/apps/components/display/AppMenu.svelte index de56cd22cd..e048a54fcc 100644 --- a/frontend/src/lib/components/apps/components/display/AppMenu.svelte +++ b/frontend/src/lib/components/apps/components/display/AppMenu.svelte @@ -105,6 +105,7 @@ on:close on:open class={resolvedConfig.fillContainer ? 'w-full h-full' : ''} + useClickOutside={true} >
diff --git a/frontend/src/lib/components/meltComponents/Menu.svelte b/frontend/src/lib/components/meltComponents/Menu.svelte index 8fe486c201..1c95403274 100644 --- a/frontend/src/lib/components/meltComponents/Menu.svelte +++ b/frontend/src/lib/components/meltComponents/Menu.svelte @@ -2,6 +2,7 @@ import Portal from '$lib/components/Portal.svelte' import { melt, createSync } from '@melt-ui/svelte' import type { Placement } from '@floating-ui/core' + import { clickOutside } from '$lib/utils' import { twMerge } from 'tailwind-merge' import ResolveOpen from '$lib/components/common/menu/ResolveOpen.svelte' @@ -13,6 +14,7 @@ export let disabled = false export let createMenu: (any) => any export let invisible: boolean = false + export let useClickOutside: boolean = true // Use the passed createMenu function const menu = createMenu({ @@ -36,12 +38,26 @@ export function close() { open = false } + + async function getMenuElements(): Promise { + return Array.from(document.querySelectorAll('[data-menu]')) as HTMLElement[] + }
-