Skip to content

Commit a0d1539

Browse files
committed
Fixed Dark mode bug
1 parent 44c697e commit a0d1539

3 files changed

Lines changed: 38 additions & 27 deletions

File tree

js/header-footer.js

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,17 @@
1+
function loadHeaderFooter() {
2+
return Promise.all([
3+
fetch("/components/header.html")
4+
.then(response => response.text())
5+
.then(data => document.getElementById("header-placeholder").innerHTML = data),
6+
fetch("/components/footer.html")
7+
.then(response => response.text())
8+
.then(data => document.getElementById("footer-placeholder").innerHTML = data)
9+
]);
10+
}
11+
12+
// After header and footer are loaded, then init dark mode
113
document.addEventListener("DOMContentLoaded", () => {
2-
fetch("/components/header.html")
3-
.then(response => response.text())
4-
.then(data => document.getElementById("header-placeholder").innerHTML = data);
5-
fetch("/components/footer.html")
6-
.then(response => response.text())
7-
.then(data => document.getElementById("footer-placeholder").innerHTML = data);
14+
loadHeaderFooter().then(() => {
15+
initializeThemeToggle(); // <-- call dark mode setup AFTER loading header/footer
16+
});
817
});

js/theme.js

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,35 @@
1-
document.addEventListener("DOMContentLoaded", () => {
2-
const toggleBtn = document.getElementById("theme-toggle");
3-
const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
4-
const storedTheme = localStorage.getItem("theme");
5-
6-
const enableDark = () => {
1+
function initializeThemeToggle() {
2+
const toggleBtn = document.getElementById("theme-toggle");
3+
if (!toggleBtn) {
4+
console.warn("Theme toggle button not found.");
5+
return;
6+
}
7+
const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
8+
const storedTheme = localStorage.getItem("theme");
9+
10+
const enableDark = () => {
711
document.documentElement.classList.add("dark-mode");
812
localStorage.setItem("theme", "dark");
913
toggleBtn.textContent = "Light Mode";
10-
};
11-
12-
const disableDark = () => {
14+
};
15+
16+
const disableDark = () => {
1317
document.documentElement.classList.remove("dark-mode");
1418
localStorage.setItem("theme", "light");
1519
toggleBtn.textContent = "Dark Mode";
16-
};
17-
18-
if (storedTheme === "dark" || (!storedTheme && prefersDark)) {
20+
};
21+
22+
if (storedTheme === "dark" || (!storedTheme && prefersDark)) {
1923
enableDark();
20-
} else {
24+
} else {
2125
disableDark();
22-
}
23-
24-
toggleBtn.addEventListener("click", () => {
26+
}
27+
28+
toggleBtn.addEventListener("click", () => {
2529
if (document.documentElement.classList.contains("dark-mode")) {
26-
disableDark();
30+
disableDark();
2731
} else {
28-
enableDark();
32+
enableDark();
2933
}
30-
});
3134
});
32-
35+
}

post.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ <h1>Blog</h1>
2828
<p>Collection of posts I've written about various topics.</p>
2929
<!-- Blog posts dynamically loaded here -->
3030
</section>
31-
3231
<a href="index.html" class="back-link">Back to Home</a>
3332
</main>
3433

0 commit comments

Comments
 (0)