Skip to content

useColumnInference

useColumnInference(table, columns?): InferredColumn[]

Defined in: packages/ui/src/hooks/use-column-inference.ts:47

Inspects a Drizzle table’s columns and returns inferred ColumnDef entries with appropriate TypedField components attached.

Uses fieldForColumn internally to map each Drizzle column’s dataType to a display component (e.g., DateField, BooleanField, TextField). Labels are auto-derived from camelCase column keys.

Memoized — only recomputes when the table reference or columns array changes.

A Drizzle table object whose entries expose dataType and name metadata. Pass undefined to return an empty array (safe for conditional rendering).

Record<string, unknown> | undefined

string[]

Optional subset of column names to include. When provided, only matching columns are returned and their order is preserved.

InferredColumn[]

Array of InferredColumn definitions, each containing a field component ready for rendering.

import { useColumnInference } from "@cfast/ui";
import { posts } from "~/db/schema";
const cols = useColumnInference(posts, ["title", "createdAt", "published"]);
// cols[0].field === TextField
// cols[1].field === DateField
// cols[2].field === BooleanField