Data Table
muffled-ui-registry/data-tableFreeComponent
TanStack Table wired to registry table primitives for sortable, filterable grids.
Live preview
live · rendered by the registry
Rendered by muffled-ui-registry on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.muffled.studio/r/data-table.jsonSource
1import {2 type ColumnDef,3 flexRender,4 getCoreRowModel,5 useReactTable,6} from "@tanstack/react-table"78import {9 Table,10 TableBody,11 TableCell,12 TableHead,13 TableHeader,14 TableRow,15} from "@/registry/ui/table"1617interface DataTableProps<TData, TValue> {18 columns: ColumnDef<TData, TValue>[]19 data: TData[]20}2122function DataTable<TData, TValue>({23 columns,24 data,25}: DataTableProps<TData, TValue>) {26 const table = useReactTable({27 data,28 columns,29 getCoreRowModel: getCoreRowModel(),30 })3132 return (33 <Table>34 <TableHeader>35 {table.getHeaderGroups().map((headerGroup) => (36 <TableRow key={headerGroup.id}>37 {headerGroup.headers.map((header) => (38 <TableHead key={header.id}>39 {header.isPlaceholder40 ? null41 : flexRender(42 header.column.columnDef.header,43 header.getContext(),44 )}45 </TableHead>46 ))}47 </TableRow>48 ))}49 </TableHeader>50 <TableBody>51 {table.getRowModel().rows?.length ? (52 table.getRowModel().rows.map((row) => (53 <TableRow54 key={row.id}55 data-state={row.getIsSelected() && "selected"}56 >57 {row.getVisibleCells().map((cell) => (58 <TableCell key={cell.id}>59 {flexRender(cell.column.columnDef.cell, cell.getContext())}60 </TableCell>61 ))}62 </TableRow>63 ))64 ) : (65 <TableRow>66 <TableCell colSpan={columns.length} className="h-24 text-center">67 no results.68 </TableCell>69 </TableRow>70 )}71 </TableBody>72 </Table>73 )74}7576export { DataTable, type DataTableProps }
What it pulls in
npm packages
Other registry items
Files it writes
More from muffled-ui-registry
All 55 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | muffled-ui-registry | Components | Free | 2 deps | |
| Alertalert | muffled-ui-registry | Components | Free | 1 dep | |
| Alert Dialogalert-dialog | muffled-ui-registry | Components | Free | 1 dep | |
| Avataravatar | muffled-ui-registry | Components | Free | 1 dep | |
| Badgebadge | muffled-ui-registry | Components | Free | 2 deps | |
| Breadcrumbbreadcrumb | muffled-ui-registry | Components | Free | 2 deps | |
| Buttonbutton | muffled-ui-registry | Components | Free | 2 deps | |
| Button Groupbutton-group | muffled-ui-registry | Components | Free | 2 deps |
