1234567891011121314151617181920212223242526272829303132333435 |
- /**
- * 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 themeConfig = {
- "theme": "light",
- "theme-base": "gray",
- "theme-font": "sans-serif",
- "theme-primary": "blue",
- "theme-radius": "1",
- }
- const params = new Proxy(new URLSearchParams(window.location.search), {
- get: (searchParams, prop) => searchParams.get(prop),
- })
- for (const key in themeConfig) {
- const param = params[key]
- let selectedValue
- if (!!param) {
- localStorage.setItem('tabler-' + key, param)
- selectedValue = param
- } else {
- const storedTheme = localStorage.getItem('tabler-' + key)
- selectedValue = storedTheme ? storedTheme : themeConfig[key]
- }
- if (selectedValue !== themeConfig[key]) {
- document.documentElement.setAttribute('data-bs-' + key, selectedValue)
- } else {
- document.documentElement.removeAttribute('data-bs-' + key)
- }
- }
|