diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html
index 750db18..e4e7d8e 100644
--- a/layouts/partials/footer.html
+++ b/layouts/partials/footer.html
@@ -34,10 +34,11 @@
return;
}
+ let button = document.getElementById("theme-toggle")
+ // remove the listeners first to prevent adding duplicated listener when history goes back and forth
+ button.removeEventListener('click', toggleThemeListener)
// listen to toggle button
- document.getElementById("theme-toggle").addEventListener("click", () => {
- window.dispatchEvent(new CustomEvent('toggle-theme'));
- });
+ button.addEventListener('click', toggleThemeListener)
})();
diff --git a/layouts/partials/header.html b/layouts/partials/header.html
index 2e7512d..1061d5b 100644
--- a/layouts/partials/header.html
+++ b/layouts/partials/header.html
@@ -48,6 +48,13 @@ window.addEventListener('toggle-theme', function() {
toggleThemeCallbacks[key](isDark)
}
});
+
+// this function is used as the event listener for toggle-theme button click
+function toggleThemeListener() {
+ // console.log('click theme-toggle')
+ window.dispatchEvent(new CustomEvent('toggle-theme'));
+}
+