From c01c90d4cefe66b88acbe4296704db355c1fe9f6 Mon Sep 17 00:00:00 2001 From: ehab Date: Mon, 11 Aug 2025 11:13:49 +0300 Subject: [PATCH] update toogle --- static/js/custom.js | 41 +++++++++++++++++++++------------- templates/partials/header.html | 26 ++++++++++++++++----- 2 files changed, 45 insertions(+), 22 deletions(-) diff --git a/static/js/custom.js b/static/js/custom.js index cc1edf8..991bb5b 100644 --- a/static/js/custom.js +++ b/static/js/custom.js @@ -109,18 +109,32 @@ window.onload = function () { ?.addEventListener("click", toggleMenu); // Theme toggle logic + function updateThemeIcons() { + const isDark = document.documentElement.classList.contains("dark"); + const toggles = document.querySelectorAll(".theme-toggle-btn"); + toggles.forEach((btn) => { + const lightIcon = btn.querySelector(".theme-toggle-light-icon"); + const darkIcon = btn.querySelector(".theme-toggle-dark-icon"); + if (!lightIcon || !darkIcon) return; + if (isDark) { + lightIcon.classList.add("hidden"); + darkIcon.classList.remove("hidden"); + } else { + lightIcon.classList.remove("hidden"); + darkIcon.classList.add("hidden"); + } + }); + } + function setTheme(theme) { if (theme === "dark") { document.documentElement.classList.add("dark"); localStorage.setItem("theme", "dark"); - if (document.getElementById("theme-toggle-icon")) document.getElementById("theme-toggle-icon").textContent = "🌙"; - if (document.getElementById("theme-toggle-icon-mobile")) document.getElementById("theme-toggle-icon-mobile").textContent = "🌙"; } else { document.documentElement.classList.remove("dark"); localStorage.setItem("theme", "light"); - if (document.getElementById("theme-toggle-icon")) document.getElementById("theme-toggle-icon").textContent = "☀️"; - if (document.getElementById("theme-toggle-icon-mobile")) document.getElementById("theme-toggle-icon-mobile").textContent = "☀️"; } + updateThemeIcons(); } // Initial theme @@ -133,17 +147,12 @@ window.onload = function () { setTheme("light"); } - // Toggle event listeners - const themeToggle = document.getElementById("theme-toggle"); - if (themeToggle) { - themeToggle.addEventListener("click", function () { - setTheme(document.documentElement.classList.contains("dark") ? "light" : "dark"); + // Toggle event listeners (support multiple buttons) + const themeToggleButtons = document.querySelectorAll(".theme-toggle-btn"); + themeToggleButtons.forEach((btn) => { + btn.addEventListener("click", function () { + const isDark = document.documentElement.classList.contains("dark"); + setTheme(isDark ? "light" : "dark"); }); - } - const themeToggleMobile = document.getElementById("theme-toggle-mobile"); - if (themeToggleMobile) { - themeToggleMobile.addEventListener("click", function () { - setTheme(document.documentElement.classList.contains("dark") ? "light" : "dark"); - }); - } + }); }; diff --git a/templates/partials/header.html b/templates/partials/header.html index a86cf05..e06ab81 100644 --- a/templates/partials/header.html +++ b/templates/partials/header.html @@ -18,9 +18,16 @@
- + +