Skip to content

Commit f0ee1c5

Browse files
committed
Fix dark mode toggle: handle async navbar loading
1 parent 897e030 commit f0ee1c5

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

js/main.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,17 @@ $(document).ready(function() {
8989
var isDark = document.documentElement.getAttribute('data-theme') === 'dark';
9090
$("#theme-toggle i").attr("class", isDark ? "fas fa-sun" : "fas fa-moon");
9191
}
92-
updateThemeIcon();
9392

94-
$("#theme-toggle").on("click", function(e) {
93+
// Periodic check to update icon because navbar is loaded asynchronously
94+
var checkNavbar = setInterval(function() {
95+
if ($("#theme-toggle i").length) {
96+
updateThemeIcon();
97+
clearInterval(checkNavbar);
98+
}
99+
}, 50);
100+
101+
// Event delegation to handle dynamically loaded navbar
102+
$(document).on("click", "#theme-toggle", function(e) {
95103
e.preventDefault();
96104
var isDark = document.documentElement.getAttribute('data-theme') !== 'dark';
97105
document.documentElement.setAttribute('data-theme', isDark ? 'dark' : 'light');

0 commit comments

Comments
 (0)