11import { ChevronRightIcon } from "@heroicons/react/24/solid" ;
22import { 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" ;
44import { cn } from "~/utils/cn" ;
55import { Popover , PopoverContent , PopoverVerticalEllipseTrigger } from "./Popover" ;
66import { InfoIconTooltip } from "./Tooltip" ;
@@ -302,6 +302,7 @@ export const TableCellMenu = forwardRef<
302302 onClick ?: ( event : React . MouseEvent < HTMLButtonElement , MouseEvent > ) => void ;
303303 visibleButtons ?: ReactNode ;
304304 hiddenButtons ?: ReactNode ;
305+ hiddenSoloButton ?: ReactNode ;
305306 popoverContent ?: ReactNode ;
306307 children ?: ReactNode ;
307308 isSelected ?: boolean ;
@@ -314,6 +315,7 @@ export const TableCellMenu = forwardRef<
314315 onClick,
315316 visibleButtons,
316317 hiddenButtons,
318+ hiddenSoloButton,
317319 popoverContent,
318320 children,
319321 isSelected,
@@ -351,6 +353,10 @@ export const TableCellMenu = forwardRef<
351353 { hiddenButtons }
352354 </ div >
353355 ) }
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+ ) }
354360 { /* Always visible buttons */ }
355361 { visibleButtons }
356362 { /* Always visible popover with ellipsis trigger */ }
0 commit comments