UNPKG

@primer/react

Version:

An implementation of GitHub's Primer Design System using React

42 lines 1.56 kB
import type { Column } from './column'; import type { UniqueRow } from './row'; import { SortDirection } from './sorting'; interface TableConfig<Data extends UniqueRow> { columns: Array<Column<Data>>; data: Array<Data>; initialSortColumn?: string | number; initialSortDirection?: Exclude<SortDirection, 'NONE'>; getRowId: (rowData: Data) => string | number; } interface Table<Data extends UniqueRow> { headers: Array<Header<Data>>; rows: Array<Row<Data>>; actions: { sortBy: (header: Header<Data>) => void; }; gridTemplateColumns: React.CSSProperties['gridTemplateColumns']; } interface Header<Data extends UniqueRow> { id: string; column: Column<Data>; isSortable: () => boolean; getSortDirection: () => SortDirection | Exclude<SortDirection, 'NONE'>; } interface Row<Data extends UniqueRow> { id: string | number; getCells: () => Array<Cell<Data>>; getValue: () => Data; } interface Cell<Data extends UniqueRow> { id: string; column: Column<Data>; getValue: () => Data[keyof Data]; rowHeader: boolean; } export declare function useTable<Data extends UniqueRow>({ columns, data, initialSortColumn, initialSortDirection, getRowId, }: TableConfig<Data>): Table<Data>; export declare function useTableLayout<Data extends UniqueRow>(columns: Array<Column<Data>>): { gridTemplateColumns: string; }; export declare function getGridTemplateFromColumns<Data extends UniqueRow>(columns: Array<Column<Data>>): string[]; export {}; //# sourceMappingURL=useTable.d.ts.map