| 12345678910111213141516171819202122232425262728293031323334353637 |
- import { merge } from 'lodash-es'
- import { darkTheme, lightTheme } from 'naive-ui'
- import { computed } from 'vue'
- import { toRefsPreferencesStore } from '@/stores/preferences'
- import { commonThemeOverrides } from '@/theme/common'
- import { baseDarkThemeOverrides } from '@/theme/dark'
- import { baseLightThemeOverrides } from '@/theme/light'
- export function useTheme() {
- const { themeColor, isDark } = toRefsPreferencesStore()
- const getLightThemeOverrides = (primaryColor = themeColor.value) => {
- return merge(commonThemeOverrides(primaryColor), baseLightThemeOverrides(primaryColor))
- }
- const getDarkThemeOverrides = (primaryColor = themeColor.value) => {
- return merge(commonThemeOverrides(primaryColor), baseDarkThemeOverrides(primaryColor))
- }
- const themeOverrides = computed(() => {
- return isDark.value
- ? getDarkThemeOverrides(themeColor.value)
- : getLightThemeOverrides(themeColor.value)
- })
- const theme = computed(() => {
- return isDark.value ? darkTheme : lightTheme
- })
- return {
- theme,
- themeOverrides,
- getLightThemeOverrides,
- getDarkThemeOverrides,
- }
- }
|