22 lines
585 B
TypeScript
22 lines
585 B
TypeScript
|
|
import { create } from 'zustand';
|
||
|
|
|
||
|
|
interface NodesStore {
|
||
|
|
nodes: any[];
|
||
|
|
edges: any[];
|
||
|
|
setNodes: (nodes: any[]) => void;
|
||
|
|
setEdges: (edges: any[]) => void;
|
||
|
|
updateNode: (nodeId: string, newData: any) => void;
|
||
|
|
}
|
||
|
|
|
||
|
|
export const useNodesStore = create<NodesStore>((set) => ({
|
||
|
|
nodes: [],
|
||
|
|
edges: [],
|
||
|
|
setNodes: (nodes) => set({ nodes }),
|
||
|
|
setEdges: (edges) => set({ edges }),
|
||
|
|
updateNode: (nodeId, newData) =>
|
||
|
|
set((state) => ({
|
||
|
|
nodes: state.nodes.map((node) =>
|
||
|
|
node.id === nodeId ? { ...node, data: { ...node.data, ...newData } } : node
|
||
|
|
),
|
||
|
|
})),
|
||
|
|
}));
|