fix paste function
This commit is contained in:
parent
c9d7e72a08
commit
b19565385b
4 changed files with 914 additions and 726 deletions
1620
src/frontend/package-lock.json
generated
1620
src/frontend/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -391,7 +391,6 @@ export function TabsProvider({ children }: { children: ReactNode }) {
|
||||||
* Add a new flow to the list of flows.
|
* Add a new flow to the list of flows.
|
||||||
* @param flow Optional flow to add.
|
* @param flow Optional flow to add.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function paste(
|
function paste(
|
||||||
selectionInstance: { nodes: Node[]; edges: Edge[] },
|
selectionInstance: { nodes: Node[]; edges: Edge[] },
|
||||||
position: { x: number; y: number; paneX?: number; paneY?: number }
|
position: { x: number; y: number; paneX?: number; paneY?: number }
|
||||||
|
|
@ -448,15 +447,19 @@ export function TabsProvider({ children }: { children: ReactNode }) {
|
||||||
);
|
);
|
||||||
let sourceHandle = scapedJSONStringfy({
|
let sourceHandle = scapedJSONStringfy({
|
||||||
...sourceHandleObject,
|
...sourceHandleObject,
|
||||||
id: edge.source,
|
id: source,
|
||||||
});
|
});
|
||||||
|
sourceHandleObject.id = source;
|
||||||
|
edge.data.sourceHandle = sourceHandleObject;
|
||||||
const targetHandleObject: targetHandleType = scapeJSONParse(
|
const targetHandleObject: targetHandleType = scapeJSONParse(
|
||||||
edge.targetHandle!
|
edge.targetHandle!
|
||||||
);
|
);
|
||||||
let targetHandle = scapedJSONStringfy({
|
let targetHandle = scapedJSONStringfy({
|
||||||
...targetHandleObject,
|
...targetHandleObject,
|
||||||
id: edge.target,
|
id: target,
|
||||||
});
|
});
|
||||||
|
targetHandleObject.id = target;
|
||||||
|
edge.data.targetHandle = targetHandleObject;
|
||||||
let id =
|
let id =
|
||||||
"reactflow__edge-" +
|
"reactflow__edge-" +
|
||||||
source +
|
source +
|
||||||
|
|
|
||||||
|
|
@ -456,7 +456,7 @@ export default function Page({
|
||||||
reactFlowInstance!,
|
reactFlowInstance!,
|
||||||
getRandomName()
|
getRandomName()
|
||||||
);
|
);
|
||||||
const newGroupNode = generateNodeFromFlow(newFlow);
|
const newGroupNode = generateNodeFromFlow(newFlow,getNodeId);
|
||||||
setNodes((oldNodes) => [
|
setNodes((oldNodes) => [
|
||||||
...oldNodes.filter(
|
...oldNodes.filter(
|
||||||
(oldNodes) =>
|
(oldNodes) =>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import _ from "lodash";
|
import _, { get } from "lodash";
|
||||||
import {
|
import {
|
||||||
Connection,
|
Connection,
|
||||||
Edge,
|
Edge,
|
||||||
|
|
@ -659,15 +659,16 @@ export function generateNodeTemplate(Flow: FlowType) {
|
||||||
return template;
|
return template;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function generateNodeFromFlow(flow: FlowType): NodeType {
|
export function generateNodeFromFlow(flow: FlowType,getNodeId:(type:string)=>string): NodeType {
|
||||||
const { nodes } = flow.data!;
|
const { nodes } = flow.data!;
|
||||||
const outputNode = _.cloneDeep(findLastNode(flow.data!));
|
const outputNode = _.cloneDeep(findLastNode(flow.data!));
|
||||||
// console.log(flow)
|
// console.log(flow)
|
||||||
const position = getMiddlePoint(nodes);
|
const position = getMiddlePoint(nodes);
|
||||||
let data = _.cloneDeep(flow);
|
let data = _.cloneDeep(flow);
|
||||||
|
const id = getNodeId(outputNode?.data.type!)
|
||||||
const newGroupNode: NodeType = {
|
const newGroupNode: NodeType = {
|
||||||
data: {
|
data: {
|
||||||
id: "GroupNode" + data.id,
|
id,
|
||||||
type: outputNode?.data.type!,
|
type: outputNode?.data.type!,
|
||||||
node: {
|
node: {
|
||||||
output_types: outputNode!.data.node!.output_types,
|
output_types: outputNode!.data.node!.output_types,
|
||||||
|
|
@ -679,7 +680,7 @@ export function generateNodeFromFlow(flow: FlowType): NodeType {
|
||||||
flow: data,
|
flow: data,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
id: "GroupNode" + data.id,
|
id,
|
||||||
position,
|
position,
|
||||||
type: "genericNode",
|
type: "genericNode",
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue