MCPcopy Index your code
hub / github.com/primer/react / DataTable

Function DataTable

packages/react/src/DataTable/DataTable.tsx:55–122  ·  view source on GitHub ↗
({
  'aria-labelledby': labelledby,
  'aria-describedby': describedby,
  cellPadding,
  columns,
  data,
  initialSortColumn,
  initialSortDirection,
}: DataTableProps<Data>)

Source from the content-addressed store, hash-verified

53}
54
55function DataTable<Data extends UniqueRow>({
56 'aria-labelledby': labelledby,
57 'aria-describedby': describedby,
58 cellPadding,
59 columns,
60 data,
61 initialSortColumn,
62 initialSortDirection,
63}: DataTableProps<Data>) {
64 const {headers, rows, actions, gridTemplateColumns} = useTable({
65 data,
66 columns,
67 initialSortColumn,
68 initialSortDirection,
69 })
70
71 return (
72 <Table
73 aria-labelledby={labelledby}
74 aria-describedby={describedby}
75 cellPadding={cellPadding}
76 gridTemplateColumns={gridTemplateColumns}
77 >
78 <TableHead>
79 <TableRow>
80 {headers.map(header => {
81 if (header.isSortable()) {
82 return (
83 <TableSortHeader
84 key={header.id}
85 align={header.column.align}
86 direction={header.getSortDirection()}
87 onToggleSort={() => {
88 actions.sortBy(header)
89 }}
90 >
91 {typeof header.column.header === 'string' ? header.column.header : header.column.header()}
92 </TableSortHeader>
93 )
94 }
95 return (
96 <TableHeader key={header.id} align={header.column.align}>
97 {typeof header.column.header === 'string' ? header.column.header : header.column.header()}
98 </TableHeader>
99 )
100 })}
101 </TableRow>
102 </TableHead>
103 <TableBody>
104 {rows.map(row => {
105 return (
106 <TableRow key={row.id}>
107 {row.getCells().map(cell => {
108 return (
109 <TableCell key={cell.id} scope={cell.rowHeader ? 'row' : undefined} align={cell.column.align}>
110 {cell.column.renderCell
111 ? cell.column.renderCell(row.getValue())
112 : (cell.getValue() as React.ReactNode)}

Callers

nothing calls this directly

Calls 1

useTableFunction · 0.90

Tested by

no test coverage detected