Skip to content

Commit 9bd1ecc

Browse files
committed
wip
1 parent 6e9094a commit 9bd1ecc

File tree

8 files changed

+945
-503
lines changed

8 files changed

+945
-503
lines changed

frontend/packages/common/SubOpPlanViewer.js

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ const Expression = ({data}) => {
5656
</div>
5757
}
5858
}
59-
const createNodesAndEdges = (ops) => {
59+
const createNodesAndEdges = (ops, innerEdges) => {
6060
let currNodes = [];
6161
let currEdges = [];
6262
let extraEdges = []
@@ -80,9 +80,15 @@ const createNodesAndEdges = (ops) => {
8080
return e
8181
}
8282
})
83+
if(innerEdges){
84+
innerEdges.forEach((e)=>{
85+
console.log(e)
86+
tmpEdges.push({type: e.type, input: e.input, output:e.output})
87+
})
88+
}
8389
tmpEdges.forEach((e) => {
8490

85-
if (e.input.type === "node" && e.input.type === "node") {
91+
if (e.input.type === "node" && e.output.type === "node") {
8692
currEdges.push([e.input.ref, e.output.ref, {type: e.type, meta: e}])
8793
} else {
8894
extraEdges.push(e)
@@ -132,7 +138,7 @@ const renderEdges = (edge, nodesPos) => {
132138
}
133139

134140
}
135-
const renderExtraEdge = (edge, nodePos) => {
141+
const renderExtraEdge = (edge, nodePos, requiredHeight) => {
136142
if (nodePos) {
137143
let inputX = 0;
138144
let inputY = 0;
@@ -146,6 +152,14 @@ const renderExtraEdge = (edge, nodePos) => {
146152
outputX = nodePos[edge.output.ref].renderX + 40 + 40 * edge.output.argnr
147153
outputY = nodePos[edge.output.ref].renderY
148154
}
155+
if(edge.input.type ==="node"){
156+
inputX = nodePos[edge.input.ref].renderX + nodePos[edge.input.ref].width/2
157+
inputY = nodePos[edge.input.ref].renderY+nodePos[edge.input.ref].height
158+
}
159+
if (edge.output.type==="parentResult"){
160+
outputX = edge.input.resnr * 40 + 20
161+
outputY = requiredHeight
162+
}
149163
if (edge.type === "requiredInput") {
150164
return <line x1={inputX} y1={inputY} x2={outputX} y2={outputY}
151165
fill={"none"}
@@ -159,6 +173,12 @@ const renderExtraEdge = (edge, nodePos) => {
159173
stroke={"darkgreen"} strokeWidth={2} strokeLinecap={"square"}
160174
strokeOpacity={0.7}></line>
161175

176+
}else if(edge.type === "resultEdge"){
177+
console.log(edge.input)
178+
return <line x1={inputX} y1={inputY} x2={outputX} y2={outputY}
179+
fill={"none"}
180+
stroke={"brown"} strokeWidth={2} strokeLinecap={"square"}
181+
strokeOpacity={0.7}></line>
162182
}
163183
}
164184
}
@@ -216,7 +236,7 @@ const Operator = ({data, onOperatorSelect, selectedOps}) => {
216236
}
217237
let results = []
218238
for (let i = 0; i < numResults; i++) {
219-
results.push(<div style={{
239+
results.push(<div title={data.results[i].type} style={{
220240
width: 40,
221241
fontWeight: 800,
222242
fontSize: "medium",
@@ -227,7 +247,7 @@ const Operator = ({data, onOperatorSelect, selectedOps}) => {
227247
}}>{"\u22b8"}
228248
</div>)
229249
}
230-
let [nodes, edges, extraEdges] = createNodesAndEdges(data.subops)
250+
let [nodes, edges, extraEdges] = createNodesAndEdges(data.subops, data.innerEdges)
231251

232252

233253

@@ -260,7 +280,7 @@ const Operator = ({data, onOperatorSelect, selectedOps}) => {
260280
selectedOps={selectedOps}/>)}
261281
renderEdge={renderEdges}
262282
drawExtra={(nodesPos, requiredHeight) => {
263-
return extraEdges.map(e => renderExtraEdge(e, nodesPos))
283+
return extraEdges.map(e => renderExtraEdge(e, nodesPos, requiredHeight))
264284
}}
265285
/>
266286
<div>
@@ -321,7 +341,7 @@ const Operator = ({data, onOperatorSelect, selectedOps}) => {
321341
</div>)
322342
}
323343

324-
let [nodes, edges, extraEdges] = createNodesAndEdges(data.subops)
344+
let [nodes, edges, extraEdges] = createNodesAndEdges(data.subops,data.innerEdges)
325345

326346

327347
return <div style={{display: "flex"}}>
@@ -353,7 +373,7 @@ const Operator = ({data, onOperatorSelect, selectedOps}) => {
353373
selectedOps={selectedOps}/>)}
354374
renderEdge={renderEdges}
355375
drawExtra={(nodesPos, requiredHeight) => {
356-
return extraEdges.map(e => renderExtraEdge(e, nodesPos))
376+
return extraEdges.map(e => renderExtraEdge(e, nodesPos, requiredHeight))
357377
}}/>
358378
</div>
359379
</div>

frontend/packages/insights/package.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,23 @@
44
"private": true,
55
"dependencies": {
66
"@dagrejs/dagre": "^1.1.4",
7-
"@fortawesome/free-solid-svg-icons": "^6.7.1",
87
"@fortawesome/fontawesome-svg-core": "^6.7.1",
8+
"@fortawesome/free-solid-svg-icons": "^6.7.1",
99
"@fortawesome/react-fontawesome": "^0.2.2",
1010
"@lingodb/common": "*",
1111
"@monaco-editor/react": "^4.6.0",
1212
"@testing-library/jest-dom": "^5.17.0",
1313
"@testing-library/react": "^13.4.0",
1414
"@testing-library/user-event": "^13.5.0",
1515
"bootstrap": "^5.2.3",
16+
"konva": "^9.3.16",
1617
"react": "^18.3.1",
1718
"react-bootstrap": "^2.10.6",
1819
"react-dom": "^18.3.1",
19-
"react-scripts": "5.0.1",
20-
"web-vitals": "^2.1.4",
2120
"react-konva": "^18.2.10",
22-
"konva": "^9.3.16"
21+
"react-scripts": "5.0.1",
22+
"react-syntax-highlighter": "^15.6.1",
23+
"web-vitals": "^2.1.4"
2324
},
2425
"scripts": {
2526
"start": "react-app-rewired start",

frontend/packages/insights/public/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
work correctly both with client-side routing and a non-root public URL.
2525
Learn how to configure a non-root public URL by running `npm run build`.
2626
-->
27-
<title>React App</title>
27+
<title>LingoDB-CT</title>
2828
</head>
2929
<body>
3030
<noscript>You need to enable JavaScript to run this app.</noscript>

0 commit comments

Comments
 (0)