Files
haex-hub-mirror/src/stores/ui/index.ts
2025-05-22 23:00:25 +02:00

56 lines
1.2 KiB
TypeScript

import { breakpointsTailwind, useBreakpoints } from '@vueuse/core'
import de from './de.json'
import en from './en.json'
export interface ITheme {
value: string
name: string
icon: string
}
export const useUiStore = defineStore('uiStore', () => {
const breakpoints = useBreakpoints(breakpointsTailwind)
const currentScreenSize = computed(() =>
breakpoints.active().value.length > 0 ? breakpoints.active().value : 'xs'
)
const { t } = useI18n({
messages: {
de: { ui: de },
en: { ui: en },
},
})
const availableThemes = ref([
{
value: 'dark',
name: t('ui.dark'),
icon: 'line-md:moon-rising-alt-loop',
},
{
value: 'light',
name: t('ui.light'),
icon: 'line-md:moon-to-sunny-outline-loop-transition',
},
{ value: 'soft', name: t('ui.soft'), icon: 'line-md:paint-drop' },
{
value: 'corporate',
name: t('ui.corporate'),
icon: 'hugeicons:corporate',
},
])
const defaultTheme = ref(availableThemes.value[0])
const currentTheme = ref(defaultTheme)
return {
availableThemes,
breakpoints,
currentScreenSize,
currentTheme,
defaultTheme,
}
})