BulkActionTable

Organism

Table with **id-keyed** row selection and a bulk-action bar. `DataTable`’s own `selectable` prop keys selection by array index and only works in the deprecated legacy view, so selections there follow the wrong rows once anything sorts or paginates.

Selection and actions

Preview
1 selected
CompanyCountryStage
Northwind TradersDEnew
Contoso LtdGBcontacted
FabrikamNLreplied
Adventure WorksTRnew
Code
<BulkActionTable
  rows={companies}
  rowId={(c) => c.companyId}
  selected={selected}
  onSelectedChange={setSelected}
  columns={columns}
  actions={[{ key: 'enrich', label: 'Enrich', onAction: enrich }]}
/>

Unselectable rows, and select-all-matching

Preview
CompanyWhy not selectable
Northwind Traders
Contoso LtdSuppressed — replied "stop"
Fabrikam
Code
<BulkActionTable
  isRowSelectable={(c) => (c.suppressed ? 'Suppressed' : true)}
  totalMatching={total}
  onSelectAllMatching={selectEverything}
  …
/>
Sourcemodules/ui/BulkActionTable.tsx