fix: store

This commit is contained in:
2026-04-03 11:32:04 +02:00
parent 68f31952da
commit b7c4b6e3fd
27 changed files with 22 additions and 22 deletions

View File

@@ -0,0 +1,47 @@
import { defineStore } from 'pinia'
import { computed, ref } from 'vue'
export const useThemeStore = defineStore('theme', () => {
const vueuseColorScheme = ref(localStorage.getItem('vueuse-color-scheme'))
const themeIcon = computed(() => {
switch (true) {
case vueuseColorScheme.value == 'light':
return 'i-heroicons-sun'
case vueuseColorScheme.value == 'dark':
return 'i-heroicons-moon'
case vueuseColorScheme.value == 'auto':
return 'i-heroicons-computer-desktop'
}
})
function setTheme() {
switch (true) {
case localStorage.getItem('vueuse-color-scheme') == 'dark':
vueuseColorScheme.value = 'light'
localStorage.setItem('vueuse-color-scheme', 'light')
document.documentElement.classList.toggle('dark', false)
break
case localStorage.getItem('vueuse-color-scheme') == 'light':
vueuseColorScheme.value = 'dark'
localStorage.setItem('vueuse-color-scheme', 'dark')
document.documentElement.classList.toggle('dark', true)
break
case localStorage.getItem('vueuse-color-scheme') == 'auto':
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
vueuseColorScheme.value = 'light'
localStorage.setItem('vueuse-color-scheme', 'light')
document.documentElement.classList.toggle('dark', false)
} else {
vueuseColorScheme.value = 'light'
localStorage.setItem('vueuse-color-scheme', 'light')
document.documentElement.classList.toggle('dark', false)
}
break
}
}
return {
vueuseColorScheme,
setTheme,
themeIcon,
}
})