UNPKG

dgz-ui-shared

Version:

Custom ui library using React.js, Shadcn/ui, TailwindCSS, Typescript, dgz-ui library

33 lines 1.73 kB
import { CheckedState } from '@radix-ui/react-checkbox'; /** * Props for the useDataTable hook. * @template TData - The type of the data items. */ export interface UseDataTableProps<TData> { /** Array of data rows. */ rows?: TData[]; /** Array of initially selected row keys. */ defaultSelectedRows?: TData[keyof TData][]; } /** * useDataTable manages row selection state for data tables. * Provides helpers to select all on current page, select one, and query selection. * * @template TData - Row data type. * @param rows - Current rows rendered on the page. * @param defaultSelectedRows - Pre-selected row keys. * @returns {Object} Row selection state and handlers * @returns {TData[keyof TData][] | undefined} selectedRows - Array of selected row keys * @returns {(key: TData[keyof TData]) => boolean} isRowSelected - Check if a specific row is selected * @returns {(rowKey: keyof TData) => CheckedState} isAllRowsSelected - Check selection state of all rows on current page * @returns {(rowKey: keyof TData, checked: boolean) => void} handleSelectAllRows - Toggle selection of all rows on current page * @returns {(key: TData[keyof TData], checked: boolean) => void} handleSelectRow - Toggle selection of a specific row */ export declare const useDataTable: <TData>({ rows, defaultSelectedRows, }: UseDataTableProps<TData>) => { selectedRows: TData[keyof TData][] | undefined; isRowSelected: (key: TData[keyof TData]) => boolean; isAllRowsSelected: (rowKey: keyof TData) => CheckedState; handleSelectAllRows: (rowKey: keyof TData, checked: boolean) => void; handleSelectRow: (key: TData[keyof TData], checked: boolean) => void; }; //# sourceMappingURL=useDataTable.d.ts.map