Files
hudi-service/service-web/client/src/components/flow/store/DataStore.ts
2025-07-11 11:12:06 +08:00

42 lines
945 B
TypeScript

import {create} from 'zustand/react'
export const useDataStore = create<{
data: Record<string, any>,
getData: () => Record<string, any>,
setData: (data: Record<string, any>) => 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,
})
},
}))