]> BookStack Code Mirror - bookstack/blob - resources/js/components/header-mobile-toggle.js
Merge branch 'patch-1' of git://github.com/DeftNerd/BookStack into DeftNerd-patch-1
[bookstack] / resources / js / components / header-mobile-toggle.js
1
2 class HeaderMobileToggle {
3
4     constructor(elem) {
5         this.elem = elem;
6         this.toggleButton = elem.querySelector('.mobile-menu-toggle');
7         this.menu = elem.querySelector('.header-links');
8         this.open = false;
9
10         this.toggleButton.addEventListener('click', this.onToggle.bind(this));
11         this.onWindowClick = this.onWindowClick.bind(this);
12     }
13
14     onToggle(event) {
15         this.open = !this.open;
16         this.menu.classList.toggle('show', this.open);
17         if (this.open) {
18             window.addEventListener('click', this.onWindowClick)
19         } else {
20             window.removeEventListener('click', this.onWindowClick)
21         }
22         event.stopPropagation();
23     }
24
25     onWindowClick(event) {
26         this.onToggle(event);
27     }
28
29 }
30
31 module.exports = HeaderMobileToggle;