diff --git a/packages/app-shell/src/app-shell.js b/packages/app-shell/src/app-shell.js index b3f9fe6f3d5d85e385324fa69cb1efa6b0b43ad9..5b64858768581e06812b51ea8d26b4afa34cafa6 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();