From 63fe5b662a3f07e0117853ff76177d4f49abd817 Mon Sep 17 00:00:00 2001 From: Christina Toegl <toegl@tugraz.at> Date: Thu, 20 Jan 2022 13:43:08 +0100 Subject: [PATCH] Add event for clicking outside of menu (mobile) --- packages/app-shell/src/app-shell.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/packages/app-shell/src/app-shell.js b/packages/app-shell/src/app-shell.js index b3f9fe6f..5b648587 100644 --- a/packages/app-shell/src/app-shell.js +++ b/packages/app-shell/src/app-shell.js @@ -68,6 +68,9 @@ export class AppShell extends ScopedElementsMixin(DBPLitElement) { this._attrObserver = new MutationObserver(this.onAttributeObserved); this._onShowActivityEvent = this._onShowActivityEvent.bind(this); + this.boundCloseMenuHandler = this.hideMenu.bind(this); + this.initateOpenMenu = false; + this.auth = {}; } @@ -475,9 +478,22 @@ export class AppShell extends ScopedElementsMixin(DBPLitElement) { if (chevron !== null) { chevron.name = menu.classList.contains('hidden') ? 'chevron-down' : 'chevron-up'; } + + if (!menu.classList.contains('hidden')) { + document.addEventListener('click', this.boundCloseMenuHandler); + this.initateOpenMenu = true; + } + else { + document.removeEventListener('click', this.boundCloseMenuHandler); + menu.removeAttribute('style'); + } } hideMenu() { + if (this.initateOpenMenu) { + this.initateOpenMenu = false; + return; + } const menu = this.shadowRoot.querySelector("ul.menu"); if (menu && !menu.classList.contains('hidden')) this.toggleMenu(); -- GitLab