projectInfo.ts
1.3 KB
import { useChartEditStore } from "@/store/modules/chartEditStore/chartEditStore";
import { ProjectInfoEnum, ProjectInfoStoreType } from './projectInfo.d'
import { defineStore } from "pinia";
import { SyncEnum } from "@/enums/external/editPageEnum";
export const useProjectInfoStore = defineStore({
id: 'useProjectInfoStore',
state: (): ProjectInfoStoreType => ({
info: {
} as ProjectInfoStoreType['info'],
saveStatus: SyncEnum.FAILURE,
accessCredentials: ''
}),
getters: {
getProjectInfo(): ProjectInfoStoreType[ProjectInfoEnum.INFO] {
return Reflect.get(this, ProjectInfoEnum.INFO)
},
getSaveStatus(): ProjectInfoStoreType[ProjectInfoEnum.SAVE_STATUS] {
return Reflect.get(this, ProjectInfoEnum.SAVE_STATUS)
}
},
actions: {
setProjectInfo<T extends ProjectInfoStoreType[ProjectInfoEnum.INFO]>(value: T) {
this[ProjectInfoEnum.INFO] = value
},
setProjectInfoByKey<T extends keyof ProjectInfoStoreType[ProjectInfoEnum.INFO], K extends ProjectInfoStoreType[ProjectInfoEnum.INFO][T]>(key: T, value: K) {
this[ProjectInfoEnum.INFO][key] = value
},
setSaveStatus(status: SyncEnum) {
this[ProjectInfoEnum.SAVE_STATUS] = status
},
setAccessCredentials(string: string) {
this[ProjectInfoEnum.ACCESS_CREDENTIALS] = string
}
}
})