From 8e59a634fd2a022dbf71ead460515097c5196d52 Mon Sep 17 00:00:00 2001 From: Jason Date: Sat, 2 May 2026 17:38:37 +0800 Subject: [PATCH] refactor(theme): drop unused MouseEvent param from setTheme Now that the view transition animation is gone, setTheme no longer needs click coordinates. Reduce the API surface to (theme: Theme) => void and simplify the call sites in mode-toggle and ThemeSettings. --- src/components/mode-toggle.tsx | 8 +++----- src/components/settings/ThemeSettings.tsx | 6 +++--- src/components/theme-provider.tsx | 2 +- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/components/mode-toggle.tsx b/src/components/mode-toggle.tsx index 6c1bef5c6..9f3d45965 100644 --- a/src/components/mode-toggle.tsx +++ b/src/components/mode-toggle.tsx @@ -7,13 +7,11 @@ export function ModeToggle() { const { theme, setTheme } = useTheme(); const { t } = useTranslation(); - const toggleTheme = (event: React.MouseEvent) => { - // 如果当前是 dark 或 system(且系统是暗色),切换到 light - // 否则切换到 dark + const toggleTheme = () => { if (theme === "dark") { - setTheme("light", event); + setTheme("light"); } else { - setTheme("dark", event); + setTheme("dark"); } }; diff --git a/src/components/settings/ThemeSettings.tsx b/src/components/settings/ThemeSettings.tsx index f22c51d69..107dbc865 100644 --- a/src/components/settings/ThemeSettings.tsx +++ b/src/components/settings/ThemeSettings.tsx @@ -19,21 +19,21 @@ export function ThemeSettings() {
setTheme("light", e)} + onClick={() => setTheme("light")} icon={Sun} > {t("settings.themeLight")} setTheme("dark", e)} + onClick={() => setTheme("dark")} icon={Moon} > {t("settings.themeDark")} setTheme("system", e)} + onClick={() => setTheme("system")} icon={Monitor} > {t("settings.themeSystem")} diff --git a/src/components/theme-provider.tsx b/src/components/theme-provider.tsx index d9da57261..6d8795716 100644 --- a/src/components/theme-provider.tsx +++ b/src/components/theme-provider.tsx @@ -17,7 +17,7 @@ interface ThemeProviderProps { interface ThemeContextValue { theme: Theme; - setTheme: (theme: Theme, event?: React.MouseEvent) => void; + setTheme: (theme: Theme) => void; } const ThemeProviderContext = createContext(