-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnavigation.js
46 lines (36 loc) · 1.33 KB
/
navigation.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
class Navigation {
toggleAccordion(id) {
const content = document.getElementById(`content-${id}`);
const icon = document.getElementById(`icon-${id}`);
const isHidden = content.classList.contains("hidden");
content.classList.toggle("hidden", !isHidden);
icon.classList.toggle("rotate-180", isHidden);
// Update aria-expanded
const button = document.getElementById(`button-${id}`);
button.setAttribute("aria-expanded", isHidden ? "true" : "false");
}
toggleMenu() {
const menu = document.getElementById("mobile-menu");
menu.classList.toggle("hidden");
}
togglePopup(id) {
const popup = document.getElementById(`popup-${id}`);
popup.classList.toggle("hidden");
}
setupEventListeners() {
document.addEventListener("click", (event) => {
const notifications = document.getElementById("popup-notifications");
const accountInfo = document.getElementById("popup-account-info");
if (!event.target.closest("#notifications-icon")) {
notifications.classList.add("hidden");
}
if (!event.target.closest("#account-info-icon")) {
accountInfo.classList.add("hidden");
}
});
window.toggleAccordion = this.toggleAccordion;
window.toggleMenu = this.toggleMenu;
window.togglePopup = this.togglePopup;
}
}
export default Navigation;