33 lines
779 B
TypeScript
33 lines
779 B
TypeScript
import { defineStore } from 'pinia';
|
|
|
|
import { useColorMode } from '@vueuse/core';
|
|
import { i18n } from '@/plugin';
|
|
import { LocalStorageApi } from '@/util/Cookies.ts';
|
|
|
|
export const UseSettingStore = defineStore('setting', {
|
|
state: () => {
|
|
const { store, state } = useColorMode();
|
|
return {
|
|
themeMode: store,
|
|
theme: state,
|
|
appName: '',
|
|
appVersion: '',
|
|
language: 'zh-cn',
|
|
};
|
|
},
|
|
persist: {
|
|
storage: LocalStorageApi.StorageApi,
|
|
pick: ['themeMode', 'appName', 'appVersion', 'language'],
|
|
},
|
|
actions: {
|
|
setLanguage(data: string | null) {
|
|
if (data == null) {
|
|
i18n.global.locale.value = this.language;
|
|
return;
|
|
}
|
|
this.language = data;
|
|
i18n.global.locale.value = data;
|
|
},
|
|
},
|
|
});
|