UNPKG

@cmk/fe_utils

Version:
75 lines (73 loc) 2.48 kB
import { KeyboardEvent, ChangeEvent } from 'react'; import { GenericFilterType, GenericFilterValueType } from './types'; export type TableUiType = { searchValue: string; searchParam: string; pageNumber: number; itemsPerPage: number; filters: GenericFilterType[]; }; export type TableHookProps = { onStartLoading?: () => void; onFetch: (url: string, srcUrl?: string) => void; url: string; externalFilters?: { filterKey: string; value: GenericFilterValueType; }[]; initial?: { filters?: { filterKey: string; value: GenericFilterValueType; }[]; searchParam?: string; pageNumber?: number; itemsPerPage?: number; }; onUpdateTableParams?: (newValue: { filters: { filterKey: string; value: GenericFilterValueType; }[]; searchParam: string; pageNumber: number; itemsPerPage: number; }) => void; onChangeItemsPerPage?: (newvalue: number) => void; itemsPerPageStorageKey?: string; preprocessFilters?: (filtersIn: { filterKey: string; value: GenericFilterValueType; }[]) => { filterKey: string; value: GenericFilterValueType; }[]; postprocessFilters?: (filtersIn: { filterKey: string; value: GenericFilterValueType; }[]) => { filterKey: string; value: GenericFilterValueType; }[]; searchValue?: string; isUnpaginated?: boolean; disablePagination?: boolean; scrollContainerId?: string; }; export declare const useTableUi: (props: TableHookProps) => { tableUi: TableUiType; setTableUi: import('react').Dispatch<import('react').SetStateAction<TableUiType>>; handleSeachChange: (e: ChangeEvent<HTMLInputElement>) => void; handleSeachParamChange: (e: ChangeEvent<HTMLInputElement>) => void; handleSearchKeyUp: (e: KeyboardEvent<HTMLInputElement> & ChangeEvent<HTMLInputElement>) => void; clearFilters: () => void; setFilters: (newValue: ((current: GenericFilterType[]) => GenericFilterType[]) | GenericFilterType[]) => void; updateData: () => Promise<void>; changePageNumber: (newValue: ((current: number) => number) | number) => void; changeItemsPerPage: (newValue: ((current: number) => number) | number) => void; UrlParams: { fullUrl: string; paramsString: string; unpaginatedParamsString: string; }; };