import { Fragment, useState } from 'react'; import { Button, Content, ContentVariants, DataList, DataListItem, DataListCell, DataListItemRow, DataListItemCells, Flex, FlexItem, Icon, MenuToggle, MenuToggleCheckbox, OverflowMenu, OverflowMenuControl, OverflowMenuItem, PageSection, Pagination, Toolbar, ToolbarItem, ToolbarContent, PaginationVariant } from '@patternfly/react-core'; import RhUiEllipsisVerticalFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-ellipsis-vertical-fill-icon'; import { DashboardWrapper } from '@patternfly/react-core/dist/js/demos/DashboardWrapper'; import RhUiCodeIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-code-icon'; import RhUiBranchFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-branch-fill-icon'; import CubeIcon from '@patternfly/react-icons/dist/esm/icons/cube-icon'; import { rows } from '@patternfly/react-core/dist/esm/demos/sampleData'; export const DataListStaticBottomPagination: React.FunctionComponent = () => { 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 | undefined, startIdx: number | undefined, endIdx: number | undefined ) => { setPaginatedRows(rows?.slice(startIdx, endIdx)); setPage(newPage); }; const handlePerPageSelect = ( _evt: React.MouseEvent | React.KeyboardEvent | MouseEvent, newPerPage: number, newPage: number | undefined, startIdx: number | undefined, endIdx: number | undefined ) => { setPaginatedRows(rows.slice(startIdx, endIdx)); setPage(newPage); setPerPage(newPerPage); }; const renderPagination = (variant: PaginationVariant, isCompact: boolean, isSticky: boolean, isStatic: boolean) => ( ); const toolbarItems = ( ]} > Filter by creator name {renderPagination(PaginationVariant.top, true, false, false)} ); return ( Projects This is a demo that showcases PatternFly Data List {toolbarItems} {paginatedRows.map((row, rowIndex) => { const { name, threads, applications, workspaces, lastModified } = row; return ( {name} Working repo for PatternFly {' '} {threads} Branches {' '} {applications} Code blocks {' '} {workspaces} Workspaces Updated {lastModified} , Link ]} /> ); })} {renderPagination(PaginationVariant.bottom, false, false, true)} ); };