UNPKG

@appbuckets/react-ui

Version:
47 lines (46 loc) 1.48 kB
import * as React from 'react'; export interface UseDataSelectorConfig<Data> { /** A default selected data */ defaultSelectedData?: Data[]; /** Get row Key Function */ getRowKey: | keyof Data | ((row: Data, index: number, array: Data[]) => React.Key); /** An handler to call when selected data change */ onSelectedDataChange?: (selected: Data[]) => void; /** Set if selector is disabled */ selectable?: boolean; } declare type UserDataSelectorConfigAndData<Data> = UseDataSelectorConfig<Data> & { /** All Data List */ allData: Data[]; /** Filtered Data Slice */ filteredData: Data[]; }; export interface DataSelector<Data> { /** Check if all rows are selected */ areAllRowsSelected: boolean; /** Deselect all rows */ deselectAllRows: () => void; /** Deselect one or more rows */ deselectRow: (...rows: Data[]) => void; /** Get the key of a row */ getRowKey: (row: Data, index: number, array: Data[]) => React.Key; /** Check if a row is selected */ isRowSelected: (row: Data) => boolean; /** Select all rows */ selectAllRows: () => void; /** Count of selected rows */ selectedCount: number; /** Selected Data Array */ selectedData: Data[]; /** Select one or more rows */ selectRow: (...rows: Data[]) => void; /** Toggle a row */ toggleSelectRow: (row: Data) => void; } export default function useDataSelector<Data>( config: UserDataSelectorConfigAndData<Data> ): DataSelector<Data>; export {};