const html = document.documentElement; const body = document.body; const menuLinks = document.querySelectorAll(".admin-menu a"); const collapseBtn = document.querySelector(".admin-menu .collapse-btn"); const toggleMobileMenu = document.querySelector(".toggle-mob-menu"); const switchInput = document.querySelector(".switch input"); const switchLabel = document.querySelector(".switch label"); const switchLabelText = switchLabel.querySelector("span:last-child"); const collapsedClass = "collapsed"; const lightModeClass = "light-mode"; /*TOGGLE HEADER STATE*/ collapseBtn.addEventListener("click", function () { body.classList.toggle(collapsedClass); this.getAttribute("aria-expanded") == "true" ? this.setAttribute("aria-expanded", "false") : this.setAttribute("aria-expanded", "true"); this.getAttribute("aria-label") == "collapse menu" ? this.setAttribute("aria-label", "expand menu") : this.setAttribute("aria-label", "collapse menu"); }); /*TOGGLE MOBILE MENU*/ toggleMobileMenu.addEventListener("click", function () { body.classList.toggle("mob-menu-opened"); this.getAttribute("aria-expanded") == "true" ? this.setAttribute("aria-expanded", "false") : this.setAttribute("aria-expanded", "true"); this.getAttribute("aria-label") == "open menu" ? this.setAttribute("aria-label", "close menu") : this.setAttribute("aria-label", "open menu"); }); /*SHOW TOOLTIP ON MENU LINK HOVER*/ for (const link of menuLinks) { link.addEventListener("mouseenter", function () { if ( body.classList.contains(collapsedClass) && window.matchMedia("(min-width: 768px)").matches ) { const tooltip = this.querySelector("span").textContent; this.setAttribute("title", tooltip); } else { this.removeAttribute("title"); } }); } /*TOGGLE LIGHT/DARK MODE*/ if (localStorage.getItem("dark-mode") === "false") { html.classList.add(lightModeClass); switchInput.checked = false; switchLabelText.textContent = "Light"; } switchInput.addEventListener("input", function () { html.classList.toggle(lightModeClass); if (html.classList.contains(lightModeClass)) { switchLabelText.textContent = "Light"; localStorage.setItem("dark-mode", "false"); } else { switchLabelText.textContent = "Dark"; localStorage.setItem("dark-mode", "true"); } });