pagamio-frontend-commons-lib
Version:
Pagamio library for Frontend reusable components like the form engine and table container
45 lines (44 loc) • 1.84 kB
TypeScript
import { type MRT_Row, type MRT_TableInstance } from 'mantine-react-table';
import React from 'react';
import type { CoreTableColumnDef, SortConfig } from './types';
type CoreTableProps<T extends {
id: string | number;
}> = {
columns: CoreTableColumnDef<T>[];
isLoading?: boolean;
data: T[];
sortable?: boolean;
multiSorting: boolean;
sortConfig?: SortConfig | null;
onSort?: (sortKey: string, sortDirection: 'asc' | 'desc') => void;
setSortBy?: (sortKey: string) => void;
setSortDir?: (sortDir: string) => void;
selectable?: boolean;
selectedRows?: (string | number)[];
onSelectRow?: (id: string | number) => void;
onSelectAll?: (selected: boolean) => void;
enablePagination?: boolean;
enableGlobalFilters?: boolean;
enableManualSorting?: boolean;
enableManualPagination?: boolean;
expandable?: boolean;
onRowClick?: (row: T) => void;
rowClassName?: string;
renderExpandableComponent?: (props: {
row: MRT_Row<T>;
table: MRT_TableInstance<T>;
}) => React.ReactNode;
pagination?: {
enabled: boolean;
pageIndex: number;
pageSize: number;
itemsPerPage: number;
itemsPerPageOptions?: number[];
onPageChange: (page: number) => void;
onPaginationChange: (index: number, size: number) => void;
};
};
declare const CoreTable: <T extends {
id: string | number;
}>({ columns, isLoading, data, sortable, sortConfig, onSort, selectable, selectedRows, onSelectRow, onSelectAll, enablePagination, expandable, renderExpandableComponent, pagination, enableGlobalFilters, enableManualSorting, enableManualPagination, multiSorting, setSortBy, setSortDir, onRowClick, rowClassName, ...props }: CoreTableProps<T>) => import("react/jsx-runtime").JSX.Element;
export default CoreTable;