Skip to content

Commit b0fb965

Browse files
gleknerjeff-phillips-18
authored andcommitted
feat(Paginator): Add disableNext,disablePrev Props (#1928)
1 parent 580ace7 commit b0fb965

File tree

4 files changed

+50
-14
lines changed

4 files changed

+50
-14
lines changed

packages/patternfly-3/patternfly-react/src/components/Pagination/PaginationRow.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ const PaginationRow = ({
3535
onPreviousPage,
3636
onPageInput,
3737
onNextPage,
38-
onLastPage
38+
onLastPage,
39+
disableNext,
40+
disablePrev
3941
}) => {
4042
const { page, perPage, perPageOptions = [] } = pagination;
4143
const classes = classNames(baseClassName, className, {
@@ -83,6 +85,7 @@ const PaginationRow = ({
8385
messagesPreviousPage={messages.previousPage}
8486
onFirstPage={onFirstPage}
8587
onPreviousPage={onPreviousPage}
88+
disable={disablePrev}
8689
/>
8790

8891
<ControlLabel className="sr-only">{messages.currentPage}</ControlLabel>
@@ -97,6 +100,7 @@ const PaginationRow = ({
97100
messagesLastPage={messages.lastPage}
98101
onNextPage={onNextPage}
99102
onLastPage={onLastPage}
103+
disable={disableNext}
100104
/>
101105
</FormGroup>
102106
</Form>
@@ -154,7 +158,11 @@ PaginationRow.propTypes = {
154158
/** next page callback */
155159
onNextPage: PropTypes.func,
156160
/** last page callback */
157-
onLastPage: PropTypes.func
161+
onLastPage: PropTypes.func,
162+
/** disable next page */
163+
disableNext: PropTypes.bool,
164+
/** disable previous page */
165+
disablePrev: PropTypes.bool
158166
};
159167
PaginationRow.defaultProps = {
160168
baseClassName: 'content-view-pf-pagination',
@@ -177,7 +185,9 @@ PaginationRow.defaultProps = {
177185
onPageInput: noop,
178186
onNextPage: noop,
179187
onLastPage: noop,
180-
dropdownButtonId: 'pagination-row-dropdown'
188+
dropdownButtonId: 'pagination-row-dropdown',
189+
disableNext: false,
190+
disablePrev: false
181191
};
182192

183193
PaginationRow.AmountOfPages = PaginationRowAmountOfPages;

packages/patternfly-3/patternfly-react/src/components/Pagination/PaginationRowBack.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@ const PaginationRowBack = ({
1414
messagesPreviousPage,
1515
onFirstPage,
1616
onPreviousPage,
17+
disable,
1718
...props
1819
}) => {
1920
const classes = classNames('pagination', 'pagination-pf-back', className);
2021
return (
2122
<ul className={classes} {...props}>
22-
<li className={page === 1 ? 'disabled' : ''}>
23+
<li className={page === 1 || disable ? 'disabled' : ''}>
2324
<a
2425
href="#"
2526
title={messagesFirstPage}
@@ -33,7 +34,7 @@ const PaginationRowBack = ({
3334
<PaginationRowArrowIcon name="double-left" />
3435
</a>
3536
</li>
36-
<li className={page === 1 ? 'disabled' : ''}>
37+
<li className={page === 1 || disable ? 'disabled' : ''}>
3738
<a
3839
href="#"
3940
title={messagesPreviousPage}
@@ -62,11 +63,14 @@ PaginationRowBack.propTypes = {
6263
/** first page callback */
6364
onFirstPage: PropTypes.func,
6465
/** previous page selection callback */
65-
onPreviousPage: PropTypes.func
66+
onPreviousPage: PropTypes.func,
67+
/** disable back button */
68+
disable: PropTypes.bool
6669
};
6770
PaginationRowBack.defaultProps = {
6871
className: '',
6972
onFirstPage: noop,
70-
onPreviousPage: noop
73+
onPreviousPage: noop,
74+
disable: false
7175
};
7276
export default PaginationRowBack;

packages/patternfly-3/patternfly-react/src/components/Pagination/PaginationRowForward.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,13 @@ const PaginationRowForward = ({
1515
messagesLastPage,
1616
onNextPage,
1717
onLastPage,
18+
disable,
1819
...props
1920
}) => {
2021
const classes = classNames('pagination', 'pagination-pf-forward', className);
2122
return (
2223
<ul className={classes}>
23-
<li className={page === amountOfPages ? 'disabled' : ''}>
24+
<li className={page === amountOfPages || disable ? 'disabled' : ''}>
2425
<a
2526
href="#"
2627
title={messagesNextPage}
@@ -34,7 +35,7 @@ const PaginationRowForward = ({
3435
<PaginationRowArrowIcon name="right" />
3536
</a>
3637
</li>
37-
<li className={page === amountOfPages ? 'disabled' : ''}>
38+
<li className={page === amountOfPages || disable ? 'disabled' : ''}>
3839
<a
3940
href="#"
4041
title={messagesLastPage}
@@ -65,11 +66,14 @@ PaginationRowForward.propTypes = {
6566
/** next page callback */
6667
onNextPage: PropTypes.func,
6768
/** last page callback */
68-
onLastPage: PropTypes.func
69+
onLastPage: PropTypes.func,
70+
/** disable next button */
71+
disable: PropTypes.bool
6972
};
7073
PaginationRowForward.defaultProps = {
7174
className: '',
7275
onNextPage: noop,
73-
onLastPage: noop
76+
onLastPage: noop,
77+
disable: false
7478
};
7579
export default PaginationRowForward;

packages/patternfly-3/patternfly-react/src/components/Pagination/Paginator.js

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,17 @@ class Paginator extends React.Component {
6161
render() {
6262
const { pageChangeValue } = this.state;
6363

64-
const { className, viewType, itemCount, messages, dropdownButtonId, onPerPageSelect, pagination } = this.props;
64+
const {
65+
className,
66+
viewType,
67+
itemCount,
68+
messages,
69+
dropdownButtonId,
70+
onPerPageSelect,
71+
pagination,
72+
disableNext,
73+
disablePrev
74+
} = this.props;
6575

6676
const itemsStart = (this.currentPage - 1) * this.perPage + 1;
6777
const itemsEnd = Math.min(itemsStart + this.perPage - 1, this.itemCount);
@@ -86,6 +96,8 @@ class Paginator extends React.Component {
8696
onPageInput={e => this.handlePageChange(e)}
8797
onNextPage={() => this.setPageRelative(1)}
8898
onLastPage={() => this.setPage(totalPages)}
99+
disableNext={disableNext}
100+
disablePrev={disablePrev}
89101
/>
90102
);
91103
}
@@ -121,7 +133,11 @@ Paginator.propTypes = {
121133
/** A callback triggered when a page is switched */
122134
onPageSet: PropTypes.func,
123135
/** per page selection callback */
124-
onPerPageSelect: PropTypes.func
136+
onPerPageSelect: PropTypes.func,
137+
/** disable next page */
138+
disableNext: PropTypes.bool,
139+
/** disable previous page */
140+
disablePrev: PropTypes.bool
125141
};
126142
Paginator.defaultProps = {
127143
className: '',
@@ -136,7 +152,9 @@ Paginator.defaultProps = {
136152
},
137153
dropdownButtonId: 'pagination-row-dropdown',
138154
onPerPageSelect: noop,
139-
onPageSet: noop
155+
onPageSet: noop,
156+
disableNext: false,
157+
disablePrev: false
140158
};
141159

142160
export default Paginator;

0 commit comments

Comments
 (0)