AdaptTable for MUI

Rows in MUI

A row is more than a record. Pin it under the header or to the floor of the scroll box, drag it by the grip (Space lifts, arrows move, Space drops), and merge cells that share a team so the name is written once.

onRowReorder, onPinnedRowIdsChange, getCellSpan and rowActionsLayout="menu" are the four props this page turns on. Add and delete are callbacks to the host — the table never owns the data.

The grips, the pin actions, the menu and the merged cells are MUI.

The grip is an IconButton, pin and delete live in a MUI Menu, and a Team merge is one TableCell with rowSpan inside the same TableRow the unmerged cells sit on.

The code

import { DataTable } from "@adapttable/mui";

export function People({ rows, columns, onReorder, setPinned, spanTeam }) {
  return (
    <DataTable
      data={rows}
      columns={columns}
      rowKey={(row) => row.id}
      rowActionsLayout="menu"
      onRowReorder={onReorder}
      onPinnedRowIdsChange={setPinned}
      getCellSpan={spanTeam}
    />
  );
}

Install

pnpm add @adapttable/mui @adapttable/core @mui/material

The same feature in the other kits

More MUI features

Reference: row-pinning, row-reordering, row-spanning. More of this kit: AdaptTable for MUI, or the live demo.