"use client" import type { ColumnDef, Row } from "@tanstack/react-table" import { MoreHorizontal, Pencil, Trash2 } from "lucide-react" import { Button } from "@/shared/components/ui/button" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@/shared/components/ui/dropdown-menu" export type ActionsColumnOptions = { onEdit?: (row: TData) => void onDelete?: (row: TData) => Promise } export function createActionsColumn( options: ActionsColumnOptions, ): ColumnDef { return { id: "actions", header: () => Actions, cell: ({ row }) => , enableSorting: false, enableHiding: false, } } function ActionsCell({ row, options, }: { row: Row options: ActionsColumnOptions }) { return ( {options.onEdit && ( { e.stopPropagation() options.onEdit!(row.original) }}> Edit )} {options.onDelete && ( { e.stopPropagation() options.onDelete!(row.original) }} > Delete )} ) }