diff --git a/webui/src/components/table/DataGrid.tsx b/webui/src/components/table/DataGrid.tsx index 812fcc2..1ebb23e 100644 --- a/webui/src/components/table/DataGrid.tsx +++ b/webui/src/components/table/DataGrid.tsx @@ -793,13 +793,28 @@ export default function DataGrid({ } -function DataGridPaginationBar({ +export type DataGridPaginationBarProps = { + page: number; + pageSize: number; + totalRows: number; + pageCount?: number; + pageSizeOptions?: number[]; + disabled?: boolean; + className?: string; + ariaLabel?: string; + onPageChange: (page: number) => void; + onPageSizeChange?: (pageSize: number) => void; +}; + +export function DataGridPaginationBar({ page, pageSize, totalRows, - pageCount, - pageSizeOptions, + pageCount = Math.max(1, Math.ceil(totalRows / pageSize)), + pageSizeOptions = [10, 25, 50, 100], disabled = false, + className = "", + ariaLabel = "i18n:govoplan-core.table_pagination.3665bd76", onPageChange, onPageSizeChange @@ -811,13 +826,13 @@ function DataGridPaginationBar({ -}: {page: number;pageSize: number;totalRows: number;pageCount: number;pageSizeOptions: number[];disabled?: boolean;onPageChange: (page: number) => void;onPageSizeChange?: (pageSize: number) => void;}) { +}: DataGridPaginationBarProps) { const first = totalRows === 0 ? 0 : (page - 1) * pageSize + 1; const last = Math.min(totalRows, page * pageSize); const options = [...new Set([...pageSizeOptions, pageSize])].filter((value) => value > 0).sort((a, b) => a - b); const { translateText } = usePlatformLanguage(); return ( -
+
{first}–{last} {translateText("i18n:govoplan-core.of")} {totalRows}