import type { Table as TableModel } from "@tanstack/react-table"; import type { EntityColumn } from "./entity-list"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "./table"; export function EntityTableContent({ table, columns, title, loading, unavailable, message, rowClassName, onSort, }: { table: TableModel; columns: readonly EntityColumn[]; title: string; loading: boolean; unavailable: boolean; message: string; rowClassName: ((item: T) => string) | undefined; onSort: () => void; }) { const visibleColumns = table.getVisibleLeafColumns(); const total = table.getFilteredRowModel().rows.length; return ( {visibleColumns.map((column) => { const direction = column.getIsSorted(); return ( {column.getCanSort() ? ( ) : ( String(column.columnDef.header) )} ); })} {loading || unavailable ? ( {message} ) : ( table.getRowModel().rows.map((row) => ( {visibleColumns.map((column) => ( {columns.find((item) => item.id === column.id)?.render(row.original)} ))} )) )} {!(loading || unavailable || total) && ( {message} )}
); }