fix: typecheck public nav open state

This commit is contained in:
Marco Allegretti 2026-02-05 09:18:04 +01:00
parent 6f9b5949ad
commit 2d124e69fe

View file

@ -152,28 +152,38 @@ const defaultTheme = DEFAULT_THEME;
const nav = document.getElementById('public-nav');
const toggle = document.getElementById('public-nav-toggle');
function setOpen(open) {
function openNav() {
if (!nav || !toggle) return;
nav.classList.toggle('is-open', open);
toggle.setAttribute('aria-expanded', open ? 'true' : 'false');
nav.classList.add('is-open');
toggle.setAttribute('aria-expanded', 'true');
}
function closeNav() {
if (!nav || !toggle) return;
nav.classList.remove('is-open');
toggle.setAttribute('aria-expanded', 'false');
}
if (nav && toggle) {
toggle.addEventListener('click', () => {
setOpen(!nav.classList.contains('is-open'));
if (nav.classList.contains('is-open')) {
closeNav();
} else {
openNav();
}
});
nav.querySelectorAll('a').forEach((link) => {
link.addEventListener('click', () => {
if (window.matchMedia('(max-width: 768px)').matches) {
setOpen(false);
closeNav();
}
});
});
window.addEventListener('resize', () => {
if (window.innerWidth > 768) {
setOpen(false);
closeNav();
}
});
}