refactor: ♻️ 项目重构(临时提交)

Former-commit-id: 14e64324f7556c095c38ad289690367cdac0ec56
This commit is contained in:
郝先瑞
2023-11-16 22:46:28 +08:00
parent c1725e0b09
commit 12c78f96d7
34 changed files with 2129 additions and 399 deletions

View File

@@ -2,59 +2,53 @@ import { defineStore } from "pinia";
import defaultSettings from "@/settings";
export const useSettingsStore = defineStore("setting", () => {
// state
const title = defaultSettings.title;
const version = defaultSettings.version;
const tagsView = useStorage<boolean>("tagsView", defaultSettings.tagsView);
const showSettings = ref<boolean>(defaultSettings.showSettings);
const sidebarLogo = ref<boolean>(defaultSettings.sidebarLogo);
const fixedHeader = useStorage<boolean>(
"fixedHeader",
defaultSettings.fixedHeader
);
const layout = useStorage<string>("layout", defaultSettings.layout);
const themeColor = useStorage<string>(
"themeColor",
defaultSettings.themeColor
);
const theme = useStorage<string>("theme", defaultSettings.theme);
// actions
function changeSetting(param: { key: string; value: any }) {
const { key, value } = param;
switch (key) {
case "showSettings":
showSettings.value = value;
break;
case "fixedHeader":
fixedHeader.value = value;
break;
case "tagsView":
tagsView.value = value;
break;
case "sidevarLogo":
sidebarLogo.value = value;
break;
case "layout":
layout.value = value;
break;
case "themeColor":
themeColor.value = value;
break;
case "theme":
theme.value = value;
if (theme.value === "dark") {
document.documentElement.classList.add("dark");
} else {
document.documentElement.classList.remove("dark");
}
break;
// Whether to enable watermark
const watermark = useStorage<any>("watermark", defaultSettings.watermark);
const settingsMap: Record<string, Ref<any>> = {
showSettings,
fixedHeader,
tagsView,
sidebarLogo,
layout,
themeColor,
theme,
watermark: watermark.value,
};
function changeSetting({ key, value }: { key: string; value: any }) {
const setting = settingsMap[key];
if (setting !== undefined) {
setting.value = value;
if (key === "theme" && value === "dark") {
document.documentElement.classList.add("dark");
} else {
document.documentElement.classList.remove("dark");
}
}
}
return {
title,
version,
showSettings,
tagsView,
fixedHeader,
@@ -63,5 +57,6 @@ export const useSettingsStore = defineStore("setting", () => {
themeColor,
changeSetting,
theme,
watermark,
};
});