@teamsnap/teamsnap-ui
Version:
a CSS component library for TeamSnap
43 lines (42 loc) • 1.14 kB
TypeScript
import * as React from "react";
import { Placement } from "../../../utils/placement";
interface LoadDataObject {
page: number;
itemsPerPage: number;
sortBy?: string;
sortAsc?: boolean;
filter?: object;
}
interface BulkAction {
label: string;
onSelected: (selected: any) => void;
disabled?: boolean;
}
interface Props {
loadData: (requestedPayload: LoadDataObject) => Promise<any[]>;
columns: {
name: string;
label: string | React.ReactElement;
isSortable?: boolean;
align?: string;
mods?: string;
}[];
mapDataToRow: (item: any, index: number) => {
id: any;
};
defaultPage?: number;
defaultItemsPerPage?: number;
totalItems: number;
hideRowsSelect?: boolean;
rowsAreSelectable?: boolean;
bulkActions?: BulkAction[];
customFilter?: object;
customSearchFilter?: any;
includeBasicSearch?: boolean;
searchPlaceholder?: string;
paginationPlacement?: Placement;
}
declare const PaginatedTable: React.FunctionComponent<Props> & {
PaginationPlacement: typeof Placement;
};
export default PaginatedTable;