@material-ui/core
Version:
React components that implement Google's Material Design.
89 lines (81 loc) • 2.99 kB
TypeScript
import * as React from 'react';
import { OverridableComponent, OverrideProps } from '../OverridableComponent';
import { Omit } from '@material-ui/types';
import { TablePaginationActionsProps } from './TablePaginationActions';
import { TableCellProps } from '../TableCell';
import { IconButtonProps } from '../IconButton';
import { SelectProps } from '../Select';
export interface LabelDisplayedRowsArgs {
from: number;
to: number;
count: number;
page: number;
}
export interface TablePaginationTypeMap<P, D extends React.ElementType> {
props: P &
TablePaginationBaseProps & {
ActionsComponent?: React.ElementType<TablePaginationActionsProps>;
backIconButtonText?: string;
backIconButtonProps?: Partial<IconButtonProps>;
count: number;
labelDisplayedRows?: (paginationInfo: LabelDisplayedRowsArgs) => React.ReactNode;
labelRowsPerPage?: React.ReactNode;
nextIconButtonProps?: Partial<IconButtonProps>;
nextIconButtonText?: string;
/**
* Callback fired when the page is changed.
*
* @param {object} event The event source of the callback.
* @param {number} page The page selected.
* @deprecated Use the onPageChange prop instead.
*/
onChangePage?: (event: React.MouseEvent<HTMLButtonElement> | null, page: number) => void;
onPageChange: (event: React.MouseEvent<HTMLButtonElement> | null, page: number) => void;
/**
* Callback fired when the number of rows per page is changed.
*
* @param {object} event The event source of the callback.
* @deprecated Use the onRowsPerPageChange prop instead.
*/
onChangeRowsPerPage?: React.ChangeEventHandler<HTMLTextAreaElement | HTMLInputElement>;
onRowsPerPageChange?: React.ChangeEventHandler<HTMLTextAreaElement | HTMLInputElement>;
page: number;
rowsPerPage: number;
rowsPerPageOptions?: Array<number | { value: number; label: string }>;
SelectProps?: Partial<SelectProps>;
};
defaultComponent: D;
classKey: TablePaginationClassKey;
}
/**
* A `TableCell` based component for placing inside `TableFooter` for pagination.
* Demos:
*
* - [Tables](https://mui.com/components/tables/)
*
* API:
*
* - [TablePagination API](https://mui.com/api/table-pagination/)
* - inherits [TableCell API](https://mui.com/api/table-cell/)
*/
declare const TablePagination: OverridableComponent<TablePaginationTypeMap<
{},
React.ComponentType<TablePaginationBaseProps>
>>;
export type TablePaginationClassKey =
| 'root'
| 'toolbar'
| 'spacer'
| 'menuItem'
| 'caption'
| 'input'
| 'selectRoot'
| 'select'
| 'selectIcon'
| 'actions';
export type TablePaginationBaseProps = Omit<TableCellProps, 'classes' | 'component'>;
export type TablePaginationProps<
D extends React.ElementType = React.ComponentType<TablePaginationBaseProps>,
P = {}
> = OverrideProps<TablePaginationTypeMap<P, D>, D>;
export default TablePagination;