1
1
import { ChevronRightIcon } from "@heroicons/react/24/solid" ;
2
2
import { Link } from "@remix-run/react" ;
3
- import React , { ReactNode , forwardRef , useState , useContext , createContext } from "react" ;
3
+ import React , { type ReactNode , forwardRef , useState , useContext , createContext } from "react" ;
4
4
import { cn } from "~/utils/cn" ;
5
5
import { Popover , PopoverContent , PopoverVerticalEllipseTrigger } from "./Popover" ;
6
6
import { InfoIconTooltip } from "./Tooltip" ;
@@ -302,6 +302,7 @@ export const TableCellMenu = forwardRef<
302
302
onClick ?: ( event : React . MouseEvent < HTMLButtonElement , MouseEvent > ) => void ;
303
303
visibleButtons ?: ReactNode ;
304
304
hiddenButtons ?: ReactNode ;
305
+ hiddenSoloButton ?: ReactNode ;
305
306
popoverContent ?: ReactNode ;
306
307
children ?: ReactNode ;
307
308
isSelected ?: boolean ;
@@ -314,6 +315,7 @@ export const TableCellMenu = forwardRef<
314
315
onClick,
315
316
visibleButtons,
316
317
hiddenButtons,
318
+ hiddenSoloButton,
317
319
popoverContent,
318
320
children,
319
321
isSelected,
@@ -351,6 +353,10 @@ export const TableCellMenu = forwardRef<
351
353
{ hiddenButtons }
352
354
</ div >
353
355
) }
356
+ { /* Hidden solo button that shows on hover. To be used without the ellipsis popover content */ }
357
+ { hiddenSoloButton && (
358
+ < div className = { cn ( "hidden group-hover/table-row:block" ) } > { hiddenSoloButton } </ div >
359
+ ) }
354
360
{ /* Always visible buttons */ }
355
361
{ visibleButtons }
356
362
{ /* Always visible popover with ellipsis trigger */ }
0 commit comments