diff --git a/src/routes/tutorial/[slug]/_/Menu/Menu.svelte b/src/routes/tutorial/[slug]/_/Menu/Menu.svelte index b2e64270d..7d0da3926 100644 --- a/src/routes/tutorial/[slug]/_/Menu/Menu.svelte +++ b/src/routes/tutorial/[slug]/_/Menu/Menu.svelte @@ -46,17 +46,112 @@ afterNavigate(() => { search = ''; }); + + /** + * @param {HTMLElement} node + */ + function close_when_focus_leaves(node) { + function handle_focus_in() { + if (!node.contains(document.activeElement)) { + is_open = false; + } + } + document.addEventListener('focusin', handle_focus_in) + + return { + destroy: () => { + document.removeEventListener('focusin', handle_focus_in); + } + } + } -