mirror of
https://github.com/tabler/tabler.git
synced 2025-12-22 01:44:25 +04:00
28 lines
877 B
JavaScript
28 lines
877 B
JavaScript
/**
|
|
* demo-theme is specifically loaded right after the body and not deferred
|
|
* to ensure we switch to the chosen dark/light theme as fast as possible.
|
|
* This will prevent any flashes of the light theme (default) before switching.
|
|
*/
|
|
|
|
const themeStorageKey = "tablerTheme"
|
|
const defaultTheme = "light"
|
|
let selectedTheme
|
|
|
|
// https://stackoverflow.com/a/901144
|
|
const params = new Proxy(new URLSearchParams(window.location.search), {
|
|
get: (searchParams, prop) => searchParams.get(prop),
|
|
})
|
|
|
|
if (!!params.theme) {
|
|
localStorage.setItem(themeStorageKey, params.theme)
|
|
selectedTheme = params.theme
|
|
} else {
|
|
const storedTheme = localStorage.getItem(themeStorageKey)
|
|
selectedTheme = storedTheme ? storedTheme : defaultTheme
|
|
}
|
|
|
|
if (selectedTheme === 'dark') {
|
|
document.body.setAttribute("data-bs-theme", selectedTheme)
|
|
} else {
|
|
document.body.removeAttribute("data-bs-theme")
|
|
} |