|
import { defineStore } from 'pinia' |
|
import type { AppState, Language, Theme } from './helper' |
|
import { getLocalSetting, setLocalSetting } from './helper' |
|
import { store } from '@/store' |
|
|
|
export const useAppStore = defineStore('app-store', { |
|
state: (): AppState => getLocalSetting(), |
|
actions: { |
|
setSiderCollapsed(collapsed: boolean) { |
|
this.siderCollapsed = collapsed |
|
this.recordState() |
|
}, |
|
|
|
setTheme(theme: Theme) { |
|
this.theme = theme |
|
this.recordState() |
|
}, |
|
|
|
setLanguage(language: Language) { |
|
if (this.language !== language) { |
|
this.language = language |
|
this.recordState() |
|
} |
|
}, |
|
|
|
recordState() { |
|
setLocalSetting(this.$state) |
|
}, |
|
}, |
|
}) |
|
|
|
export function useAppStoreWithOut() { |
|
return useAppStore(store) |
|
} |
|
|