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;