Beansv0.8.0

Table

Rows and columns of data, with sortable headings.

Alan Turing
Researcher2
FDFelix Dorner
Designer3
Grace Hopper
Admiral5
table.tsx
const [sort, setSort] = useState({ key: "name", dir: "ascending" });
const rows = sortRows(data, sort); // your own comparator

<Table aria-label="People">
  <TableHeader>
    <TableRow>
      <TableHeadCell sort={sort.key === "name" ? sort.dir : "none"} onSort={() => toggle("name")}>Name</TableHeadCell>
      <TableHeadCell sort={sort.key === "role" ? sort.dir : "none"} onSort={() => toggle("role")}>Role</TableHeadCell>
    </TableRow>
  </TableHeader>
  <TableBody>
    {rows.map((r) => (
      <TableRow key={r.id}>
        <TableCell leading={<Avatar size="mini" src={r.photo} />}>{r.name}</TableCell>
        <TableCell>{r.role}</TableCell>
      </TableRow>
    ))}
  </TableBody>
</Table>