mirror of https://github.com/TriliumNext/Notes
25 lines
947 B
TypeScript
25 lines
947 B
TypeScript
import parents from "../common/parents";
|
|
|
|
|
|
export default function setupMobileMenu() {
|
|
function toggleMobileMenu(event: MouseEvent) {
|
|
event.stopPropagation(); // Don't prevent default for links
|
|
|
|
const isOpen = document.body.classList.contains("menu-open");
|
|
if (isOpen) return document.body.classList.remove("menu-open");
|
|
return document.body.classList.add("menu-open");
|
|
}
|
|
|
|
const showMenuButton = document.getElementById("show-menu-button");
|
|
showMenuButton?.addEventListener("click", toggleMobileMenu);
|
|
|
|
window.addEventListener("click", e => {
|
|
const isOpen = document.body.classList.contains("menu-open");
|
|
if (!isOpen) return; // This listener is only to close
|
|
|
|
// If the click was anywhere in the mobile nav, don't close
|
|
if (parents(e.target as HTMLElement, "#left-pane").length) return;
|
|
return toggleMobileMenu(e);
|
|
});
|
|
|
|
} |