import {create} from 'zustand/react' export const useDataStore = create<{ data: Record, getData: () => Record, setData: (data: Record) => void, getDataById: (id: string) => any, setDataById: (id: string, data: any) => void, mergeDataById: (id: string, data: any) => void, removeDataById: (id: string) => void, }>((set, get) => ({ data: {}, getData: () => get().data, setData: (data) => set({ data: data, }), getDataById: id => get().data[id], setDataById: (id, data) => { let updateData = get().data updateData[id] = data set({ data: updateData, }) }, mergeDataById: (id, data) => { let updateData = get().data updateData[id] = { ...(updateData[id] ?? {}), ...data, } set({ data: updateData, }) }, removeDataById: (id) => { let data = get().data delete data[id] set({ data, }) }, }))