Patch 1.5.3, Fixes theme sync issue on first startup
Addresses a bug where the email viewer's dark mode setting was not correctly synchronized with the selected theme on the first application launch. This ensures a consistent user experience regarding light/dark mode across the application and email viewer.
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
try {
|
||||
const key = "emly_theme";
|
||||
const stored = localStorage.getItem(key);
|
||||
const theme = stored === "light" || stored === "dark" ? stored : "light";
|
||||
const theme = stored === "light" || stored === "dark" ? stored : "dark";
|
||||
document.documentElement.classList.toggle("dark", theme === "dark");
|
||||
} catch {
|
||||
// If storage is blocked, default to light.
|
||||
|
||||
@@ -57,6 +57,9 @@ class SettingsStore {
|
||||
this.settings.theme = storedTheme;
|
||||
}
|
||||
|
||||
// Sync useDarkEmailViewer with theme
|
||||
this.settings.useDarkEmailViewer = this.settings.theme === "dark";
|
||||
|
||||
// Apply the theme
|
||||
applyTheme(this.settings.theme);
|
||||
|
||||
|
||||
@@ -211,6 +211,16 @@
|
||||
})();
|
||||
});
|
||||
|
||||
// Sync theme with email viewer dark mode
|
||||
let previousTheme = $state<string | undefined>(undefined);
|
||||
$effect(() => {
|
||||
if (!browser) return;
|
||||
if (previousTheme !== undefined && form.theme !== previousTheme) {
|
||||
form.useDarkEmailViewer = form.theme === "dark";
|
||||
}
|
||||
previousTheme = form.theme;
|
||||
});
|
||||
|
||||
async function exportSettings() {
|
||||
try {
|
||||
const settingsJSON = JSON.stringify(form, null, 2);
|
||||
|
||||
Reference in New Issue
Block a user