import * as React from 'react' import { cn } from '@/lib/utils' import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from './table' export interface DataTableColumn { key: string header: React.ReactNode cell?: (row: TData, index: number) => React.ReactNode accessor?: keyof TData className?: string } export interface DataTableProps extends React.HTMLAttributes { columns: DataTableColumn[] data: TData[] emptyText?: React.ReactNode } function DataTable>({ columns, data, emptyText = 'No results.', className, ...props }: DataTableProps) { return (
{columns.map((column) => ( {column.header} ))} {data.length > 0 ? ( data.map((row, rowIndex) => ( {columns.map((column) => ( {column.cell ? column.cell(row, rowIndex) : column.accessor ? String(row[column.accessor] ?? '') : null} ))} )) ) : ( {emptyText} )}
) } export { DataTable }