Skip to content

Commit f4b2e4a

Browse files
committed
add logic for switching between edges styles when node is selected
1 parent 87374ea commit f4b2e4a

File tree

3 files changed

+86
-85
lines changed

3 files changed

+86
-85
lines changed

src/Types.ts

Lines changed: 79 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,37 @@
1-
21
export type DefaultErr = {
3-
log: string,
4-
status: number,
5-
message: string,
2+
log: string;
3+
status: number;
4+
message: string;
65
};
76

87
export type Props = {
98
isActive: boolean;
109
setIsActive: (active: boolean) => void;
1110
};
1211

13-
export interface dbCredentials{
14-
database_name: string|number|null;
15-
username: string|number|null;
16-
password: string|number|null;
17-
hostname: string|number|null;
18-
port: string|number|null;
19-
database_link: string|number|null;
12+
export interface dbCredentials {
13+
database_name: string | number | null;
14+
username: string | number | null;
15+
password: string | number | null;
16+
hostname: string | number | null;
17+
port: string | number | null;
18+
database_link: string | number | null;
2019
db_type: string;
2120
}
2221

23-
export interface Data{
22+
export interface Data {
2423
edges: RowsOfData[];
2524
table: [string, RowsOfData[]];
2625
}
2726

2827
export interface RefObj {
29-
IsDestination: boolean,
30-
PrimaryKeyName: string,
31-
PrimaryKeyTableName: string,
32-
ReferencesPropertyName: string,
33-
ReferencesTableName: string,
34-
constraintName: string,
35-
}
28+
IsDestination: boolean;
29+
PrimaryKeyName: string;
30+
PrimaryKeyTableName: string;
31+
ReferencesPropertyName: string;
32+
ReferencesTableName: string;
33+
constraintName: string;
34+
}
3635

3736
export interface TableColumn {
3837
Field?: string;
@@ -54,42 +53,42 @@ export interface TableColumn {
5453
update_rule?: string;
5554
delete_rule?: string;
5655
default_type?: string;
57-
};
56+
}
5857

5958
export interface OracleSchema {
60-
TABLE_NAME: string,
61-
COLUMN_NAME: string,
62-
DATA_TYPE: string,
63-
DATA_DEFAULT: string | null,
64-
CHARACTER_MAXIMUM_LENGTH: string | number | null,
65-
IS_NULLABLE: string,
66-
COLUMN_ID: number,
67-
CONSTRAINT_NAME: string,
68-
CONSTRAINT_TYPE: string,
69-
R_TABLE_OWNER: string | null,
70-
R_TABLE_NAME: string | null,
71-
R_COLUMN_NAME: string | null
59+
TABLE_NAME: string;
60+
COLUMN_NAME: string;
61+
DATA_TYPE: string;
62+
DATA_DEFAULT: string | null;
63+
CHARACTER_MAXIMUM_LENGTH: string | number | null;
64+
IS_NULLABLE: string;
65+
COLUMN_ID: number;
66+
CONSTRAINT_NAME: string;
67+
CONSTRAINT_TYPE: string;
68+
R_TABLE_OWNER: string | null;
69+
R_TABLE_NAME: string | null;
70+
R_COLUMN_NAME: string | null;
7271
}
7372

7473
export interface TableColumns {
7574
[columnName: string]: TableColumn;
76-
};
75+
}
7776

7877
export interface TableSchema {
7978
[tableName: string]: TableColumns;
80-
};
79+
}
8180

8281
export interface ReferenceType {
8382
[index: number]: {
84-
IsDestination: boolean,
85-
PrimaryKeyName: string,
86-
PrimaryKeyTableName: string,
87-
ReferencesPropertyName: string,
88-
ReferencesTableName: string,
89-
constraintName: string,
90-
},
91-
length: number,
92-
};
83+
IsDestination: boolean;
84+
PrimaryKeyName: string;
85+
PrimaryKeyTableName: string;
86+
ReferencesPropertyName: string;
87+
ReferencesTableName: string;
88+
constraintName: string;
89+
};
90+
length: number;
91+
}
9392

9493
export type Edge = {
9594
id: string;
@@ -99,6 +98,7 @@ export type Edge = {
9998
targetHandle: string;
10099
animated: boolean;
101100
label: string;
101+
type: string;
102102
style: { strokeWidth: number; stroke: string };
103103
markerEnd: {
104104
type: string;
@@ -121,20 +121,21 @@ export interface DataNodeData {
121121
edges: Edge[];
122122
}
123123

124-
export type TableTuple =
125-
[ TableKey: string,
126-
ColumnData: { [ColumnName: string]: ColumnSchema } | RowsOfData[] | RowsOfData];
127-
128-
export interface dataSourceConnection {
129-
type: string,
130-
host?: string,
131-
port?: string | number,
132-
username?:string,
133-
password?: string,
134-
database?: string,
135-
serviceName?: string,
136-
synchronize?: boolean,
137-
logging?: boolean,
124+
export type TableTuple = [
125+
TableKey: string,
126+
ColumnData: { [ColumnName: string]: ColumnSchema } | RowsOfData[] | RowsOfData
127+
];
128+
129+
export interface dataSourceConnection {
130+
type: string;
131+
host?: string;
132+
port?: string | number;
133+
username?: string;
134+
password?: string;
135+
database?: string;
136+
serviceName?: string;
137+
synchronize?: boolean;
138+
logging?: boolean;
138139
}
139140

140141
// ---------------------------------------------------------------------
@@ -160,20 +161,20 @@ export type Reference = {
160161
ReferencesTableName: string;
161162
IsDestination: boolean;
162163
constraintName: string;
163-
}
164+
};
164165
};
165166

166167
// export type PrimaryKeyReference = {
167168
// [tableName: string]: RowsOfData
168169
// }
169170

170171
export type ForeignKeyData = {
171-
PrimaryKeyTableName: string,
172-
PrimaryKeyColumnName: string,
173-
ForeignKeyTableName: string,
174-
ForeignKeyColumnName: string,
175-
constraintName: string
176-
}
172+
PrimaryKeyTableName: string;
173+
PrimaryKeyColumnName: string;
174+
ForeignKeyTableName: string;
175+
ForeignKeyColumnName: string;
176+
constraintName: string;
177+
};
177178

178179
export type InnerReference = {
179180
PrimaryKeyName: string;
@@ -182,9 +183,9 @@ export type InnerReference = {
182183
ReferencesTableName: string;
183184
IsDestination: boolean;
184185
constraintName: string;
185-
}
186+
};
186187

187-
export interface ColumnSchema{
188+
export interface ColumnSchema {
188189
Name: string;
189190
Value: string | null;
190191
TableName: string;
@@ -193,25 +194,25 @@ export interface ColumnSchema{
193194
IsForeignKey: boolean;
194195
field_name: string;
195196
data_type: SQLDataType;
196-
additional_constraints: 'NULL' | 'NOT NULL' | 'PRIMARY' | 'UNIQUE' | '' ;
197-
};
197+
additional_constraints: 'NULL' | 'NOT NULL' | 'PRIMARY' | 'UNIQUE' | '';
198+
}
198199

199200
// these are for data tables ######################
200201
export type RowsOfData = {
201-
[key: string | number]: string | number | boolean | null,
202+
[key: string | number]: string | number | boolean | null;
202203
};
203204

204205
export type DataStore = {
205206
[TableName: string]: RowsOfData[];
206-
}
207+
};
207208

208209
export type SchemaStore = {
209210
[TableName: string]: {
210211
[ColumnName: string]: ColumnSchema;
211212
};
212213
};
213214

214-
export type DataRowArray = Array<string | number | boolean>
215+
export type DataRowArray = Array<string | number | boolean>;
215216

216217
// export type DataState = {
217218
// // DATA
@@ -220,8 +221,6 @@ export type DataRowArray = Array<string | number | boolean>
220221
// history: DataStore[];
221222
// historyCounter: number;
222223

223-
224-
225224
// // DATA SETTERS
226225
// setDataStore: (dataInfo: DataStore) => void;
227226
// setSystem: (system: DataStore) => void;
@@ -238,8 +237,7 @@ export type FlowState = {
238237
};
239238

240239
export type ColumnDataForDataTable = {
241-
[key: string | number]: RowsOfData[],
242-
240+
[key: string | number]: RowsOfData[];
243241
};
244242
//######################
245243

@@ -251,8 +249,8 @@ export interface SchemaObject {
251249
[key: string]: Table;
252250
}
253251

254-
export type SQLDataType =
255-
'AUTO_INCREMENT'
252+
export type SQLDataType =
253+
| 'AUTO_INCREMENT'
256254
| 'SERIAL'
257255
| 'SMALLSERIAL'
258256
| 'BIGSERIAL'
@@ -322,15 +320,15 @@ export type SQLDataType =
322320
| 'CUBE'
323321
| 'LTREE';
324322

325-
export type PostgresDataTypes =
326-
'bigint'
323+
export type PostgresDataTypes =
324+
| 'bigint'
327325
| 'bigserial'
328326
| 'bit'
329327
| 'bit varying'
330328
| 'boolean'
331329
| 'bool'
332-
| 'box'
333-
| 'bytea'
330+
| 'box'
331+
| 'bytea'
334332
| 'char'
335333
| 'character'
336334
| 'character varying'

src/components/ReactFlow/Flow.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ export default function Flow(): JSX.Element {
4040
if (edge.source === node.id || edge.target === node.id) {
4141
return {
4242
...edge,
43+
type: 'soothstep',
4344
style: {
4445
//strokeWidth: 2,
4546
...edge.style,
@@ -53,6 +54,7 @@ export default function Flow(): JSX.Element {
5354
}
5455
return {
5556
...edge,
57+
type: 'bezier',
5658
style: {
5759
//strokeWidth: 2,
5860
...edge.style,

src/components/ReactFlow/createEdges.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export default function createEdges(schemaObject: SchemaStore) {
2020
targetHandle: row.References[0].PrimaryKeyName,
2121
animated: true,
2222
label: row.References[0].constraintName,
23+
type: '',
2324
style: {
2425
strokeWidth: 2,
2526
stroke: '#085c84',
@@ -32,8 +33,8 @@ export default function createEdges(schemaObject: SchemaStore) {
3233
color: '#085c84',
3334
},
3435
});
35-
};
36-
};
37-
};
36+
}
37+
}
38+
}
3839
return edges;
39-
};
40+
}

0 commit comments

Comments
 (0)