import './DataTable.css'; interface Column { key: string; header: string; render: (item: T) => React.ReactNode; width?: string; } interface DataTableProps { columns: Column[]; data: T[]; emptyMessage?: string; onRowClick?: (item: T) => void; } export function DataTable({ columns, data, emptyMessage = 'No data', onRowClick }: DataTableProps) { return (
{columns.map(col => ( ))} {data.length === 0 ? ( ) : ( data.map((item, i) => ( onRowClick(item) : undefined} className={onRowClick ? 'clickable' : ''} > {columns.map(col => ( ))} )) )}
{col.header}
{emptyMessage}
{col.render(item)}
); }