Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/g6/src/transforms/process-parallel-edges.ts
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ export class ProcessParallelEdges extends BaseTransform<ProcessParallelEdgesOpti
style.loopPlacement = CUBIC_LOOP_PLACEMENTS[i % len];
style.loopDist = Math.floor(i / len) * distance + 50;
} else if (length === 1) {
style.curveOffset = 0;
return;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

这个改动可以很好地处理那些一直都是单独存在的边,避免了不必要的样式修改。但它也引入了一个行为变化:如果一条边之前是平行边(因此是弯曲的),后来因其他平行边被删除而变成了单独的边,这个改动会导致它保持弯曲。之前的代码会通过设置 style.curveOffset = 0 将其拉直。

这种行为上的变化可能不是我们所期望的。如果希望恢复之前的拉直行为,同时又不影响那些“原生”的单边,我们可能需要在这里增加更复杂的逻辑来重置样式。例如,可以检查 style.curveOffset 是否有非零值,如果有,则将其设置为 0 并触发一次更新,然后才返回。

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个行为变化是符合预期的吧,不管怎么样,当只有一条边的时候始终使用配置的样式,不进入平行边处理

} else {
const sign = (i % 2 === 0 ? 1 : -1) * (reverses[`${edge.source}|${edge.target}|${i}`] ? -1 : 1);
style.curveOffset =
Expand Down
Loading