2023-07-20 11:19:42 -07:00
|
|
|
export default defineNuxtPlugin(async (nuxtApp) => {
|
|
|
|
|
await useAuth()
|
|
|
|
|
await useUser()
|
2023-03-12 13:00:09 -07:00
|
|
|
const themeStore = useTheme()
|
2024-04-10 18:30:46 -07:00
|
|
|
const cosmetics = useCosmetics()
|
2023-03-12 13:00:09 -07:00
|
|
|
|
2023-04-13 15:27:41 -07:00
|
|
|
nuxtApp.hook('app:mounted', () => {
|
|
|
|
|
if (process.client && themeStore.value.preference === 'system') {
|
|
|
|
|
const colorSchemeQueryList = window.matchMedia('(prefers-color-scheme: light)')
|
|
|
|
|
|
|
|
|
|
const setColorScheme = (e) => {
|
|
|
|
|
if (themeStore.value.preference === 'system') {
|
|
|
|
|
if (e.matches) {
|
|
|
|
|
updateTheme('light')
|
|
|
|
|
} else {
|
2024-04-10 18:30:46 -07:00
|
|
|
updateTheme(cosmetics.value.preferredDarkTheme ?? 'dark')
|
2023-04-13 15:27:41 -07:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setColorScheme(colorSchemeQueryList)
|
|
|
|
|
colorSchemeQueryList.addEventListener('change', setColorScheme)
|
|
|
|
|
}
|
|
|
|
|
})
|
2023-03-27 09:20:25 -07:00
|
|
|
|
2023-03-12 13:00:09 -07:00
|
|
|
nuxtApp.provide('colorMode', themeStore.value)
|
|
|
|
|
})
|