Read and control Table v9 state in ember. Use for tracked reads, subscriptions, controlled slices, and framework-specific reactive boundaries.
85%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Load intent load @tanstack/table-core#table-state first for shared ownership, initialization, updater, and reset rules.
Glimmer tracks Table APIs, atom reads, and store-property reads inside template-consumed getters. A value cached outside tracked consumption is only a snapshot. There is no table.Subscribe or selector argument to useTable; table.store.subscribe is intentionally a no-op and cannot drive rendering.
import Component from '@glimmer/component'
import { tracked } from '@glimmer/tracking'
import { on } from '@ember/modifier'
import {
rowPaginationFeature,
tableFeatures,
useTable,
type PaginationState,
} from '@tanstack/ember-table'
const features = tableFeatures({ rowPaginationFeature })
const columns = [{ accessorKey: 'name' }]
const data = [{ name: 'Ada' }]
export default class PageStatus extends Component {
@tracked pagination: PaginationState = { pageIndex: 0, pageSize: 10 }
table = useTable(this, () => ({
features,
columns,
data,
state: { pagination: this.pagination },
onPaginationChange: (next) => {
this.pagination =
typeof next === 'function' ? next(this.pagination) : next
},
}))
get pageNumber() {
return this.table.atoms.pagination.get().pageIndex + 1
}
nextPage = () => this.table.nextPage()
<template>
<button type='button' {{on 'click' this.nextPage}}>Page
{{this.pageNumber}}</button>
</template>
}this.pagination.pageIndex++ does not notify the thunk.features and atoms are construction-time inputs. Updating ordinary live options does not replace the feature set or atom owners; create them once before useTable.createAtom for external Glimmer-reactive ownership. Read it in a tracked getter and use feature APIs or the external atom to write.For advanced reactive boundaries, shared atoms, or detailed subscription examples, read reactivity. For construction or rendering setup, read getting-started.
Inspect node_modules/@tanstack/ember-table/declarations/index.d.ts, use-table.d.ts, signal.d.ts, and FlexRender.d.ts. Core feature APIs are in node_modules/@tanstack/table-core/dist/features/.
TanStack/table
c14e022
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.