@rotsides/table-columns
v0.1.5
Published
Thin helpers around `@tanstack/react-table` column definitions.
Downloads
145
Readme
@rotsides/table-columns
Thin helpers around @tanstack/react-table column definitions.
Install
pnpm add @rotsides/table-columnsUsage
import {
buildColumns,
textColumn,
formattedColumn,
displayColumn,
accessorColumn,
type TableColumnConfig,
} from "@rotsides/table-columns";
const text = textColumn<User>;
const formatted = formattedColumn<User>;
const display = displayColumn<User>;
const accessor = accessorColumn<User>;
const columns = [
text("email", "Email"),
formatted("createdAt", "Created", (value) => formatDate(value)),
display("profile", "Profile", (row) => <div>{row.original.name}</div>),
accessor("status", "Status", (_row, value) => (
<Badge variant={value === "active" ? "success" : "secondary"}>
{String(value)}
</Badge>
)),
];
const tableColumns = buildColumns(columns, {
fallback: (value) => (value == null ? "—" : value),
renderActionsColumn: () => actionColumn,
});Notes
buildColumnsreturns TanStackColumnDef[].- Pass an app-specific
fallbackto control empty rendering. - Keep UI-specific renderers (badges, avatars, actions) in your app.
- Builder aliases (
const text = textColumn<User>) are useful to declare the model type once and avoid repeating<User>everywhere.
Build
pnpm build