33 lines
921 B
TypeScript
33 lines
921 B
TypeScript
import { defineStore } from 'pinia'
|
|
import { store } from '../index'
|
|
import { useCache } from '@/hooks/web/useCache'
|
|
import { localeModules, elLocaleMap } from '@/config/locale'
|
|
import type { LocaleState } from '@/config/locale'
|
|
|
|
const { wsCache } = useCache()
|
|
|
|
export const useLocaleStore = defineStore({
|
|
id: 'locales',
|
|
state: (): LocaleState => localeModules,
|
|
getters: {
|
|
getCurrentLocale(): LocaleDropdownType {
|
|
return this.currentLocale
|
|
},
|
|
getLocaleMap(): LocaleDropdownType[] {
|
|
return this.localeMap
|
|
}
|
|
},
|
|
actions: {
|
|
setCurrentLocale(localeMap: LocaleDropdownType) {
|
|
// this.locale = Object.assign(this.locale, localeMap)
|
|
this.currentLocale.lang = localeMap?.lang
|
|
this.currentLocale.elLocale = elLocaleMap[localeMap?.lang]
|
|
wsCache.set('lang', localeMap?.lang)
|
|
}
|
|
}
|
|
})
|
|
|
|
export const useLocaleStoreWithOut = () => {
|
|
return useLocaleStore(store)
|
|
}
|