You've already forked AstralRinth
forked from didirus/AstralRinth
* refactor: migrate to common eslint+prettier configs * fix: prettier frontend * feat: config changes * fix: lint issues * fix: lint * fix: type imports * fix: cyclical import issue * fix: lockfile * fix: missing dep * fix: switch to tabs * fix: continue switch to tabs * fix: rustfmt parity * fix: moderation lint issue * fix: lint issues * fix: ui intl * fix: lint issues * Revert "fix: rustfmt parity" This reverts commit cb99d2376c321d813d4b7fc7e2a213bb30a54711. * feat: revert last rs
33 lines
720 B
TypeScript
33 lines
720 B
TypeScript
import { type DarkTheme, isDarkTheme } from './themes.ts'
|
|
|
|
export function usePreferredThemes() {
|
|
// TODO: migrate theme preferences out of cosmetics to theme settings
|
|
const cosmetics = useCosmetics()
|
|
|
|
const dark = computed({
|
|
get(): DarkTheme {
|
|
const theme = cosmetics.value?.preferredDarkTheme
|
|
|
|
if (theme == null) {
|
|
console.warn('[theme] cosmetics.preferredDarkTheme is not defined')
|
|
return 'dark'
|
|
}
|
|
|
|
if (!isDarkTheme(theme)) {
|
|
console.warn(`[theme] cosmetics.preferredDarkTheme contains invalid value: ${theme}`)
|
|
return 'dark'
|
|
}
|
|
|
|
return theme
|
|
},
|
|
set(value) {
|
|
cosmetics.value.preferredDarkTheme = value
|
|
},
|
|
})
|
|
|
|
return reactive({
|
|
dark,
|
|
light: 'light' as const,
|
|
})
|
|
}
|