@@ -286,41 +286,48 @@ type CopyableTableCellProps = TableCellProps & {
286286
287287export 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