@stanfordspezi/spezi-web-design-system
Version:
Stanford Biodesign Digital Health Spezi Web Design System
41 lines (40 loc) • 1.42 kB
TypeScript
import { RankingInfo } from '@tanstack/match-sorter-utils';
import { FilterFn } from '@tanstack/react-table';
import { TableOptions } from '@tanstack/table-core';
import { PartialSome } from '../../utils/misc';
declare module "@tanstack/react-table" {
interface FilterFns {
fuzzy: FilterFn<unknown>;
}
interface FilterMeta {
itemRank: RankingInfo;
}
}
/**
* Default fuzzyFilter implementation, used for global text filtering.
*/
export declare const fuzzyFilter: FilterFn<unknown>;
export interface UseDataTableProps<Data> extends PartialSome<TableOptions<Data>, "getCoreRowModel" | "filterFns"> {
/**
* Defines how many items are displayed per one page.
*
* @default 50
*/
pageSize?: number;
}
/**
* Composes useReactTable usage, contains core data table logic.
*/
export declare const useDataTable: <Data>({ columns, data, pageSize, state, initialState, ...props }: UseDataTableProps<Data>) => {
globalFilter: string;
setGlobalFilter: import('react').Dispatch<import('react').SetStateAction<string>>;
setGlobalFilterDebounced: import('use-debounce').DebouncedState<(value: string) => void>;
table: import('@tanstack/table-core').Table<Data>;
rows: import('@tanstack/table-core').Row<Data>[];
emptyProps: {
show: boolean;
textFilter: string | undefined;
hasFilters: boolean;
};
isEmpty: boolean;
};