@@ -2,6 +2,7 @@ import { useState, FC, useEffect } from "react";
22import { Handle , Position , NodeProps } from "reactflow" ;
33import { KeyIcon } from "../components" ;
44import { markdown } from "../helpers" ;
5+ import { isTableHighlighted , isColumnHighlighted } from "../helpers/tableHighlights" ;
56
67import "@reactflow/node-resizer/dist/style.css" ;
78
@@ -24,8 +25,23 @@ export const TableNode: FC<NodeProps> = ({ data }) => {
2425 } , false ) ;
2526 } , [ ] ) ;
2627
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+
2742 return (
28- < div className = "table" >
43+ < div
44+ className = { `table ${ isTableHighlighted ( { schema : data . schema , tableName : data . name } ) ? 'table--highlighted' : '' } ` } >
2945 < div
3046 style = { { backgroundColor : data . schemaColor } }
3147 className = "table__name"
@@ -46,7 +62,7 @@ export const TableNode: FC<NodeProps> = ({ data }) => {
4662 { data . columns . map ( ( column : any , index : any ) => (
4763 < div
4864 key = { index }
49- className = { selectedColumn === column . name ? "column-name column-name--selected" : "column-name" }
65+ className = { columnClass ( { selectedColumn, columnName : column . name } ) }
5066 onMouseEnter = { ( ) => {
5167 if ( descriptionOnHoverActive ) {
5268 setSelectedColumn ( column . name )
0 commit comments