Add updateGroupRecursion function to flowStore.ts and reactflowUtils.ts

This commit is contained in:
anovazzi1 2024-03-20 20:33:09 -03:00
commit 483802f680
2 changed files with 22 additions and 7 deletions

View file

@ -38,6 +38,7 @@ import {
scapeJSONParse,
scapedJSONStringfy,
updateEdgesIds,
updateGroupRecursion,
updateIds,
updateProxyIdsOnTemplate,
validateNodes,
@ -225,6 +226,11 @@ const useFlowStore = create<FlowStoreType>((set, get) => ({
);
},
paste: (selection, position) => {
function updateGroup(){
}
if (
selection.nodes.some((node) => node.data.type === "ChatInput") &&
checkChatInput(get().nodes)
@ -261,13 +267,7 @@ const useFlowStore = create<FlowStoreType>((set, get) => ({
let newId = getNodeId(node.data.type);
idsMap[node.id] = newId;
if (node.data.node!.flow) {
let newFlow = node.data.node!.flow;
const idsMap = updateIds(newFlow.data!);
updateProxyIdsOnTemplate(node.data.node!.template, idsMap);
let flowEdges = selection.edges;
updateEdgesIds(flowEdges, idsMap);
}
updateGroupRecursion(node,selection.edges)
// Create a new node object
const newNode: NodeType = {

View file

@ -1273,3 +1273,18 @@ export function isInputType(type: string): boolean {
export function isOutputType(type: string): boolean {
return OUTPUT_TYPES.has(type);
}
export function updateGroupRecursion(groupNode:NodeType,edges:Edge[]){
if(groupNode.data.node?.flow){
groupNode.data.node.flow.data!.nodes.forEach((node)=>{
if(node.data.node?.flow){
updateGroupRecursion(node,node.data.node.flow.data!.edges);
}
})
let newFlow = groupNode.data.node!.flow;
const idsMap = updateIds(newFlow.data!);
updateProxyIdsOnTemplate(groupNode.data.node!.template, idsMap);
let flowEdges = edges;
updateEdgesIds(flowEdges, idsMap);
}
}