From 0e416b0a497eb30864e5d29c0fbf40306fe8ec4b Mon Sep 17 00:00:00 2001
From: katja <ekaterina.kondareva@druid.fi>
Date: Fri, 5 Mar 2021 00:11:55 +0200
Subject: [PATCH] lang menu positioning for group and non-group pages

---
 .../menu-language/menu-language.tsx           | 27 +++++++++++++------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/src/components/navigation/menu-language/menu-language.tsx b/src/components/navigation/menu-language/menu-language.tsx
index 2ad38810..8223824f 100644
--- a/src/components/navigation/menu-language/menu-language.tsx
+++ b/src/components/navigation/menu-language/menu-language.tsx
@@ -73,24 +73,35 @@ export class MenuLanguage {
   @Listen('click')
   handleComponentClick(event) {
     this.isMenuOpen = !this.isMenuOpen;
-    const languageMenuSelector = event.target as HTMLElement;
 
     if (this.isMenuOpen) {
       // Close desktop menu panel if it's open.
       this.menuLanguageToggled.emit();
 
-      let hyHeader = this.el.closest('.hy-site-header') as HTMLElement;
+      const languageMenuSelector = event.target as HTMLElement;
+      this.adjustPosition(languageMenuSelector, this.el);
+    }
+
+    event.stopPropagation();
+  }
+
+  adjustPosition(languageMenuSelector, target) {
+    const languagePanel = languageMenuSelector.shadowRoot.querySelectorAll(
+      `.menu--language__dropdown`
+    )[0] as HTMLElement;
+    let headerHeight = '0';
+    let hyHeader = this.isGroup
+      ? (target.closest('.hy-site-header__content-top') as HTMLElement)
+      : (target.closest('.hy-site-header') as HTMLElement);
+
+    if (hyHeader) {
       let rectHeader = hyHeader.getBoundingClientRect();
       let rectLangMenu = languageMenuSelector.getBoundingClientRect();
 
-      const headerHeight = `${languageMenuSelector.offsetHeight + rectHeader.bottom + 8 - rectLangMenu.bottom}px`;
-      const languagePanel = languageMenuSelector.shadowRoot.querySelectorAll(
-        `.menu--language__dropdown`
-      )[0] as HTMLElement;
-      languagePanel.style.top = headerHeight;
+      headerHeight = `${languageMenuSelector.offsetHeight + rectHeader.bottom + 8 - rectLangMenu.bottom}px`;
     }
 
-    event.stopPropagation();
+    languagePanel.style.top = headerHeight;
   }
 
   componentWillRender() {
-- 
GitLab