You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.1 KiB

import {acceptHMRUpdate, createPinia, defineStore} from 'pinia';
type menu = 'light' | 'dark'
export interface AppState {
menuTheme: menu;
homeBanner: boolean;
bannerTitle: string;
searchVal: string;
otherConfig?: any
}
const useAppStore = defineStore('app', {
state: (): AppState => ({
menuTheme: 'light',
homeBanner: true,
bannerTitle: '',
searchVal: '',
otherConfig: {}
}),
getters:{
getMenuTheme: (state)=> state.menuTheme,
getHomeBanner: (state)=> state.homeBanner,
getBannerTitle: (state)=> state.bannerTitle,
getSearchVal: (state): string=> state.searchVal,
},
actions: {
setMenuTheme(type: menu = 'light'){
this.menuTheme = type;
},
setHomeBanner(type: boolean){
this.homeBanner = type;
},
setBannerTitle(title: string): void{
this.bannerTitle = title;
},
setSearchVal(val: string): void{
this.searchVal = val;
},
setConfig(data:any){
this.otherConfig = data;
}
}
})
export default useAppStore;
if (import.meta.hot) {
import.meta.hot.accept(acceptHMRUpdate(useAppStore, import.meta.hot))
}