From c4c50f2c306d86ba65d32b60b910d2a2e506262e Mon Sep 17 00:00:00 2001 From: SethBurkart123 Date: Fri, 28 Mar 2025 11:50:52 +1100 Subject: [PATCH] fix: themes somtimes override default custom accent colour --- .../components/themes/ThemeSelector.svelte | 5 -- src/plugins/built-in/themes/ThemeCreator.ts | 6 +- src/plugins/built-in/themes/theme-manager.ts | 59 +++++++++++-------- 3 files changed, 38 insertions(+), 32 deletions(-) diff --git a/src/interface/components/themes/ThemeSelector.svelte b/src/interface/components/themes/ThemeSelector.svelte index d6b6ce56..dd1254ad 100644 --- a/src/interface/components/themes/ThemeSelector.svelte +++ b/src/interface/components/themes/ThemeSelector.svelte @@ -96,11 +96,6 @@ onDestroy(() => { themeUpdates.removeListener(fetchThemes); }) - - $effect(() => { - if (!themes) return; - console.log(themes.selectedTheme); - })
): Promise { console.debug('[ThemeManager] Updating theme preview'); try { - // Store original settings if not already stored - if (this.originalPreviewColor === null) { - this.originalPreviewColor = settingsState.selectedColor; - } - if (this.originalPreviewTheme === null) { - this.originalPreviewTheme = settingsState.DarkMode; + // Only store original settings if this is a new theme (not editing) + // We can tell it's a new theme if it has no webURL (which is set when a theme is saved/loaded) + if (!theme.webURL) { + if (this.originalPreviewColor === null) { + this.originalPreviewColor = settingsState.selectedColor; + } + if (this.originalPreviewTheme === null) { + this.originalPreviewTheme = settingsState.DarkMode; + } } // Apply CSS if changed @@ -548,12 +555,14 @@ export class ThemeManager { this.previousImageVariableNames = newImageVariableNames; } - // Update theme settings - if (theme.forceDark !== undefined) { - settingsState.DarkMode = theme.forceDark; - } - if (theme.defaultColour) { - settingsState.selectedColor = theme.defaultColour; + // Update theme settings only if this is a new theme + if (!theme.webURL) { + if (theme.forceDark !== undefined) { + settingsState.DarkMode = theme.forceDark; + } + if (theme.defaultColour) { + settingsState.selectedColor = theme.defaultColour; + } } } catch (error) { console.error('[ThemeManager] Error updating theme preview:', error);