@@ -2,6 +2,7 @@ import { useState, FC, useEffect } from "react";
2
2
import { Handle , Position , NodeProps } from "reactflow" ;
3
3
import { KeyIcon } from "../components" ;
4
4
import { markdown } from "../helpers" ;
5
+ import { isTableHighlighted , isColumnHighlighted } from "../helpers/tableHighlights" ;
5
6
6
7
import "@reactflow/node-resizer/dist/style.css" ;
7
8
@@ -24,8 +25,23 @@ export const TableNode: FC<NodeProps> = ({ data }) => {
24
25
} , false ) ;
25
26
} , [ ] ) ;
26
27
28
+ const columnClass = ( { selectedColumn, columnName } : { selectedColumn : string , columnName : string } ) => {
29
+ const classes = [ "column-name" ]
30
+
31
+ if ( selectedColumn === columnName ) {
32
+ classes . push ( "column-name--selected" )
33
+ }
34
+
35
+ if ( isColumnHighlighted ( { schema : data . schema , tableName : data . name , columnName } ) ) {
36
+ classes . push ( "column-name--highlighted" )
37
+ }
38
+
39
+ return classes . join ( " " )
40
+ }
41
+
27
42
return (
28
- < div className = "table" >
43
+ < div
44
+ className = { `table ${ isTableHighlighted ( { schema : data . schema , tableName : data . name } ) ? 'table--highlighted' : '' } ` } >
29
45
< div
30
46
style = { { backgroundColor : data . schemaColor } }
31
47
className = "table__name"
@@ -46,7 +62,7 @@ export const TableNode: FC<NodeProps> = ({ data }) => {
46
62
{ data . columns . map ( ( column : any , index : any ) => (
47
63
< div
48
64
key = { index }
49
- className = { selectedColumn === column . name ? "column-name column-name--selected" : "column-name" }
65
+ className = { columnClass ( { selectedColumn, columnName : column . name } ) }
50
66
onMouseEnter = { ( ) => {
51
67
if ( descriptionOnHoverActive ) {
52
68
setSelectedColumn ( column . name )
0 commit comments