import type { GlobalThemeOverrides } from 'naive-ui' import { computed, watch } from 'vue' import { darkTheme, useOsTheme } from 'naive-ui' import { useAppStore } from '@/store' export function useTheme() { const appStore = useAppStore() const OsTheme = useOsTheme() const isDark = computed(() => { if (appStore.theme === 'auto') return OsTheme.value === 'dark' else return appStore.theme === 'dark' }) const theme = computed(() => { return isDark.value ? darkTheme : undefined }) const themeOverrides = computed(() => { if (isDark.value) { return { common: {}, } } return {} }) watch( () => isDark.value, (dark) => { if (dark) document.documentElement.classList.add('dark') else document.documentElement.classList.remove('dark') }, { immediate: true }, ) return { theme, themeOverrides } }