init project

This commit is contained in:
Timi
2026-08-01 18:01:23 +08:00
parent 286fa1ba56
commit 11c48bf00c
107 changed files with 19350 additions and 1 deletions
+51
View File
@@ -0,0 +1,51 @@
<template>
<router-view />
</template>
<script setup lang="ts">
import { useGlobalUIStore } from "@/store/globalUI";
import { useSettingStore } from "@/store/settingStore";
const globalUIStore = useGlobalUIStore();
const settingStore = useSettingStore();
const resolvedThemeMode = computed(() => {
if (globalUIStore.themeMode === "system") {
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
return mediaQuery.matches ? "dark" : "light";
}
return globalUIStore.themeMode;
});
async function unlockSoundOnUserGesture(): Promise<void> {
await settingStore.unlockSoundPlayers();
}
watch(
() => resolvedThemeMode.value,
(themeMode) => {
const rootElement = document.documentElement;
rootElement.classList.toggle("theme-dark", themeMode === "dark");
rootElement.dataset.theme = themeMode;
},
{ immediate: true }
);
watch(
() => globalUIStore.bodyBackground,
(bodyBackground) => {
document.body.style.background = bodyBackground;
},
{ immediate: true }
);
onMounted(() => {
settingStore.loadSoundPlayers();
window.addEventListener("pointerdown", unlockSoundOnUserGesture, { once: true });
});
onUnmounted(() => {
window.removeEventListener("pointerdown", unlockSoundOnUserGesture);
});
</script>