Skip to content
Snippets Groups Projects
Commit 0e416b0a authored by katja's avatar katja
Browse files

lang menu positioning for group and non-group pages

parent 1e951523
No related branches found
No related tags found
No related merge requests found
......@@ -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() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment