fix(ui/lineage): Fix bug when hiding transformations: edges via queries would disappear (#13323)

This commit is contained in:
Andrew Sikowitz 2025-04-25 15:39:54 -07:00 committed by GitHub
parent 825ac9ae7d
commit 284f26ddd3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -129,7 +129,7 @@ function connectEdges(rootUrn: string, { nodes, edges, adjacencyList }: ContextS
addToAdjacencyList(newAdjacencyList, direction, id, neighbor);
const edgeId = getEdgeId(id, neighbor, direction);
const existingEdge = newEdges.get(edgeId);
newEdges.set(edgeId, mergeEdges(edges.get(edgeId), existingEdge));
newEdges.set(edgeId, mergeEdges(edges.get(edgeId), existingEdge, nodes));
buildNewAdjacencyList(neighbor, direction);
} else {
buildNewAdjacencyList(neighbor, direction)?.forEach((child) => {
@ -145,7 +145,7 @@ function connectEdges(rootUrn: string, { nodes, edges, adjacencyList }: ContextS
isDisplayed: (firstEdge?.isDisplayed && secondEdge?.isDisplayed) ?? false,
via: firstEdge?.via || secondEdge?.via,
};
newEdges.set(edgeId, mergeEdges(newEdge, existingEdge));
newEdges.set(edgeId, mergeEdges(newEdge, existingEdge, nodes));
});
}
});
@ -168,13 +168,19 @@ function connectEdges(rootUrn: string, { nodes, edges, adjacencyList }: ContextS
}
/** Merge two edges, each representing a different path between two nodes. */
function mergeEdges(edgeA?: LineageEdge, edgeB?: LineageEdge): LineageEdge {
function mergeEdges(
edgeA: LineageEdge | undefined,
edgeB: LineageEdge | undefined,
nodes: Map<string, any>,
): LineageEdge {
const viaA = edgeA?.via && nodes.has(edgeA.via) ? edgeA.via : undefined;
const viaB = edgeB?.via && nodes.has(edgeB.via) ? edgeB.via : undefined;
return {
isManual: edgeA?.isManual && edgeB?.isManual,
created: getLatestTimestamp(edgeA?.created, edgeB?.created),
updated: getLatestTimestamp(edgeA?.updated, edgeB?.updated),
isDisplayed: (edgeA?.isDisplayed || edgeB?.isDisplayed) ?? false,
via: edgeA?.via || edgeB?.via,
via: viaA || viaB,
};
}