UNPKG

@ansible/ansible-ui-framework

Version:

A framework for building applications using PatternFly.

37 lines (36 loc) 1.33 kB
import { Dispatch, SetStateAction } from 'react'; import { ITableColumn } from './PageTable/PageTableColumn'; import { IFilterState, IToolbarFilter } from './PageToolbar/PageToolbarFilter'; export interface IView { page: number; setPage: (page: number) => void; perPage: number; setPerPage: (perPage: number) => void; sort: string; setSort: (sort: string) => void; sortDirection: 'asc' | 'desc'; setSortDirection: (sortDirection: 'asc' | 'desc') => void; filterState: IFilterState; setFilterState: Dispatch<SetStateAction<IFilterState>>; clearAllFilters: () => void; } export interface ViewOptions { defaultValues?: Partial<Pick<IView, 'filterState' | 'sort' | 'sortDirection'>> | undefined; disableQueryString?: boolean; ignoreQueryStringKeys?: string[]; filterQueryStringKeys?: string[]; } export type QueryParams = { [key: string]: string | string[]; }; export interface ViewExtendedOptions<T extends object> extends ViewOptions { url: string; keyFn: (item: T) => string | number; toolbarFilters?: IToolbarFilter[]; tableColumns?: ITableColumn<T>[]; disableQueryString?: boolean; queryParams?: QueryParams; sortKey?: string; defaultFilters?: Record<string, string[]>; } export declare function useView(options: ViewOptions): IView;