fix: clean edges of same type but different name when switching outputs, update color when deleting edges (#8959)

* fix edges not being cleared if same type but different name

* removed console log

* removed console log

* made edges change trigger re-render of handle color

* Updated position of edges
This commit is contained in:
Lucas Oliveira 2025-07-09 18:32:57 -03:00 • committed by GitHub
commit f6a9e8fad4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 7 additions and 6 deletions

View file

@ -184,6 +184,8 @@ const HandleRenderComponent = memo(function HandleRenderComponent({
useShallow((state) => state.currentFlow?.locked),
);
const edges = useFlowStore((state) => state.edges);
const {
setHandleDragging,
setFilterType,
@ -266,11 +268,9 @@ const HandleRenderComponent = memo(function HandleRenderComponent({
const openHandle = filterOpenHandle || draggingOpenHandle;
const filterPresent = handleDragging || filterType;
const connectedEdge = useFlowStore
.getState()
.edges.find(
(edge) => edge.target === nodeId && edge.targetHandle === myId,
);
const connectedEdge = edges.find(
(edge) => edge.target === nodeId && edge.targetHandle === myId,
);
const outputType = connectedEdge?.data?.sourceHandle?.output_types?.[0];
const connectedColor = outputType ? nodeColorsName[outputType] : "gray";
@ -344,6 +344,7 @@ const HandleRenderComponent = memo(function HandleRenderComponent({
colors,
colorName,
tooltipTitle,
edges,
]);
const handleMouseDown = useCallback(

View file

@ -157,7 +157,7 @@ export function cleanEdges(nodes: AllNodeType[], edges: EdgeType[]) {
const id: sourceHandleType = {
id: sourceNode.data.id,
name: name,
name: output?.name ?? name,
output_types: outputTypes,
dataType: sourceNode.data.type,
};