CRUD Data Table
Full TanStack CRUD data table with search, filters, multiselect, column visibility, sorting, and API Platform helpers.
Books
| Actions | ||||||
|---|---|---|---|---|---|---|
| The Left Hand of Darkness | Ursula K. Le Guin | published | Yes | May 12, 2025 | ||
| Dune | Frank Herbert | published | Yes | May 10, 2025 | ||
| The Dispossessed | Ursula K. Le Guin | draft | No | Apr 28, 2025 | ||
| Neuromancer | William Gibson | published | Yes | Apr 20, 2025 | ||
| The Three-Body Problem | Liu Cixin | archived | No | Mar 18, 2025 | ||
| Foundation | Isaac Asimov | published | Yes | Mar 1, 2025 | ||
| Snow Crash | Neal Stephenson | draft | No | Feb 14, 2025 | ||
| The Broken Earth | N.K. Jemisin | published | Yes | Jan 30, 2025 |
Page 1 of 1
Installation
npx shadcn@latest add https://ui.uptoolkit.com/r/crud-data-table.jsonUsage
A batteries-included admin table for API Platform resources. Ships with search,
customizable column filters, row multiselect, column visibility, sorting, and
pagination. In server mode it builds query strings compatible with API
Platform's default page, itemsPerPage, order[field], filter, and search
parameters.
npx shadcn@latest add @_cn/crud-data-tableimport { CrudDataTable } from "@/components/crud-data-table";
<CrudDataTable
endpoint="/api/books"
manual
heading="Books"
onCreate={() => router.push("/books/new")}
onEdit={(book) => router.push(`/books/${book.id}`)}
onDelete={(book) => deleteBook(book["@id"])}
onBulkDelete={(rows) => deleteBooks(rows.map((row) => row["@id"]))}
onQueryChange={(query) => console.log(buildApiPlatformQuery(query).toString())}
/>;Client mode
Omit endpoint to run against local rows — useful for Storybook-style previews
or optimistic client CRUD:
<CrudDataTable data={books} columns={bookColumns} />Column filters
Define filters on columnDef.meta.filter. Supported types: text, select,
multiselect, boolean. Each maps to API Platform filter operators (contains,
in, eq, and so on).
Dependencies
Requires @tanstack/react-table in the host application.