Close menu after navigation.

This commit is contained in:
7heMech
2025-11-13 00:30:45 +02:00
parent 66fa08fd8e
commit e86a34f2f3

View File

@@ -176,16 +176,13 @@ const getMenuDropown = (item: MenuItem, onClick?: () => void) => {
}; };
export function SiteMenu() { export function SiteMenu() {
// This is hacky AF. But that's the price of using a non-react UI kit. const closeMenu = () => {
const closeMenus = () => { const navbarToggler = document.querySelector<HTMLElement>(".navbar-toggler");
const navMenus = document.querySelectorAll(".nav-item.dropdown"); const navbarMenu = document.querySelector("#navbar-menu");
navMenus.forEach((menu) => {
menu.classList.remove("show"); if (navbarToggler && navbarMenu?.classList.contains("show")) {
const dropdown = menu.querySelector(".dropdown-menu"); navbarToggler.click();
if (dropdown) {
dropdown.classList.remove("show");
} }
});
}; };
return ( return (
@@ -198,7 +195,7 @@ export function SiteMenu() {
<ul className="navbar-nav"> <ul className="navbar-nav">
{menuItems.length > 0 && {menuItems.length > 0 &&
menuItems.map((item) => { menuItems.map((item) => {
return getMenuItem(item, closeMenus); return getMenuItem(item, closeMenu);
})} })}
</ul> </ul>
</div> </div>