class MobileSearch { static selector() { return '.js-mobile-search-toggle'; } constructor(node, mobileMenu, searchForm, searchToggleButton) { this.node = node; this.mobileMenu = mobileMenu[0]; this.searchForm = searchForm[0]; this.searchToggleButton = searchToggleButton[0]; this.bindEventListeners(); } bindEventListeners() { this.node.click(this.toggle.bind(this)); } toggle() { // hide the mobile menu this.mobileMenu.classList.remove('is-visible'); // wait for the mobile menu to close setTimeout(() => { // open the search this.searchForm.classList.add('is-visible'); // swap the icons this.searchToggleButton.querySelector('.header__icon--open-search').classList.add('is-hidden'); this.searchToggleButton.querySelector('.header__icon--close-search').classList.add('is-unhidden'); }, 250); } } export default MobileSearch;