Skip to content

Commit 54be648

Browse files
committed
Improving rendering performance of the Table
1 parent b94e3f0 commit 54be648

File tree

2 files changed

+40
-45
lines changed

2 files changed

+40
-45
lines changed

apps/webapp/app/components/code/TSQLResultsTable.tsx

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -381,21 +381,9 @@ export function TSQLResultsTable({
381381
<TableHeaderCell
382382
key={col.name}
383383
alignment={isRightAlignedColumn(col) ? "right" : "left"}
384+
tooltip={col.description}
384385
>
385-
{col.description ? (
386-
<SimpleTooltip
387-
content={col.description}
388-
disableHoverableContent
389-
button={
390-
<span className="inline-flex items-center gap-1">
391-
{col.name}
392-
<InformationCircleIcon className="size-4 text-text-dimmed" />
393-
</span>
394-
}
395-
/>
396-
) : (
397-
col.name
398-
)}
386+
{col.name}
399387
</TableHeaderCell>
400388
))}
401389
</TableRow>

apps/webapp/app/components/primitives/Table.tsx

Lines changed: 38 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -286,41 +286,48 @@ type CopyableTableCellProps = TableCellProps & {
286286

287287
export const CopyableTableCell = forwardRef<HTMLTableCellElement, CopyableTableCellProps>(
288288
({ value, children, className, ...props }, ref) => {
289+
const [isHovered, setIsHovered] = useState(false);
289290
const { copy, copied } = useCopy(value);
290291

291292
return (
292-
<TableCell ref={ref} className={cn("group/copyable-cell", className)} {...props}>
293-
<div className="relative flex items-center">
293+
<TableCell ref={ref} className={className} {...props}>
294+
<div
295+
className="relative flex items-center"
296+
onMouseEnter={() => setIsHovered(true)}
297+
onMouseLeave={() => setIsHovered(false)}
298+
>
294299
{children}
295-
<span
296-
onClick={(e) => {
297-
e.stopPropagation();
298-
e.preventDefault();
299-
copy();
300-
}}
301-
className="absolute -right-2 top-1/2 z-10 hidden -translate-y-1/2 cursor-pointer group-hover/copyable-cell:flex"
302-
>
303-
<SimpleTooltip
304-
button={
305-
<span
306-
className={cn(
307-
"flex size-6 items-center justify-center rounded border border-charcoal-650 bg-charcoal-750",
308-
copied
309-
? "text-green-500"
310-
: "text-text-dimmed hover:border-charcoal-600 hover:bg-charcoal-700 hover:text-text-bright"
311-
)}
312-
>
313-
{copied ? (
314-
<ClipboardCheckIcon className="size-3.5" />
315-
) : (
316-
<ClipboardIcon className="size-3.5" />
317-
)}
318-
</span>
319-
}
320-
content={copied ? "Copied!" : "Copy"}
321-
disableHoverableContent
322-
/>
323-
</span>
300+
{isHovered && (
301+
<span
302+
onClick={(e) => {
303+
e.stopPropagation();
304+
e.preventDefault();
305+
copy();
306+
}}
307+
className="absolute -right-2 top-1/2 z-10 flex -translate-y-1/2 cursor-pointer"
308+
>
309+
<SimpleTooltip
310+
button={
311+
<span
312+
className={cn(
313+
"flex size-6 items-center justify-center rounded border border-charcoal-650 bg-charcoal-750",
314+
copied
315+
? "text-green-500"
316+
: "text-text-dimmed hover:border-charcoal-600 hover:bg-charcoal-700 hover:text-text-bright"
317+
)}
318+
>
319+
{copied ? (
320+
<ClipboardCheckIcon className="size-3.5" />
321+
) : (
322+
<ClipboardIcon className="size-3.5" />
323+
)}
324+
</span>
325+
}
326+
content={copied ? "Copied!" : "Copy"}
327+
disableHoverableContent
328+
/>
329+
</span>
330+
)}
324331
</div>
325332
</TableCell>
326333
);

0 commit comments

Comments
 (0)