diff --git a/superset-frontend/src/SqlLab/components/TableElement/index.tsx b/superset-frontend/src/SqlLab/components/TableElement/index.tsx index 4be3935d7a1c..0d1624d96211 100644 --- a/superset-frontend/src/SqlLab/components/TableElement/index.tsx +++ b/superset-frontend/src/SqlLab/components/TableElement/index.tsx @@ -77,6 +77,7 @@ const Fade = styled.div` const TableElement = ({ table, actions, ...props }: TableElementProps) => { const [sortColumns, setSortColumns] = useState(false); const [hovered, setHovered] = useState(false); + const tableNameRef = React.useRef(null); const setHover = (hovered: boolean) => { debounce(() => setHovered(hovered), 100)(); @@ -213,39 +214,50 @@ const TableElement = ({ table, actions, ...props }: TableElementProps) => { ); }; - const renderHeader = () => ( -
setHover(true)} - onMouseLeave={() => setHover(false)} - > - - - {table.name} - - + const renderHeader = () => { + const element: HTMLInputElement | null = tableNameRef.current; + let trigger: string[] = []; + if (element && element.offsetWidth < element.scrollWidth) { + trigger = ['hover']; + } -
- {table.isMetadataLoading || table.isExtraMetadataLoading ? ( - - ) : ( - e.stopPropagation()} + return ( +
setHover(true)} + onMouseLeave={() => setHover(false)} + > + + - {renderControls()} - - )} + {table.name} + + + +
+ {table.isMetadataLoading || table.isExtraMetadataLoading ? ( + + ) : ( + e.stopPropagation()} + > + {renderControls()} + + )} +
-
- ); + ); + }; const renderBody = () => { let cols;