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;
},
},
});