const SCREEN_BREAKPOINT = 1024;
hideOnSmallScreen();
handleCurrentPage();
handleMenuToggle();
function hideOnSmallScreen() {
const sidebar = document.getElementById("sidebar");
if (!sidebar) return;
const hide = () => sidebar.setAttribute("aria-hidden", "true");
const show = () => sidebar.setAttribute("aria-hidden", "false");
if (globalThis.innerWidth < SCREEN_BREAKPOINT) hide();
globalThis.addEventListener("resize", () => {
if (globalThis.innerWidth >= SCREEN_BREAKPOINT) show();
else hide();
});
}
function handleMenuToggle() {
const menuButton = document.getElementById("menu-button");
const sidebar = document.getElementById("sidebar");
if (!menuButton || !sidebar) return;
menuButton.addEventListener("click", () => {
const isHidden = sidebar.getAttribute("aria-hidden") === "true";
sidebar.setAttribute("aria-hidden", isHidden ? "false" : "true");
});
}
function handleCurrentPage() {
const links = document.querySelectorAll("a.bm-c-sidebar__link");
const sublists = document.querySelectorAll("details.bm-c-sidebar__sublist");
links.forEach((link) => {
if (link.href === globalThis.location.href) {
link.setAttribute("aria-current", "page");
} else link.removeAttribute("aria-current");
});
sublists.forEach((sublist) => {
if (
sublist.hasAttribute("data-always-expand") ||
sublist.querySelector('a[aria-current="page"]')
) {
sublist.setAttribute("open", "true");
} else {
sublist.removeAttribute("open");
}
});
links.forEach((link) => {
link.addEventListener("click", () => {
if (globalThis.innerWidth < SCREEN_BREAKPOINT) {
document.getElementById("sidebar").setAttribute("aria-hidden", "true");
}
});
});
}