import { Checkbox } from "@repo/shadcn-ui/components"; import { ColumnDef } from "@tanstack/react-table"; import { useId, useMemo } from "react"; // eslint-disable-next-line @typescript-eslint/no-unused-vars export function useDetailColumns( columns: ReadonlyArray>, { enableDragHandleColumn = false, enableSelectionColumn = false, enableActionsColumn = false, rowActionFn, }: { enableDragHandleColumn?: boolean; enableSelectionColumn?: boolean; enableActionsColumn?: boolean; rowActionFn?: DataTablaRowActionFunction; } = {} ): ColumnDef[] { const idPrefix = useId(); return useMemo(() => { const baseColumns: ColumnDef[] = [...columns]; if (enableDragHandleColumn) { baseColumns.unshift({ id: "row_drag_handle", header: () => null, cell: (info) => , enableSorting: false, enableHiding: false, size: 40, }); } if (enableSelectionColumn) { baseColumns.unshift({ id: "select", header: ({ table }) => ( table.toggleAllPageRowsSelected(!!value)} aria-label='Seleccionar todo' className='translate-y-[0px]' /> ), cell: ({ row }) => ( ), enableSorting: false, enableHiding: false, size: 40, }); } if (enableActionsColumn) { const RowActionsCell = (props: any) => ( ); baseColumns.push({ id: "row_actions", header: () => null, cell: RowActionsCell, enableSorting: false, enableHiding: false, size: 48, }); } return baseColumns; }, [ columns, rowActionFn, idPrefix, enableDragHandleColumn, enableSelectionColumn, enableActionsColumn, ]); }