import { DataTablaRowActionFunction, DataTableRowActions, } from "@/components"; import { Checkbox } from "@/ui"; import { ColumnDef, Row } from "@tanstack/react-table"; import { useMemo } from "react"; import { useTranslation } from "react-i18next"; import { QuoteItemsSortableDragHandleCell } from "../components/QuoteItemsSortableDragHandleCell"; // eslint-disable-next-line @typescript-eslint/no-unused-vars export function useDetailColumns( columns: ColumnDef[], options: { enableDragHandleColumn?: boolean; enableSelectionColumn?: boolean; enableActionsColumn?: boolean; rowActionFn?: DataTablaRowActionFunction; } = {} ): ColumnDef[] { const { t } = useTranslation(); const { enableDragHandleColumn = false, enableSelectionColumn = false, enableActionsColumn = false, rowActionFn = undefined, } = options; // const lastSelectedId = ""; return useMemo(() => { const result = [...columns]; if (enableDragHandleColumn) { result.unshift({ id: "row_drag_handle", /*header: () => ( ),*/ header: () => null, cell: () => , enableSorting: false, enableHiding: false, size: 40, }); } if (enableSelectionColumn) { result.unshift({ id: "select", header: ({ table }) => ( table.toggleAllPageRowsSelected(!!value)} aria-label={t("common.select_all")} className='translate-y-[0px]' /> ), cell: ({ row }: { row: Row }) => ( row.toggleSelected(Boolean(value))} aria-label={t("common.select_row")} className='mt-2' /> ), enableSorting: false, enableHiding: false, size: 40, }); } if (enableActionsColumn) { result.push({ id: "row_actions", /*header: () => ( ),*/ cell: (props) => { return ; }, enableSorting: false, enableHiding: false, size: 48, }); } return result; }, [columns, enableActionsColumn, enableDragHandleColumn, enableSelectionColumn, rowActionFn, t]); }