"use client" import * as React from "react" import { EllipsisHorizontal } from "@medusajs/icons" import { CellContext } from "@tanstack/react-table" import { DropdownMenu } from "../../../components/dropdown-menu" import { IconButton } from "../../../components/icon-button" import { DataTableActionColumnDefMeta } from "../types" interface DataTableActionCellProps { ctx: CellContext } const DataTableActionCell = ({ ctx, }: DataTableActionCellProps) => { const meta = ctx.column.columnDef.meta as | DataTableActionColumnDefMeta | undefined const actions = meta?.___actions if (!actions) { return null } const resolvedActions = typeof actions === "function" ? actions(ctx) : actions if (!Array.isArray(resolvedActions)) { return null } return ( {resolvedActions.map((actionOrGroup, idx) => { const isArray = Array.isArray(actionOrGroup) const isLast = idx === resolvedActions.length - 1 return isArray ? ( {actionOrGroup.map((action) => ( { e.stopPropagation() action.onClick(ctx) }} className="[&>svg]:text-ui-fg-subtle flex items-center gap-2" > {action.icon} {action.label} ))} {!isLast && } ) : ( { e.stopPropagation() actionOrGroup.onClick(ctx) }} className="[&>svg]:text-ui-fg-subtle flex items-center gap-2" > {actionOrGroup.icon} {actionOrGroup.label} ) })} ) } export { DataTableActionCell } export type { DataTableActionCellProps }