Newer
Older
class MobileMenu {
static selector() {
return '.js-mobile-menu-toggle';
}
constructor(node, closeButton, mobileMenu, search) {
this.node = node;
this.closeButton = closeButton;
this.mobileMenu = mobileMenu;
this.search = search;
this.bindEventListeners();
}
bindEventListeners() {
this.node.click(this.toggle.bind(this));
this.closeButton.click(this.toggle.bind(this));
}
toggle() {
// toggle mobile menu
this.mobileMenu[0].classList.toggle('is-visible');
// check if search exists
if (document.body.contains(this.search[0])) {
// reset the search whenever the mobile menu is toggled
if(this.search[0].classList.contains('is-visible')){
this.search[0].classList.toggle('is-visible');
document.querySelector('.header__inner--menu-open').classList.toggle('header__inner--search-open');
}
}
// reset the search show/hide icons
if(this.mobileMenu[0].classList.contains('is-visible') && document.body.contains(this.search[0])){
document.querySelector('.header__icon--open-search-menu-closed').classList.remove('is-hidden');
document.querySelector('.header__icon--close-search-menu-closed').classList.remove('is-unhidden');
}
}
}
export default MobileMenu;