diff --git a/docs/assets/js/color-modes.js b/docs/assets/js/color-modes.js index 49c5ad9825..f5af3e2bf9 100644 --- a/docs/assets/js/color-modes.js +++ b/docs/assets/js/color-modes.js @@ -5,9 +5,11 @@ */ (() => { - const storedTheme = localStorage.getItem('theme') + const getStoredTheme = () => localStorage.getItem('theme') + const setStoredTheme = theme => localStorage.setItem('theme', theme) const getPreferredTheme = () => { + const storedTheme = getStoredTheme() if (storedTheme) { return storedTheme } @@ -15,7 +17,7 @@ return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' } - const setTheme = function (theme) { + const setTheme = theme => { if (theme === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches) { document.documentElement.setAttribute('data-bs-theme', 'dark') } else { @@ -54,7 +56,8 @@ } window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => { - if (storedTheme !== 'light' || storedTheme !== 'dark') { + const storedTheme = getStoredTheme() + if (storedTheme !== 'light' && storedTheme !== 'dark') { setTheme(getPreferredTheme()) } }) @@ -67,6 +70,7 @@ toggle.addEventListener('click', () => { const theme = toggle.getAttribute('data-bs-theme-value') localStorage.setItem('theme', theme) + setStoredTheme(theme) setTheme(theme) showActiveTheme(theme, true) })