Skip to content

Commit fc3a55a

Browse files
committed
(fix) Fix multiple edges with the same source and target node being hidden. Fix attribute warnings.
1 parent 04f0a93 commit fc3a55a

3 files changed

Lines changed: 11 additions & 4 deletions

File tree

src/Graph.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ function isOutputPort ({ id }) {
55
return /.+_out$/.test(id)
66
}
77

8-
function Port ({ port }) {
8+
function Port ({ graph, port }) {
99
return (
1010
<rect
1111
x={port.x}
@@ -18,7 +18,7 @@ function Port ({ port }) {
1818
)
1919
}
2020

21-
function getPath (e, padding, startsAtParent = null) {
21+
function getPath (e, padding, startsAtParent = false) {
2222
let path
2323
if (startsAtParent) {
2424
path = 'M ' + e.sourcePoint.x + ' ' + e.sourcePoint.y + ' '
@@ -33,7 +33,7 @@ function getPath (e, padding, startsAtParent = null) {
3333
return path
3434
}
3535

36-
function Edge ({ parentNode, edge, padding = { top: 0, left: 0 }, ...other }) {
36+
function Edge ({ graph, parentNode, edge, padding = { top: 0, left: 0 }, ...other }) {
3737
let endPoint = edge.targetPoint
3838
let previousPoint = edge.bendPoints != null && edge.bendPoints.length > 0 ? edge.bendPoints[edge.bendPoints.length - 1] : edge.sourcePoint
3939
const angle = Math.atan2(endPoint.y - previousPoint.y, endPoint.x - previousPoint.x) * 180 / Math.PI
@@ -92,7 +92,7 @@ function Node ({ graph, node, ...other }) {
9292
</text>
9393
{Array.isArray(node.edges) && node.edges.map((edge) => (
9494
<Edge
95-
key={`e-${edge.source}-${edge.target}`}
95+
key={`e-${edge.source}@${edge.sourcePort}-${edge.target}@${edge.targetPort}`}
9696
graph={graph}
9797
parentNode={node}
9898
edge={edge}

stories/fixture-001.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"id":"root","children":[{"id":"#cj64v13mt0002baluv27c5a65","labels":[{"text":"#cj64v13mt0002baluv27c5a65"}],"children":[{"id":"#cj64v13n20004baludxnz4a34","labels":[{"text":"cc"}],"children":[{"id":"#cj64v13n00003baluprcvy7ut","labels":[{"text":"a"}],"children":[],"ports":[{"id":"#cj64v13n00003baluprcvy7ut_in_in","meta":{"type":"number","name":{"port":"in","kind":"input","type":"number","node":"#cj64v13n00003baluprcvy7ut"}}},{"id":"#cj64v13n00003baluprcvy7ut_out_out","meta":{"type":"number","name":{"port":"out","kind":"output","type":"number","node":"#cj64v13n00003baluprcvy7ut"}}}],"edges":[],"meta":{}}],"ports":[{"id":"#cj64v13n20004baludxnz4a34_in_in","meta":{"type":"string","name":{"port":"in","kind":"input","type":"string","node":"#cj64v13n20004baludxnz4a34"}}},{"id":"#cj64v13n20004baludxnz4a34_outA_out","meta":{"type":"string","name":{"port":"outA","kind":"output","type":"string","node":"#cj64v13n20004baludxnz4a34"}}},{"id":"#cj64v13n20004baludxnz4a34_outB_out","meta":{"type":"string","name":{"port":"outB","kind":"output","type":"string","node":"#cj64v13n20004baludxnz4a34"}}},{"id":"#cj64v13n20004baludxnz4a34_outC_out","meta":{"type":"string","name":{"port":"outC","kind":"output","type":"string","node":"#cj64v13n20004baludxnz4a34"}}}],"edges":[{"id":"#cj64v13n20004baludxnz4a34#cj64v13n00003baluprcvy7ut","source":"#cj64v13n20004baludxnz4a34","sourcePort":"#cj64v13n20004baludxnz4a34_in_in","target":"#cj64v13n00003baluprcvy7ut","targetPort":"#cj64v13n00003baluprcvy7ut_in_in","meta":{"sourceType":"string","targetType":"number","sourcePort":{"type":"generic","node":"#cj64v13n20004baludxnz4a34","port":"in"},"targetPort":{"type":"generic","node":"#cj64v13n00003baluprcvy7ut","port":"in"},"layer":"dataflow"}},{"id":"#cj64v13n00003baluprcvy7ut#cj64v13n20004baludxnz4a34","source":"#cj64v13n00003baluprcvy7ut","sourcePort":"#cj64v13n00003baluprcvy7ut_out_out","target":"#cj64v13n20004baludxnz4a34","targetPort":"#cj64v13n20004baludxnz4a34_outC_out","meta":{"sourceType":"number","targetType":"string","sourcePort":{"type":"generic","node":"#cj64v13n00003baluprcvy7ut","port":"out"},"targetPort":{"type":"generic","node":"#cj64v13n20004baludxnz4a34","port":"outC"},"layer":"dataflow"}}],"meta":{}}],"ports":[],"edges":[{"id":"#cj64v13n20004baludxnz4a34#cj64v13n20004baludxnz4a34","source":"#cj64v13n20004baludxnz4a34","sourcePort":"#cj64v13n20004baludxnz4a34_in_in","target":"#cj64v13n20004baludxnz4a34","targetPort":"#cj64v13n20004baludxnz4a34_outA_out","meta":{"sourceType":"string","targetType":"string","sourcePort":{"type":"generic","node":"#cj64v13n20004baludxnz4a34","port":"in"},"targetPort":{"type":"generic","node":"#cj64v13n20004baludxnz4a34","port":"outA"},"layer":"dataflow"}},{"id":"#cj64v13n20004baludxnz4a34#cj64v13n20004baludxnz4a34","source":"#cj64v13n20004baludxnz4a34","sourcePort":"#cj64v13n20004baludxnz4a34_in_in","target":"#cj64v13n20004baludxnz4a34","targetPort":"#cj64v13n20004baludxnz4a34_outB_out","meta":{"sourceType":"string","targetType":"string","sourcePort":{"type":"generic","node":"#cj64v13n20004baludxnz4a34","port":"in"},"targetPort":{"type":"generic","node":"#cj64v13n20004baludxnz4a34","port":"outB"},"layer":"dataflow"}}],"meta":{"version":"0.4.0-pre.41"}}],"edges":[]}

stories/index.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { storiesOf } from '@kadira/storybook'
33
import { GraphLayouter } from '../src'
44
import fac from './fac.json'
55
import facHighlighted from './facHighlighted.json'
6+
import fixture001 from './fixture-001.json'
67

78
storiesOf('kgraph', module)
89
.add('factorial', () => (
@@ -15,3 +16,8 @@ storiesOf('kgraph', module)
1516
kgraph={facHighlighted}
1617
/>
1718
))
19+
.add('fixture 001', () => (
20+
<GraphLayouter
21+
kgraph={fixture001}
22+
/>
23+
))

0 commit comments

Comments
 (0)