Add updateGroupRecursion function to flowStore.ts and reactflowUtils.ts
This commit is contained in:
parent
a6625bbad5
commit
483802f680
2 changed files with 22 additions and 7 deletions
|
|
@ -38,6 +38,7 @@ import {
|
||||||
scapeJSONParse,
|
scapeJSONParse,
|
||||||
scapedJSONStringfy,
|
scapedJSONStringfy,
|
||||||
updateEdgesIds,
|
updateEdgesIds,
|
||||||
|
updateGroupRecursion,
|
||||||
updateIds,
|
updateIds,
|
||||||
updateProxyIdsOnTemplate,
|
updateProxyIdsOnTemplate,
|
||||||
validateNodes,
|
validateNodes,
|
||||||
|
|
@ -225,6 +226,11 @@ const useFlowStore = create<FlowStoreType>((set, get) => ({
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
paste: (selection, position) => {
|
paste: (selection, position) => {
|
||||||
|
|
||||||
|
function updateGroup(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
selection.nodes.some((node) => node.data.type === "ChatInput") &&
|
selection.nodes.some((node) => node.data.type === "ChatInput") &&
|
||||||
checkChatInput(get().nodes)
|
checkChatInput(get().nodes)
|
||||||
|
|
@ -261,13 +267,7 @@ const useFlowStore = create<FlowStoreType>((set, get) => ({
|
||||||
let newId = getNodeId(node.data.type);
|
let newId = getNodeId(node.data.type);
|
||||||
idsMap[node.id] = newId;
|
idsMap[node.id] = newId;
|
||||||
|
|
||||||
if (node.data.node!.flow) {
|
updateGroupRecursion(node,selection.edges)
|
||||||
let newFlow = node.data.node!.flow;
|
|
||||||
const idsMap = updateIds(newFlow.data!);
|
|
||||||
updateProxyIdsOnTemplate(node.data.node!.template, idsMap);
|
|
||||||
let flowEdges = selection.edges;
|
|
||||||
updateEdgesIds(flowEdges, idsMap);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create a new node object
|
// Create a new node object
|
||||||
const newNode: NodeType = {
|
const newNode: NodeType = {
|
||||||
|
|
|
||||||
|
|
@ -1273,3 +1273,18 @@ export function isInputType(type: string): boolean {
|
||||||
export function isOutputType(type: string): boolean {
|
export function isOutputType(type: string): boolean {
|
||||||
return OUTPUT_TYPES.has(type);
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue