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