function Table() {
const data = React.useMemo(
() => [
{
name: 'Panchito Green',
age: 10,
shirtSize: 'S',
},
{
name: 'Rubia Robker',
age: 25,
shirtSize: 'M',
},
{
name: 'Micheil Sappell',
age: 50,
shirtSize: 'L',
},
{
name: 'Geoffrey Sprason',
age: 30,
shirtSize: 'M',
},
{
name: 'Grissel Rounsefull',
age: 21,
shirtSize: 'S',
},
],
[]
);
const columns = React.useMemo(
() => [
{
Header: 'Name',
accessor: 'name',
},
{
Header: 'Age',
accessor: 'age',
},
{
Header: 'Shirt Size',
accessor: 'shirtSize',
},
],
[]
);
const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } = useTable(
{
columns,
data,
},
useRowSelect,
useRowSelectColumn
);
return (
<table {...getTableProps()}>
<thead>
{headerGroups.map((headerGroup) => (
<tr {...headerGroup.getHeaderGroupProps()}>
{headerGroup.headers.map((column) => (
<th {...column.getHeaderProps()}>
{column.render('Header')}
{column.id === 'selection' && column.render('Summary')}
</th>
))}
</tr>
))}
</thead>
<tbody {...getTableBodyProps()}>
{rows.map((row, i) => {
prepareRow(row);
return (
<tr {...row.getRowProps()}>
{row.cells.map((cell) => {
return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>;
})}
</tr>
);
})}
</tbody>
</table>
);
}