Skip to content

Commit 193b928

Browse files
author
hzoppetti
committed
added js for clicking in the submenu to close
1 parent 03597d3 commit 193b928

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

src/components/2_molecules/navigation/primaryNav.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,47 @@ class MainSiteNav extends React.Component {
3838
};
3939
hideAll(); //hide all when page first loads
4040

41+
for (let i = 0; i < subMenus.length; i++) {
42+
const otherMenus = document.getElementsByClassName("c-sub-menu");
43+
const target = subMenus[i].getAttribute("data-submenu");
44+
const subMenuContainer = document.getElementById(target);
45+
46+
subMenus[i].addEventListener("click", target => {
47+
const hideSubMenus = () => {
48+
Object.keys(otherMenus).map(target => {
49+
const om = otherMenus[target];
50+
return (
51+
om !== subMenuContainer &&
52+
om.classList.add("visually-hidden", "visibility-hidden") +
53+
document.body.classList.remove("active")
54+
);
55+
});
56+
};
57+
58+
hideSubMenus();
59+
60+
if (subMenuContainer !== null) { // if this subcontainer exists
61+
if (!subMenuContainer.classList.contains("visually-hidden")) { // if this submenu is currently active
62+
subMenuContainer.classList.add("visually-hidden", "visibility-hidden");
63+
subMenuContainer.classList.remove("active");
64+
if (target === "sub-menu--mobile") {
65+
document.getElementById("o-menu__link--mobile").classList.remove("active");
66+
}
67+
} else { // if this submenu is not currently active
68+
subMenuContainer.classList.remove(
69+
"visually-hidden",
70+
"visibility-hidden"
71+
);
72+
73+
subMenuContainer.classList.add("active");
74+
if (target === "sub-menu--mobile") {
75+
document.getElementById("o-menu__link--mobile").classList.add("active");
76+
}
77+
}
78+
}
79+
});
80+
}
81+
4182
header.addEventListener("click", e => {
4283
const otherMenus = document.getElementsByClassName("c-sub-menu");
4384
const target = e.target.getAttribute("data-submenu");

0 commit comments

Comments
 (0)