import { Fragment, useState } from 'react'; import { Button, Toolbar, ToolbarContent, ToolbarGroup, ToolbarItem, Pagination, PageSection, MenuToggle, MenuToggleElement, Label, Select, SelectOption, PaginationVariant } from '@patternfly/react-core'; import { Table, TableText, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table'; import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon'; import { DashboardWrapper } from '@patternfly/react-table/dist/esm/demos/DashboardWrapper'; import { rows, columns } from '@patternfly/react-table/dist/esm/demos/sampleData'; export const TableStaticBottomPagination: React.FunctionComponent = () => { const [isSelectOpen, setIsSelectOpen] = useState(false); const [page, setPage] = useState(1); const [perPage, setPerPage] = useState(10); const [paginatedRows, setPaginatedRows] = useState(rows.slice(0, 10)); const handleSetPage = ( _evt: React.MouseEvent | React.KeyboardEvent | MouseEvent, newPage: number, _perPage: number, startIdx: number, endIdx: number ) => { setPaginatedRows(rows.slice(startIdx, endIdx)); setPage(newPage); }; const handlePerPageSelect = ( _evt: React.MouseEvent | React.KeyboardEvent | MouseEvent, newPerPage: number, newPage: number, startIdx: number, endIdx: number ) => { setPaginatedRows(rows.slice(startIdx, endIdx)); setPage(newPage); setPerPage(newPerPage); }; const renderPagination = (variant: PaginationVariant | 'bottom' | 'top', isCompact: boolean) => ( ); const renderLabel = (labelText: string) => { switch (labelText) { case 'Running': return ( ); case 'Stopped': return ( ); case 'Needs Maintenance': return ( ); case 'Down': return ( ); } }; const tableToolbar = ( {renderPagination('top', true)} ); return ( {tableToolbar} {columns.map((column, columnIndex) => ( ))} {paginatedRows.map((row, rowIndex) => ( ))}
{column}
{row.name} {row.threads} {row.applications} {row.workspaces} {renderLabel(row.status)} {row.location} {row.lastModified} {row.url}
{renderPagination('bottom', false)}
); };