1
0
mirror of https://github.com/1Panel-dev/1Panel.git synced 2025-03-15 10:14:44 +08:00

56 lines
1.6 KiB
Go

import { defineStore } from 'pinia';
import { GlobalState, ThemeConfigProp } from './interface';
import { createPinia } from 'pinia';
import piniaPersistConfig from '@/config/pinia-persist';
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate';
import i18n from '@/lang';
export const GlobalStore = defineStore({
id: 'GlobalState',
state: (): GlobalState => ({
isLoading: false,
loadingText: '',
isLogin: false,
csrfToken: '',
language: '',
themeConfig: {
panelName: '',
primary: '#005EEB',
theme: 'bright',
footer: true,
},
isFullScreen: false,
}),
getters: {},
actions: {
setScreenFull() {
this.isFullScreen = !this.isFullScreen;
},
setLogStatus(login: boolean) {
this.isLogin = login;
},
setGlobalLoading(loading: boolean) {
this.isLoading = loading;
},
setLoadingText(text: string) {
this.loadingText = i18n.global.t('commons.loadingText.' + text);
},
setCsrfToken(token: string) {
this.csrfToken = token;
},
updateLanguage(language: any) {
this.language = language;
localStorage.setItem('lang', language);
},
setThemeConfig(themeConfig: ThemeConfigProp) {
this.themeConfig = themeConfig;
},
},
persist: piniaPersistConfig('GlobalState'),
});
const pinia = createPinia();
pinia.use(piniaPluginPersistedstate);
export default pinia;