import { ReactNode } from 'react' import clsx from 'clsx' interface Column { header: string accessor: (row: T) => ReactNode className?: string } interface TableProps { columns: Column[] data: T[] className?: string /** Stable key for each row (e.g. row => row.id or row => row.hash). Falls back to index if not provided. */ keyExtractor?: (row: T) => string | number } export function Table({ columns, data, className, keyExtractor }: TableProps) { return (
{columns.map((column, index) => ( ))} {data.map((row, rowIndex) => ( {columns.map((column, colIndex) => ( ))} ))}
{column.header}
{column.accessor(row)}
) }