feat(autogpt_builder) Add logic for node disconnection (#7386)

add logic for node disconnection
pull/7383/head^2
Aarushi 2024-07-11 23:33:21 +01:00 committed by GitHub
parent dcfc3a4dad
commit b89609fd16
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 25 additions and 0 deletions

View File

@ -137,6 +137,30 @@ const FlowEditor: React.FC<{ flowID?: string; className?: string }> = ({
[setEdges, setNodes]
);
const onEdgesDelete = useCallback(
(edgesToDelete: Edge[]) => {
setNodes((nds) =>
nds.map((node) => ({
...node,
data: {
...node.data,
connections: node.data.connections.filter(
(conn: any) =>
!edgesToDelete.some(
(edge) =>
edge.source === conn.source &&
edge.target === conn.target &&
edge.sourceHandle === conn.sourceHandle &&
edge.targetHandle === conn.targetHandle
)
),
},
}))
);
},
[setNodes]
);
const addNode = (blockId: string, nodeType: string) => {
const nodeSchema = availableNodes.find(node => node.id === blockId);
if (!nodeSchema) {
@ -433,6 +457,7 @@ const FlowEditor: React.FC<{ flowID?: string; className?: string }> = ({
onEdgesChange={onEdgesChange}
onConnect={onConnect}
nodeTypes={nodeTypes}
onEdgesDelete={onEdgesDelete}
>
<div style={{ position: 'absolute', right: 10, zIndex: 4 }}>
<Input