Newer
Older
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;