UNPKG

@tanstack/solid-table

Version:

Headless UI for building powerful tables & datagrids for Solid.

47 lines • 1.77 kB
import { FlexRender } from "./FlexRender.js"; import { RowData, Table, TableFeatures, TableOptions } from "@tanstack/table-core"; import { JSX } from "solid-js"; //#region src/createTable.d.ts export type SolidTable<TFeatures extends TableFeatures, TData extends RowData> = Table<TFeatures, TData> & { /** * @deprecated Read table APIs or `table.atoms` directly inside JSX, * `createMemo`, or `createEffect`. Solid tracks those reads natively. * This compatibility wrapper only passes atoms to its child function; * it does not create a subscription or tracking scope. */ Subscribe: (props: { children: (atoms: Table<TFeatures, TData>['atoms']) => JSX.Element; }) => JSX.Element; /** * Convenience FlexRender component attached to the table instance for * rendering headers, cells, or footers with custom markup. Mirrors the * `table.FlexRender` API exposed by `createTableHook`'s `createAppTable`. * * @example * <table.FlexRender header={header} /> * <table.FlexRender cell={cell} /> * <table.FlexRender footer={footer} /> */ FlexRender: typeof FlexRender; }; /** * Creates a Solid table instance backed by Solid-aware TanStack Store atoms. * * Table APIs and atom reads participate in Solid dependency tracking, so * computations that read a specific slice can update without invalidating * unrelated UI. Read table APIs or atoms inside JSX, `createMemo`, or * `createEffect` to track updates. * * @example * ```tsx * const table = createTable( * { * features, * columns, * data, * }, * ) * ``` */ export declare function createTable<TFeatures extends TableFeatures, TData extends RowData>(tableOptions: TableOptions<TFeatures, TData>): SolidTable<TFeatures, TData>; //#endregion