import { Fragment, useState } from 'react'; import { Button, MenuToggle, MenuToggleElement, Pagination, PageSection, Select, SelectOption, Toolbar, ToolbarContent, ToolbarGroup, ToolbarItem, Label, 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 { rows, columns } from '@patternfly/react-table/dist/esm/demos/sampleData'; import { DashboardWrapper } from '@patternfly/react-table/dist/esm/demos/DashboardWrapper'; export const TableCompact: 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: string, isCompact: boolean) => ( ); const tableToolbar = ( {renderPagination('top', true)} ); const renderLabel = (labelText: string) => { switch (labelText) { case 'Running': return ; case 'Stopped': return ; case 'Needs Maintenance': return ; case 'Down': return ; default: return <>; } }; return ( {tableToolbar} {paginatedRows.map((row, rowIndex) => ( <> ))}
{columns[0]} {columns[1]} {columns[2]} {columns[3]} {columns[4]} {columns[5]} {columns[6]} {columns[7]}
{row.name} {row.threads} {row.applications} {row.workspaces} {renderLabel(row.status)} {row.location} {row.lastModified} {row.url}
); };