This commit is contained in:
Samidy 2025-12-20 14:45:26 +03:00
parent e173b8a89e
commit b41e6b3c9b
2 changed files with 3 additions and 25 deletions

View file

@ -205,16 +205,6 @@ watch(selectedColor, async (color) => {
if (!color) return; if (!color) return;
const theme = generateThemeFromColor(color) const theme = generateThemeFromColor(color)
themeRegistry[`color-${color}`] = theme themeRegistry[`color-${color}`] = theme
// Hopeful Fix For Preset Themes
try {
const key = 'vitepress-theme-data'
const raw = localStorage.getItem(key)
const parsed = raw ? JSON.parse(raw) as Record<string, any> : {}
parsed[`color-${color}`] = theme
localStorage.setItem(key, JSON.stringify(parsed))
} catch (e) {
// ignore storage errors
}
// Explicitly set the theme to override any previous selection // Explicitly set the theme to override any previous selection
await nextTick() await nextTick()
console.log('Setting theme to:', `color-${color}`) console.log('Setting theme to:', `color-${color}`)

View file

@ -21,7 +21,6 @@ import { themeRegistry } from './configs'
const STORAGE_KEY_THEME = 'vitepress-theme-name' const STORAGE_KEY_THEME = 'vitepress-theme-name'
const STORAGE_KEY_MODE = 'vitepress-display-mode' const STORAGE_KEY_MODE = 'vitepress-display-mode'
const STORAGE_KEY_AMOLED = 'vitepress-amoled-enabled' const STORAGE_KEY_AMOLED = 'vitepress-amoled-enabled'
const STORAGE_KEY_THEME_DATA = 'vitepress-theme-data'
export class ThemeHandler { export class ThemeHandler {
private state = ref<ThemeState>({ private state = ref<ThemeState>({
@ -43,24 +42,13 @@ export class ThemeHandler {
const savedMode = localStorage.getItem(STORAGE_KEY_MODE) as DisplayMode | null const savedMode = localStorage.getItem(STORAGE_KEY_MODE) as DisplayMode | null
const savedAmoled = localStorage.getItem(STORAGE_KEY_AMOLED) === 'true' const savedAmoled = localStorage.getItem(STORAGE_KEY_AMOLED) === 'true'
// Set theme
if (themeRegistry[savedTheme]) { if (themeRegistry[savedTheme]) {
this.state.value.currentTheme = savedTheme this.state.value.currentTheme = savedTheme
this.state.value.theme = themeRegistry[savedTheme] this.state.value.theme = themeRegistry[savedTheme]
} else { } else {
try { localStorage.removeItem(STORAGE_KEY_THEME)
const raw = localStorage.getItem(STORAGE_KEY_THEME_DATA) this.state.value.currentTheme = 'christmas'
if (raw) { this.state.value.theme = themeRegistry.christmas
const parsed = JSON.parse(raw) as Record<string, any>
if (parsed && parsed[savedTheme]) {
themeRegistry[savedTheme] = parsed[savedTheme]
this.state.value.currentTheme = savedTheme
this.state.value.theme = parsed[savedTheme]
}
}
} catch (e) {
// ignore parse errors
}
} }
// Set amoled preference // Set amoled preference