import { ASGroupDetail, AvatarDetail, BaseTypeData, DamageTypeData, EliteData, HardLevelData, LightConeDetail, MainAffixData, Metadata, MOCGroupDetail, MonsterDetail, PeakGroupDetail, PFGroupDetail, RelicSetDetail, SkillMaxLevelData, StageData, SubAffixData } from '@/types' import { create } from 'zustand' interface DetailDataState { mapMonster: Record mapRelicSet: Record mapAvatar: Record mapLightCone: Record mapAS: Record mapMoc: Record mapPF: Record mapPeak: Record baseType: Record; damageType: Record; mainAffix: Record>; subAffix: Record>; skillConfig: Record; stage: Record; hardLevelConfig: Record>; eliteConfig: Record; setMetaData: (newMetaData: Metadata) => void; setMapMonster: (newMonster: Record) => void setMapRelicSet: (newRelicSet: Record) => void setMapAvatar: (newAvatar: Record) => void setMapLightCone: (newLightCone: Record) => void setMapAS: (newAS: Record) => void setMapMoc: (newMoc: Record) => void setMapPF: (newPF: Record) => void setMapPeak: (newPeak: Record) => void } const useDetailDataStore = create((set) => ({ mapMonster: {}, mapRelicSet: {}, mapAvatar: {}, mapLightCone: {}, mapAS: {}, mapMoc: {}, mapPF: {}, mapPeak: {}, baseType: {}, damageType: {}, mainAffix: {}, subAffix: {}, skillConfig: {}, stage: {}, hardLevelConfig: {}, eliteConfig: {}, setMapMonster: (newMonster) => set({ mapMonster: newMonster }), setMapRelicSet: (newRelicSet) => set({ mapRelicSet: newRelicSet }), setMapAvatar: (newAvatar) => set({ mapAvatar: newAvatar }), setMapLightCone: (newLightCone) => set({ mapLightCone: newLightCone }), setMapAS: (newAS) => set({ mapAS: newAS }), setMapMoc: (newMoc) => set({ mapMoc: newMoc }), setMapPF: (newPF) => set({ mapPF: newPF }), setMapPeak: (newPeak) => set({ mapPeak: newPeak }), setMetaData: (newMetaData: Metadata) => set({ baseType: newMetaData.BaseType, damageType: newMetaData.DamageType, mainAffix: newMetaData.MainAffix, subAffix: newMetaData.SubAffix, skillConfig: newMetaData.SkillConfig, stage: newMetaData.Stage, hardLevelConfig: newMetaData.HardLevelConfig, eliteConfig: newMetaData.EliteConfig, }), })) export default useDetailDataStore