Implementa tabelas/listagens de painel admin com shadcn/ui + TanStack Table, com paginação/ordenação/filtros server-side e UX de toolbar. Use quando o usuário mencionar painel admin, backoffice, listagens, tabela, data table, shadcn, TanStack Table, paginação, sorting, filtros, busca, bulk actions, produtos, pedidos, clientes, cupons ou banners.
Skill para construir tabelas/listagens administrativas com:
@tanstack/react-table)Referências pragmáticas:
sadmann7/tablecnpankajgurav005/next-shadcn-data-tablePadronize estes parâmetros (nomes consistentes entre listagens):
page: 1..NperPage: 10/20/50/100sort: campo.direcao (ex.: created_at.desc, price.asc)q: busca textual simples (opcional)filters: string serializada (recomendado JSON compactado/URL-encoded) ou múltiplos params f_*Regras:
Defina o modelo de dados e colunas
id, header, accessorKey/accessorFn.Defina filtros como “metadados”
status (multi-select), category_id (single), price (range), created_at (date range).Parse e valide query params no servidor
page/perPage/sort/q/filters.page mínimo 1; clamp em limites).Monte a query server-side com total
{ rows, total }.total para pageCount = Math.ceil(total / perPage).ILIKE %...% sem estratégia.Renderize a tabela no client (mínimo “use client”)
Sincronize interações com URL
page/perPage/sort/filtros, atualize a URL (router push/replace).Use quando a listagem é pequena e você só precisa do básico:
page/perPage/sort no servidorq e 1–2 selects
Sem “advanced filtering” complexo.tenant_id/store_id.accessorFn sem memo quando pesado.perPageOrganize por domínio (painel):
src/<dominio>/admin/<entidade>/list/
columns.tsxfilters.tstable.tsxtoolbar.tsxquery.ts (parse/validate + montagem de query)