Move themeToggle script into layout

This commit is contained in:
thiloho
2025-05-09 12:30:49 +02:00
parent dad5a26942
commit b9e6bcd653
3 changed files with 17 additions and 18 deletions

View File

@@ -55,7 +55,6 @@ const { title, description } = Astro.props;
};
setTheme();
document.addEventListener("astro:after-swap", setTheme);
</script>
</head>

View File

@@ -34,20 +34,3 @@ const routes = ["blog", "tracks"];
</div>
</div>
</nav>
<script>
const setToggleListener = () => {
const toggleBtn = document.querySelector("#theme-toggle");
toggleBtn?.addEventListener("click", () => {
const element = document.documentElement;
element.classList.toggle("dark");
const isDark = element.classList.contains("dark");
localStorage.setItem("theme", isDark ? "dark" : "light");
});
};
setToggleListener();
document.addEventListener("astro:after-swap", setToggleListener);
</script>

View File

@@ -30,3 +30,20 @@ const { title, description, pubDate, modDate, slug } = Astro.props;
<Footer />
</body>
</html>
<script>
const setToggleListener = () => {
const toggleBtn = document.querySelector("#theme-toggle");
toggleBtn?.addEventListener("click", () => {
const element = document.documentElement;
element.classList.toggle("dark");
const isDark = element.classList.contains("dark");
localStorage.setItem("theme", isDark ? "dark" : "light");
});
};
setToggleListener();
document.addEventListener("astro:after-swap", setToggleListener);
</script>