CtrlK
BlogDocsLog inGet started
Tessl Logo

create-table-hook

Create reusable Solid table infrastructure with createTableHook, createAppTable, createAppColumnHelper, shared features/defaults, component registries, App wrappers, and typed context hooks. Load for recurring app conventions, reactive per-table getters, or prop drilling.

63

Quality

75%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./packages/solid-table/skills/create-table-hook/SKILL.md
SKILL.md
Quality
Evals
Security

This skill builds on @tanstack/table-core#core, getting-started, and table-state. Use a factory when tables share policy; keep one-off tables on createTable.

Setup

import {
  createTableHook,
  rowSelectionFeature,
  tableFeatures,
} from '@tanstack/solid-table'

export const { createAppColumnHelper, createAppTable, useTableContext } =
  createTableHook({
    features: tableFeatures({ rowSelectionFeature }),
    getRowId: (row: { id: string }) => row.id,
  })

Core Patterns

Infer columns with the bound helper

type Person = { id: string; name: string }
const helper = createAppColumnHelper<Person>()
const columns = helper.columns([helper.accessor('name', { header: 'Name' })])

Preserve per-table reactivity

const table = createAppTable({
  columns,
  get data() {
    return data()
  },
})
return <table.AppTable>{() => <RowCount />}</table.AppTable>

Common Mistakes

MEDIUM Abstracting a one-off table

Wrong:

const app = createTableHook({ features: tableFeatures({}) })

Correct:

const table = createTable({ features, columns, data })

The factory should encode repeated app conventions rather than add ceremony.

Source: docs/framework/solid/guide/composable-tables.md

HIGH Passing per-table snapshots

Wrong:

createAppTable({ columns, data: data() })

Correct:

createAppTable({
  columns,
  get data() {
    return data()
  },
})

The getter preserves Solid tracking when the signal changes.

Source: examples/solid/composable-tables

HIGH Reading context outside wrappers

Wrong:

return <RowCount />

Correct:

return <table.AppTable>{() => <RowCount />}</table.AppTable>

Returned context hooks must run under the matching factory wrapper; use them instead of prop drilling registered components.

Source: packages/solid-table/src/createTableHook.tsx

API Discovery

Inspect node_modules/@tanstack/solid-table/dist/createTableHook.d.ts for exact returned names, component binding, context providers, and reactive option merging.

Repository
TanStack/table
Last updated
First committed

Is this your skill?

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.