
Table State
Read and control Table v9 state in ember.
Install
npx skills add TanStack/table --skill table-state -g -a claude-code -y- Repository
- TanStack/table28.5k
- Category
- Engineering
- Updated
- 14d ago
- License
- MIT
- Context cost
- Lightabout 688 tokens
- Runs scripts
- No, instructions only
What it does
Read and control Table v9 state in ember. Use for tracked reads, subscriptions, controlled slices, and framework-specific reactive boundaries.
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.
Controlled tracked setup
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>
}
