@patternfly/react-core#PaginationVariant JavaScript Examples
The following examples show how to use
@patternfly/react-core#PaginationVariant.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: TasksTables.js From tasks-frontend with Apache License 2.0 | 6 votes |
TasksTables = ({
label,
ouiaId,
items = [],
columns = [],
filters = [],
options = {},
//toolbarProps: toolbarPropsProp,
...tablePropsRest
}) => {
const { toolbarProps, tableProps } = useTableTools(items, columns, {
filters,
tableProps: tablePropsRest,
...options,
});
return (
<React.Fragment>
<PrimaryToolbar {...toolbarProps} />
<Table aria-label={label} ouiaId={ouiaId} {...tableProps}>
<TableHeader />
<TableBody />
</Table>
{/* The -1 are to combat a bug currently in the TableToolbar component */}
<TableToolbar isFooter results={-1} selected={-1}>
<Pagination
variant={PaginationVariant.bottom}
/*{...toolbarProps.pagination}*/
/>
</TableToolbar>
{/*ColumnManager && <ColumnManager />*/}
</React.Fragment>
);
}
Example #2
Source File: LogsTable.js From sed-frontend with Apache License 2.0 | 5 votes |
LogsTable = () => {
const [opened, setOpened] = useState([]);
const dispatch = useDispatch();
const logLoaded = useSelector(
({ logReducer }) => logReducer?.loaded || false
);
const rows = useSelector(({ logReducer }) => logReducer?.results || []);
const pagination = useSelector(
({ logReducer }) => ({
itemCount: logReducer?.total,
perPage: logReducer?.limit,
page:
Math.floor((logReducer?.offset || 0) / (logReducer?.limit || 0)) + 1,
}),
shallowEqual
);
useEffect(() => {
dispatch(fetchLog());
}, []);
const onCollapse = (_e, _key, isOpen, { id }) => {
setOpened(() =>
isOpen ? [...opened, id] : opened.filter((openId) => openId !== id)
);
};
const setPage = useCallback(
(_e, pageNumber) =>
dispatch(fetchLog({ page: pageNumber, perPage: pagination.perPage })),
[dispatch, pagination.perPage]
);
const setPerPage = useCallback(
(_e, perPage) => dispatch(fetchLog({ page: 1, perPage })),
[dispatch]
);
return (
<Fragment>
<PrimaryToolbar
pagination={
logLoaded ? (
{
...pagination,
onSetPage: setPage,
onPerPageSelect: setPerPage,
}
) : (
<Skeleton width="33%" />
)
}
/>
{logLoaded ? (
<Table
aria-label="Logs table"
variant={TableVariant.compact}
rows={rowsMapper(rows, opened)}
cells={columns}
onCollapse={onCollapse}
>
<TableHeader />
<TableBody />
</Table>
) : (
<SkeletonTable colSize={3} rowSize={10} />
)}
<TableToolbar isFooter>
{logLoaded ? (
<Pagination
{...pagination}
variant={PaginationVariant.bottom}
onSetPage={setPage}
onPerPageSelect={setPerPage}
/>
) : (
<Skeleton width="33%" />
)}
</TableToolbar>
</Fragment>
);
}
Example #3
Source File: filtertable.js From ibutsu-server with MIT License | 4 votes |
render() {
const {
isEmpty,
isError,
onCollapse,
onRowSelect,
onApplyFilter,
onRemoveFilter,
onClearFilters,
onApplyReport,
onSetPage,
onSetPageSize,
variant
} = this.props;
let columns = this.props.columns || [];
let rows = this.props.rows || [];
let actions = this.props.actions || [];
let filters = this.props.filters || [];
let hideFilters = this.props.hideFilters || [];
let activeFilters = this.props.activeFilters || {};
let pagination = this.props.pagination || {page: 0, pageSize: 0, totalItems: 0};
let canSelectAll = this.props.canSelectAll || false;
return (
<React.Fragment>
<Flex>
{(filters || onApplyFilter) &&
<Flex spaceItems={{default: 'spaceItemsXs'}} grow={{default: 'grow'}}>
{filters && filters.map((filter, index) => {
return (
<FlexItem key={index}>{filter}</FlexItem>
);
})}
{onApplyFilter &&
<FlexItem>
<Button onClick={onApplyFilter}>Apply Filter</Button>
</FlexItem>
}
</Flex>
}
<Flex align={{default: 'alignRight'}}>
<FlexItem>
<Pagination
perPage={pagination.pageSize}
page={pagination.page}
variant={PaginationVariant.top}
itemCount={pagination.totalItems}
onSetPage={onSetPage}
onPerPageSelect={onSetPageSize}
isCompact
/>
</FlexItem>
</Flex>
</Flex>
{Object.keys(activeFilters).length > 0 &&
<Flex style={{marginTop: "1rem"}}>
<Flex>
<FlexItem>
Active filters
</FlexItem>
</Flex>
<Flex grow={{default: 'grow'}}>
{Object.keys(activeFilters).map(key => (
<FlexItem spacer={{ default: 'spacerXs'}} key={key}>
{!hideFilters.includes(key) &&
<ChipGroup categoryName={key}>
<Chip onClick={() => onRemoveFilter(key)}>
{(typeof activeFilters[key] === 'object') &&
<React.Fragment>
<Badge isRead={true}>{activeFilters[key]['op']}</Badge>
{activeFilters[key]['val']}
</React.Fragment>
}
{(typeof activeFilters[key] !== 'object') && activeFilters[key]}
</Chip>
</ChipGroup>
}
</FlexItem>
))}
</Flex>
{onApplyReport &&
<Flex>
<FlexItem style={{marginLeft: "0.75em"}}>
<Button onClick={onApplyReport} variant="secondary">Use Active Filters in Report</Button>
</FlexItem>
</Flex>
}
</Flex>
}
<Table
cells={columns}
rows={rows}
actions={actions}
aria-label="List"
canSelectAll={canSelectAll}
onCollapse={onCollapse}
onSelect={onRowSelect}
variant={variant}
>
<TableHeader />
<TableBody />
</Table>
{isEmpty && <TableEmptyState onClearFilters={onClearFilters} />}
{isError && <TableErrorState onClearFilters={onClearFilters} />}
<Pagination
widgetId="pagination-options-menu-bottom"
perPage={pagination.pageSize}
page={pagination.page}
variant={PaginationVariant.bottom}
itemCount={pagination.totalItems}
dropDirection="up"
onSetPage={onSetPage}
onPerPageSelect={onSetPageSize}
style={{marginTop: "1rem"}}
/>
</React.Fragment>
);
}