Persist themes with user default

This commit is contained in:
Lucas Schumacher 2023-10-30 23:45:37 -04:00
parent 753863585d
commit 62621e7fe6

View File

@ -9,25 +9,28 @@ const theme_icons = {
'dark': IconMoonStars, 'dark': IconMoonStars,
} }
const currentTheme = ref('light') let storedTheme = localStorage.getItem('theme')
if (!storedTheme) {
storedTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'
}
const currentTheme = ref(storedTheme)
document.documentElement.setAttribute('data-bs-theme', storedTheme)
async function click(ev) { async function click(ev) {
ev.preventDefault() ev.preventDefault()
let newTheme = 'light'
if (currentTheme.value == 'light') { if (currentTheme.value == 'light') {
currentTheme.value = 'dark' newTheme = 'dark'
} else {
currentTheme.value = 'light'
}
document.documentElement.setAttribute('data-bs-theme', currentTheme.value)
} }
const currentIcon = computed(() => { currentTheme.value = newTheme
let icon = theme_icons[currentTheme.value] document.documentElement.setAttribute('data-bs-theme', newTheme)
//console.log(currentTheme.value) localStorage.setItem('theme', newTheme)
//console.log(icon) }
return icon
}) const currentIcon = computed(() => theme_icons[currentTheme.value])
</script> </script>