Skip to content

Commit 1013cda

Browse files
committed
fix(UI): Dark mode toggle doesn't persist when switching pages
fix #1167
1 parent db47436 commit 1013cda

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/resources/js/menu.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,7 @@ document.addEventListener('DOMContentLoaded', function () {
265265
var darkModeState = useDark.matches;
266266
var $darkModeToggleSwitchers = document.querySelectorAll('.dark-mode-switch input');
267267
var $darkModeToggles = document.querySelectorAll('.dark-mode-switch');
268+
var darkModeStateLocal = localStorage.getItem('compodoc_darkmode-state');
268269

269270
function checkToggle(check) {
270271
for (var i = 0; i < $darkModeToggleSwitchers.length; i++) {
@@ -273,6 +274,10 @@ document.addEventListener('DOMContentLoaded', function () {
273274
}
274275

275276
function toggleDarkMode(state) {
277+
if (window.localStorage) {
278+
localStorage.setItem('compodoc_darkmode-state', state);
279+
}
280+
276281
checkToggle(state);
277282

278283
const hasClass = document.body.classList.contains('dark');
@@ -297,6 +302,9 @@ document.addEventListener('DOMContentLoaded', function () {
297302
useDark.addEventListener('change', function (evt) {
298303
toggleDarkMode(evt.matches);
299304
});
305+
if (darkModeStateLocal) {
306+
darkModeState = darkModeStateLocal === 'true';
307+
}
300308
toggleDarkMode(darkModeState);
301309

302310
if ($darkModeToggles.length > 0) {

0 commit comments

Comments
 (0)