File size: 1,252 Bytes
755dd12 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
<script lang="ts" setup>
import { onMounted, ref } from 'vue';
import { useAppStore } from './store';
import { useI18n } from 'vue-i18n';
import { AppSettings, ToolBar } from './components';
const { t, locale } = useI18n();
const appStore = useAppStore();
const showSettings = ref(false);
function followSystemLanguage() {
const lan = window.navigator.language;
if (!appStore.language) {
if (lan.includes('zh')) appStore.updateLanguage('zh');
else if (lan.includes('ptBR')) appStore.updateLanguage('ptBR');
else appStore.updateLanguage('en');
}
locale.value = appStore.language ?? 'en';
}
onMounted(() => {
followSystemLanguage();
document.title = t('title');
if (appStore.theme) appStore.updateTheme(appStore.theme);
else {
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.documentElement.setAttribute('theme-mode', 'dark');
appStore.updateTheme('dark');
} else {
document.documentElement.removeAttribute('theme-mode');
appStore.updateTheme('light');
}
}
});
</script>
<template>
<div class="size-full w-full dark:bg-black">
<ToolBar @show="showSettings = true" />
<AppSettings v-model="showSettings" />
<router-view />
</div>
</template>
|