@@ -7,33 +7,50 @@ import useSettingsStore from '../../store/settingsStore';
7
7
8
8
export default function TableNode ( { data } ) {
9
9
const tableName = data . table [ 0 ] ;
10
+
10
11
// columnData is an array of objects with each column in the table as an element
11
12
const columnData = Object . values ( data . table [ 1 ] ) ;
12
13
const [ tableColumns , setTableColumns ] = useState ( columnData ) ;
13
14
const { setInputModalState } = useSettingsStore ( ( state ) => state ) ;
15
+
14
16
// function to generate handles on the table by iterating through all
15
17
// schema edges to match source and target handles of edges to handle id
16
18
const tableHandles = [ ] ;
17
19
for ( let i = 0 ; i < data . edges . length ; i ++ ) {
18
20
if ( data . edges [ i ] . source === tableName ) {
21
+ //make handle placement dynamic, we need to know the row of our source
22
+ let rowNumberSource = rowData . findIndex ( obj => obj . Name === data . edges [ i ] . sourceHandle ) + 1 ;
23
+ if ( rowNumberSource === 0 ) rowNumberSource = 1 ;
24
+ console . log ( 'rowNumberSource' , rowNumberSource )
25
+ console . log ( 'data.edges[i].sourceHandle' , data . edges [ i ] . sourceHandle ) ;
19
26
tableHandles . push (
20
27
< Handle
21
28
key = { `${ data . edges [ i ] } -source-${ [ i ] } ` }
22
29
type = "source"
23
30
position = { Position . Right }
24
31
id = { data . edges [ i ] . sourceHandle }
25
- style = { { bottom : 9 , top : 'auto' } }
32
+ style = { { background : 'transparent' ,
33
+ top : 96 + rowNumberSource * 21 ,
34
+ bottom : 'auto' } }
26
35
/>
27
36
) ;
28
37
}
29
38
if ( data . edges [ i ] . target === tableName ) {
39
+ //make handle placement dynamic, we need to know the row of our target
40
+ let rowNumberTarget = rowData . findIndex ( obj => obj . Name === data . edges [ i ] . targetHandle ) + 1 ;
41
+ if ( rowNumberTarget === 0 ) rowNumberTarget = 1 ;
42
+ console . log ( 'rowNumberTarget' , rowNumberTarget )
43
+ console . log ( 'data.edges[i].targetHandle' , data . edges [ i ] . targetHandle ) ;
30
44
tableHandles . push (
31
45
< Handle
32
46
key = { `${ data . edges [ i ] } -target-${ [ i ] } ` }
33
47
type = "target"
34
48
position = { Position . Left }
35
49
id = { data . edges [ i ] . targetHandle }
36
- style = { { bottom : 'auto' , top : 113 } }
50
+ style = { {
51
+ background : 'transparent' ,
52
+ top : 96 + rowNumberTarget * 21 ,
53
+ bottom : 'auto' } }
37
54
/>
38
55
) ;
39
56
}
0 commit comments