From 740a90536d1f24a955af114f977b651042f11874 Mon Sep 17 00:00:00 2001 From: coja Date: Sun, 9 Aug 2026 06:08:56 +0200 Subject: [PATCH] [Fix] hamburger undefined --- site/scripts/main.js | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/site/scripts/main.js b/site/scripts/main.js index 9b5fe30..ba686b1 100644 --- a/site/scripts/main.js +++ b/site/scripts/main.js @@ -5,11 +5,11 @@ window.addEventListener("DOMContentLoaded", () => { const themeBtn = getById("theme-switcher"); const hamburger = getByClass("hamburger"); - const hamburgerIcon = hamburger.children[0] + const hamburgerIcon = hamburger?.children[0]; const menu = document.getElementsByTagName("nav")[0]; const imgs = document.getElementsByTagName("img"); const main = document.getElementsByTagName("main")[0]; - const isMenuOpen = () => hamburger.classList.contains("open"); + const isMenuOpen = () => hamburger?.classList.contains("open"); const theme = window.localStorage.getItem("theme"); /* Functions */ @@ -47,7 +47,7 @@ window.addEventListener("DOMContentLoaded", () => { /* Listeners */ window.addEventListener("resize", () => isMenuOpen() && closeMenu()); - main.addEventListener("click", () => isMenuOpen() && closeMenu()); + if (main) main.addEventListener("click", () => isMenuOpen() && closeMenu()); /* Language persistence */ const currentLang = document.documentElement.lang || "sr"; @@ -71,15 +71,20 @@ window.addEventListener("DOMContentLoaded", () => { }); hamburger?.addEventListener("click", () => isMenuOpen() ? closeMenu() : openMenu()); - themeBtn.addEventListener("click", () => { - const title = themeBtn.getAttribute("title") ?? "off" - if (title.indexOf("off") !== -1) changeToDarkTheme(); - else changeToLightTheme(); - }); + if (themeBtn) { + themeBtn.addEventListener("click", () => { + const title = themeBtn.getAttribute("title") ?? "off" + if (title.indexOf("off") !== -1) changeToDarkTheme(); + else changeToLightTheme(); + }); + } /* Rest */ const userPerfersDark = window?.matchMedia?.("(prefers-color-scheme: dark)").matches - if (!theme && userPerfersDark) changeToDarkTheme(); - else theme === "light" ? changeToLightTheme() : changeToDarkTheme(); + if (themeBtn) { + if (!theme && userPerfersDark) changeToDarkTheme(); + else if (theme === "light") changeToLightTheme(); + else if (!theme && !userPerfersDark) changeToDarkTheme(); + } })