From 8c79efc2ca13c7f6de0f2231e24ace864217be48 Mon Sep 17 00:00:00 2001
From: Tuukka Turu <tuukka.turu@druid.fi>
Date: Mon, 8 Mar 2021 10:21:53 +0200
Subject: [PATCH] Add backdrop overlay when panel open

---
 src/components.d.ts                                   |  2 ++
 .../hy-menu-main-group/hy-menu-main-group.scss        |  2 +-
 .../hy-menu-main-group/hy-menu-main-group.tsx         |  2 ++
 .../navigation/hy-menu-main-group/readme.md           |  1 +
 src/components/site-header/readme.md                  | 11 ++++++-----
 src/components/site-header/site-header.tsx            |  8 +++++++-
 6 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/src/components.d.ts b/src/components.d.ts
index 1ae996ab..b97fb431 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -2019,6 +2019,7 @@ declare namespace LocalJSX {
     isMobile?: boolean;
     logoLabel?: string;
     logoUrl?: string;
+    onMobileMenuTopToggle?: (event: CustomEvent<any>) => void;
     onUniversityMainMenuToggled?: (event: CustomEvent<any>) => void;
     siteLabel?: string;
     siteUrl?: string;
@@ -2185,6 +2186,7 @@ declare namespace LocalJSX {
     onHeaderScrollDown?: (event: CustomEvent<any>) => void;
     onHeaderScrollUp?: (event: CustomEvent<any>) => void;
     onMenuMobileToggled?: (event: CustomEvent<any>) => void;
+    onMenuMobileTopToggled?: (event: CustomEvent<any>) => void;
     siteLabel?: string;
     siteUrl?: string;
   }
diff --git a/src/components/navigation/hy-menu-main-group/hy-menu-main-group.scss b/src/components/navigation/hy-menu-main-group/hy-menu-main-group.scss
index fdb4b550..614b85d6 100644
--- a/src/components/navigation/hy-menu-main-group/hy-menu-main-group.scss
+++ b/src/components/navigation/hy-menu-main-group/hy-menu-main-group.scss
@@ -275,7 +275,7 @@
   display: flex;
   flex-direction: column;
   justify-items: space-between;
-  max-width: 350px;
+  max-width: 400px;
   overflow: hidden;
   padding: 0px;
   place-items: stretch;
diff --git a/src/components/navigation/hy-menu-main-group/hy-menu-main-group.tsx b/src/components/navigation/hy-menu-main-group/hy-menu-main-group.tsx
index 31914440..8f336577 100644
--- a/src/components/navigation/hy-menu-main-group/hy-menu-main-group.tsx
+++ b/src/components/navigation/hy-menu-main-group/hy-menu-main-group.tsx
@@ -33,6 +33,7 @@ export class HyMenuMainGroup {
   @State() isMenuOpen: boolean = false;
 
   @Event() universityMainMenuToggled: EventEmitter;
+  @Event() mobileMenuTopToggle: EventEmitter;
 
   private _dataMainMenu: MainMenu[];
 
@@ -43,6 +44,7 @@ export class HyMenuMainGroup {
 
   @Listen('click')
   handleComponentClick(event) {
+    this.mobileMenuTopToggle.emit();
     this.isMenuOpen = !this.isMenuOpen;
 
     if (this.isMenuOpen) {
diff --git a/src/components/navigation/hy-menu-main-group/readme.md b/src/components/navigation/hy-menu-main-group/readme.md
index 122597d8..e29a25c5 100644
--- a/src/components/navigation/hy-menu-main-group/readme.md
+++ b/src/components/navigation/hy-menu-main-group/readme.md
@@ -18,6 +18,7 @@
 
 | Event                       | Description | Type               |
 | --------------------------- | ----------- | ------------------ |
+| `mobileMenuTopToggle`       |             | `CustomEvent<any>` |
 | `universityMainMenuToggled` |             | `CustomEvent<any>` |
 
 ## Dependencies
diff --git a/src/components/site-header/readme.md b/src/components/site-header/readme.md
index daa64e38..c656f997 100644
--- a/src/components/site-header/readme.md
+++ b/src/components/site-header/readme.md
@@ -25,11 +25,12 @@
 
 ## Events
 
-| Event               | Description | Type               |
-| ------------------- | ----------- | ------------------ |
-| `headerScrollDown`  |             | `CustomEvent<any>` |
-| `headerScrollUp`    |             | `CustomEvent<any>` |
-| `menuMobileToggled` |             | `CustomEvent<any>` |
+| Event                  | Description | Type               |
+| ---------------------- | ----------- | ------------------ |
+| `headerScrollDown`     |             | `CustomEvent<any>` |
+| `headerScrollUp`       |             | `CustomEvent<any>` |
+| `menuMobileToggled`    |             | `CustomEvent<any>` |
+| `menuMobileTopToggled` |             | `CustomEvent<any>` |
 
 ## Dependencies
 
diff --git a/src/components/site-header/site-header.tsx b/src/components/site-header/site-header.tsx
index 433c6922..35870133 100644
--- a/src/components/site-header/site-header.tsx
+++ b/src/components/site-header/site-header.tsx
@@ -52,6 +52,7 @@ export class SiteHeader {
   @Event() headerScrollUp: EventEmitter;
   @Event() headerScrollDown: EventEmitter;
   @Event() menuMobileToggled: EventEmitter;
+  @Event() menuMobileTopToggled: EventEmitter;
 
   private ro: ResizeObserver;
   private donateLink: DonateLink[];
@@ -71,6 +72,12 @@ export class SiteHeader {
     this.menuMobileToggled.emit();
   }
 
+  // Listener for toggling mobile menu top panel on or off.
+  @Listen('mobileMenuTopToggle') mobileMenuTopToggle() {
+    this.isMenuOpen = !this.isMenuOpen;
+    this.menuMobileTopToggled.emit();
+  }
+
   @Listen('scroll', {target: 'window'})
   handleScroll() {
     if (this.el.getAttribute('menu-type') === 'desktop') {
@@ -221,7 +228,6 @@ export class SiteHeader {
     const logoColor = ColorVariant.black;
     const logoColorGroup = ColorVariant.white;
     let classAttributes = ['hy-site-header', 'hy-site-header--' + this.menuType];
-
     switch (this.menuType) {
       case MenuType.desktop:
         // Larger than 1200px screens
-- 
GitLab