TanStack
Table API Reference

createTableHook

Function: createTableHook()

ts
function createTableHook<TFeatures>(__namedParameters): object;

Defined in: packages/ember-table/declarations/create-table-hook.d.ts:28

Bundles a feature set and shared default options once so every table in your app can be created without repeating them. Returns a typed column helper factory and a createAppTable that wraps useTable.

Unlike the React adapter's hook, this does not pre-bind cell/header components onto the table; render with the FlexRenderCell, FlexRenderHeader, and FlexRenderFooter components as usual.

Type Parameters

TFeatures

TFeatures extends TableFeatures

Parameters

__namedParameters

CreateTableHookOptions<TFeatures>

Returns

object

appFeatures

ts
appFeatures: TFeatures;

createAppColumnHelper()

ts
createAppColumnHelper: <TData>() => ColumnHelper<TFeatures, TData>;

Type Parameters

TData

TData extends RowData

Returns

ColumnHelper<TFeatures, TData>

createAppTable()

ts
createAppTable: {
<TData>  (owner, getTableOptions): AppEmberTable<TFeatures, TData>;
<TData>  (getTableOptions): AppEmberTable<TFeatures, TData>;
};

Call Signature

ts
<TData>(owner, getTableOptions): AppEmberTable<TFeatures, TData>;
Type Parameters
TData

TData extends RowData

Parameters
owner

object

getTableOptions

() => Omit<TableOptions<TFeatures, TData>, "features">

Returns

AppEmberTable<TFeatures, TData>

Call Signature

ts
<TData>(getTableOptions): AppEmberTable<TFeatures, TData>;
Type Parameters
TData

TData extends RowData

Parameters
getTableOptions

() => Omit<TableOptions<TFeatures, TData>, "features">

Returns

AppEmberTable<TFeatures, TData>

Example

ts
const { createAppTable, createAppColumnHelper } = createTableHook({
  features: tableFeatures({ rowSortingFeature, sortedRowModel: createSortedRowModel(), sortFns }),
})

const columnHelper = createAppColumnHelper<Person>()
const columns = columnHelper.columns([...])

// inside a Glimmer component; passing `this` binds cleanup to its lifecycle
table = createAppTable(this, () => ({ columns, data: this.data }))