title: DataTable
storybookPath: data-display-data-table
isExperimentalPackage: true
The DataTable component presents a list of data in table form.
It uses @tanstack/react-table as a dependency to implement data selection
and filtering capabilities. As such, certain table options are available as
DataTable props. For example, the items and columns prop are required
options.
Currently supported features from @tanstack/react-table are the following:
- Row selection
- Multi-row selection
- Row expansion
- Column visibility
However, certain defaults have been set for the component:
enableHiding is enabled by default;
enableMultiRowSelection is disabled by default, meaning row selection
defaults to single-row;
enableRowSelection is automatically enabled when a callback value is passed
in onRowSelectionChange.
- The
data property in React Table options is renamed to items to align
with the rest of Spark Web's usage of data as a data attribute.
Example
<DataTable
items={[
{
id: 1,
name: 'Ken Adams',
category: 'Solar System',
amount: 3500,
},
]}
columns={[
{
id: 'id',
accessorKey: 'id',
header: 'ID',
cell: info => <Text size="small">{info.renderValue()}</Text>,
},
{
id: 'name',
accessorKey: 'name',
header: 'Name',
cell: info => <Text size="small">{info.renderValue()}</Text>,
},
{
id: 'category',
accessorKey: 'category',
header: 'Category',
cell: info => <Text size="small">{info.renderValue()}</Text>,
},
{
id: 'amount',
accessorKey: 'amount',
header: 'Amount',
cell: info => <Text size="small">{info.renderValue()}</Text>,
},
]}
/>
Props
DataTable