Expand hierarchical subrows or custom detail panels with rowExpandingFeature, expandedRowModel, getSubRows, getRowCanExpand, manualExpanding, and paginateExpandedRows. Load when expansion state changes but no UI appears.
64
76%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./packages/table-core/skills/expanding/SKILL.mdThis skill builds on core, table-features, and client-vs-server. Expansion controls row-tree inclusion; the renderer owns disclosure controls and detail panels.
import {
createExpandedRowModel,
rowExpandingFeature,
tableFeatures,
} from '@tanstack/table-core'
type Node = { id: string; children?: Node[] }
export const features = tableFeatures({
rowExpandingFeature,
expandedRowModel: createExpandedRowModel(),
})
export const options = { getSubRows: (row: Node) => row.children }const detailOptions = { getRowCanExpand: () => true }
const isDetailOpen = row.getIsExpanded()For custom detail UI, render an additional row/panel when isDetailOpen is true.
Wrong: const options = { data: nestedRows }
Correct: const options = { data: nestedRows, getSubRows: (row: Node) => row.children }
Nested object structure is not inferred automatically.
Source: docs/framework/react/guide/expanding.md#table-rows-as-expanded-data
Wrong: row.toggleExpanded(true)
Correct: if (row.getIsExpanded()) renderDetail(row.original)
Table is headless and cannot render a custom detail panel.
Source: docs/framework/react/guide/expanding.md#custom-expanding-ui
Wrong: const options = { paginateExpandedRows: false }; const leafOnlyPages = true
Correct: const options = { paginateExpandedRows: false }; const descendantsStayWithParent = true
This option controls whether expansion happens before or after pagination; it does not make page size count only leaf rows.
Source: packages/table-core/src/features/row-expanding/rowExpandingFeature.types.ts
Inspect node_modules/@tanstack/table-core/dist/features/row-expanding/ for expansion state, row APIs, and model placement.
9e523bc
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.