From 5e048ddab102d8058f47dc8232b151943a22a860 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Tue, 31 Mar 2026 23:06:08 +0800 Subject: [PATCH] fix(iOS): use correct system theme mode in auto mode on iOS, closes #3698 (#3704) --- apps/readest-app/src/store/themeStore.ts | 3 +++ apps/readest-app/src/utils/style.ts | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/readest-app/src/store/themeStore.ts b/apps/readest-app/src/store/themeStore.ts index 24bb591a..a61d67c5 100644 --- a/apps/readest-app/src/store/themeStore.ts +++ b/apps/readest-app/src/store/themeStore.ts @@ -169,6 +169,9 @@ export const initSystemThemeListener = (appService: AppService) => { } else { systemIsDarkMode = mediaQuery.matches; } + if (typeof window !== 'undefined' && localStorage) { + localStorage.setItem('systemIsDarkMode', systemIsDarkMode ? 'true' : 'false'); + } useThemeStore.getState().handleSystemThemeChange(systemIsDarkMode); }; diff --git a/apps/readest-app/src/utils/style.ts b/apps/readest-app/src/utils/style.ts index 42280ca0..33fbf732 100644 --- a/apps/readest-app/src/utils/style.ts +++ b/apps/readest-app/src/utils/style.ts @@ -553,8 +553,8 @@ export const getThemeCode = () => { if (typeof window !== 'undefined') { themeColor = localStorage.getItem('themeColor') || 'default'; themeMode = localStorage.getItem('themeMode') || 'auto'; + systemIsDarkMode = localStorage.getItem('systemIsDarkMode') === 'true'; customThemes = JSON.parse(localStorage.getItem('customThemes') || '[]'); - systemIsDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches; } const isDarkMode = themeMode === 'dark' || (themeMode === 'auto' && systemIsDarkMode); let currentTheme = themes.find((theme) => theme.name === themeColor);