12345678910111213141516171819202122232425262728 |
- /**
- * 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")
- }
|