Added missing PaginationOptions and remote search option (#44046)

This commit is contained in:
Valentin 2020-04-26 18:25:27 +02:00 committed by GitHub
parent 01d7b1a5d2
commit 588fd7187f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,6 +1,7 @@
// Type definitions for react-bootstrap-table-next 4.0
// Project: https://github.com/react-bootstrap-table/react-bootstrap-table2#readme
// Definitions by: Wlad Meixner <https://github.com/gosticks>
// Valentin Slobozanin <https://github.com/ignefolio>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 3.0
@ -262,6 +263,10 @@ export type PaginationOptions = Partial<{
* hide pagination bar when only one page, default is false
*/
hidePageListOnlyOnePage: boolean;
/**
* custom page button inside the pagination list
*/
pageButtonRenderer: (options: PageButtonRendererOptions) => JSX.Element;
/**
* callback function when page was changing
*/
@ -270,12 +275,88 @@ export type PaginationOptions = Partial<{
* callback function when page size was changing
*/
onSizePerPageChange: (page: number, sizePerPage: number) => void;
/**
* custom pagination list component
*/
pageListRenderer: (options: PageListRendererOptions) => JSX.Element;
/**
* custom size per page
*/
sizePerPageRenderer: (options: SizePerPageRendererOptions) => JSX.Element;
/**
* custom size per page dropdown component
*/
sizePerPageOptionRenderer: (options: SizePerPageOptionRendererOptions) => JSX.Element;
/**
* custom the pagination total
*/
paginationTotalRenderer: (from: number, to: number, size: number) => JSX.Element;
}>;
export interface SizePerPageOptionRendererOptions {
/**
* text of the option
*/
text: string;
/**
* size of per page option
*/
page: number;
/**
* call it when you need to change size per page
*/
onSizePerPageChange: (page: number, sizePerPage: number) => void;
}
export interface PageListRendererOptions {
/**
* current page
*/
pages: Array<{ active: boolean; disabled: boolean; page: number; title: string }>;
/**
* call it when you need to change page
*/
onPageChange: (page: number, sizePerPage: number) => void;
}
export interface PageButtonRendererOptions {
/**
* page number
*/
page: number | string;
/**
* is this page the current page or not
*/
active: boolean;
/**
* is this page disabled or not
*/
disabled: boolean;
/**
* page title
*/
title: string;
/**
* call it when you need to change page
*/
onPageChange: (page: number, sizePerPage: number) => void;
}
export interface SizePerPageRendererOptions {
/**
* dropdown options
*/
options: Array<{ text: string; value: number }>;
/**
* current size per page
*/
currentSizePerPage: number;
/**
* call it when you need to change size per page
*/
onSizePerPageChange: (page: number, sizePerPage: number) => void;
}
export interface SelectRowProps<T> {
mode: RowSelectionType;
clickToSelect?: boolean;
@ -352,7 +433,7 @@ export interface BootstrapTableProps<T extends object = any> {
data: any[];
columns: ColumnDescription[];
bootstrap4?: boolean;
remote?: boolean | Partial<{ pagination: boolean; filter: boolean; sort: boolean; cellEdit: boolean }>;
remote?: boolean | Partial<{ pagination: boolean; filter: boolean; sort: boolean; cellEdit: boolean; search: boolean }>;
noDataIndication?: () => JSX.Element | JSX.Element | string;
striped?: boolean;
bordered?: boolean;