import { Button, DropdownMenu, SvgUse } from "@ivtui/base" import clsx from "clsx" import type { JSX } from "react" import { useCallback, useState } from "react" import type { DataTableRowItemAction } from "../DataTable.types" interface RowActionsCellProps { row: any actions: DataTableRowItemAction[] } export function RowActionsCell({ row, actions, }: Readonly>): JSX.Element { const [open, setOpen] = useState(false) const handleActionClick = useCallback( (action: DataTableRowItemAction) => { action.onClick(row.original) setOpen(false) }, [row.original], ) return ( {actions.map((action, index) => ( handleActionClick(action)} disabled={action.disabled} className={clsx( "cursor-pointer", action.variant === "destructive" && "text-destructive focus:text-destructive", )} > {action.icon && (typeof action.icon === "string" ? ( ) : ( {action.icon} ))} {action.label} ))} ) }