From 5d641ace1fefeba551ee2c88304f811467bae210 Mon Sep 17 00:00:00 2001 From: pany <939630029@qq.com> Date: Tue, 28 Feb 2023 14:12:38 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=20useTheme=20?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/useTheme.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/hooks/useTheme.ts b/src/hooks/useTheme.ts index 3c2e64f..b870783 100644 --- a/src/hooks/useTheme.ts +++ b/src/hooks/useTheme.ts @@ -1,19 +1,22 @@ import { ref } from "vue" import { getActiveThemeName, setActiveThemeName } from "@/utils/cache/localStorage" +const DEFAULT_THEME_NAME = "normal" +type DefaultThemeNameType = typeof DEFAULT_THEME_NAME + +/** 注册的主题名称, 其中 DefaultThemeNameType 是必填的 */ +export type ThemeName = DefaultThemeNameType | "dark" | "dark-blue" + interface IThemeList { title: string name: ThemeName } -/** 注册的主题名称, 其中 normal 是必填的 */ -export type ThemeName = "normal" | "dark" | "dark-blue" - /** 主题列表 */ const themeList: IThemeList[] = [ { title: "默认", - name: "normal" + name: DEFAULT_THEME_NAME }, { title: "黑暗", @@ -26,7 +29,7 @@ const themeList: IThemeList[] = [ ] /** 正在应用的主题名称 */ -const activeThemeName = ref(getActiveThemeName() || "normal") +const activeThemeName = ref(getActiveThemeName() || DEFAULT_THEME_NAME) const initTheme = () => { setHtmlClassName(activeThemeName.value) @@ -34,8 +37,8 @@ const initTheme = () => { const setTheme = (value: ThemeName) => { activeThemeName.value = value - setHtmlClassName(activeThemeName.value) - setActiveThemeName(activeThemeName.value) + setHtmlClassName(value) + setActiveThemeName(value) } /** 在 html 根元素上挂载 class */