diff --git a/packages/web/src/designer/DesignerReference.js b/packages/web/src/designer/DesignerReference.js
index 0f39c7df2..449d9b335 100644
--- a/packages/web/src/designer/DesignerReference.js
+++ b/packages/web/src/designer/DesignerReference.js
@@ -14,6 +14,27 @@ const StyledSvg = styled.svg`
height: 100%;
`;
+const ReferenceWrapper = styled.div`
+ position: absolute;
+ border: 1px solid ${(props) => props.theme.designer_line};
+ background-color: ${(props) => props.theme.designer_background};
+ z-index: 900;
+ border-radius: 10px;
+ width: 32px;
+ height: 32px;
+`;
+
+const ReferenceText = styled.span`
+ position: relative;
+ float: left;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ z-index: 900;
+ white-space: nowrap;
+ background-color: ${(props) => props.theme.designer_background};
+`;
+
export default function DesignerReference({ domTablesRef, designerId, sourceId, targetId, columns, changeToken }) {
const theme = useTheme();
const domTables = domTablesRef.current;
@@ -25,9 +46,8 @@ export default function DesignerReference({ domTablesRef, designerId, sourceId,
const sourceRect = sourceTable.getRect();
const targetRect = targetTable.getRect();
if (!sourceRect || !targetRect) return null;
- const sourceY = sourceTable.getColumnY(columns[0].source);
- const targetY = targetTable.getColumnY(columns[0].target);
- if (sourceY == null || targetY == null) return null;
+
+
const buswi = 10;
const extwi = 25;
@@ -43,9 +63,6 @@ export default function DesignerReference({ domTablesRef, designerId, sourceId,
let srcY = _.mean(columns.map((x) => sourceTable.getColumnY(x.source)));
let dstY = _.mean(columns.map((x) => targetTable.getColumnY(x.target)));
- // let srcY = _.mean(sourceTable.table.columns.map((x) => sourceTable.getColumnY(source.columnName)));
- // let dstY = _.mean(ref.columns.map((x) => table2.getColumnY(x.column2.name)));
-
if (columns.length == 0) {
srcY = sourceTable.getColumnY('');
dstY = targetTable.getColumnY('');
@@ -54,76 +71,54 @@ export default function DesignerReference({ domTablesRef, designerId, sourceId,
const src = { x: minpos.xsrc, y: srcY };
const dst = { x: minpos.xdst, y: dstY };
- // ctx.moveTo(src.x, src.y);
- // ctx.lineTo(src.x + extwi * minpos.dirsrc, src.y);
- // ctx.lineTo(dst.x + extwi * minpos.dirdst, dst.y);
- // ctx.lineTo(dst.x, dst.y);
- // ctx.stroke();
-
- // for (let col of ref.columns) {
- // let y1 = table1.getColumnY(col.column1.name);
- // let y2 = table2.getColumnY(col.column2.name);
-
- // ctx.moveTo(src.x, src.y);
- // ctx.lineTo(src.x, y1 - canvasOffset.top);
- // ctx.lineTo(src.x - buswi * minpos.dirsrc, y1 - canvasOffset.top);
- // ctx.stroke();
-
- // ctx.moveTo(dst.x, dst.y);
- // ctx.lineTo(dst.x, y2 - canvasOffset.top);
- // ctx.lineTo(dst.x - buswi * minpos.dirdst, y2 - canvasOffset.top);
- // ctx.stroke();
- // }
-
- // this.referencePositions[ref.uniqueName] = {
- // x: (src.x + extwi * minpos.dirsrc + dst.x + extwi * minpos.dirdst) / 2,
- // y: (src.y + dst.y) / 2,
- // };
const lineStyle = { fill: 'none', stroke: theme.designer_line, strokeWidth: 2 };
return (
-