Skip to content

Commit 4a8f444

Browse files
committed
58
1 parent 1738f0a commit 4a8f444

File tree

2 files changed

+26
-13
lines changed

2 files changed

+26
-13
lines changed

src/components/BlogList.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const BlogList = ({ isAdmin }) => {
1313
const [currentPage, setCurrentPage] = useState(1);
1414
const [numberOfPosts, setNumberOfPosts] = useState(0);
1515
const [numberOfPages, setNumberOfPages] = useState(0);
16-
const limit = 5;
16+
const limit = 1;
1717

1818
useEffect(() => {
1919
setNumberOfPages(Math.ceil(numberOfPosts/limit));

src/components/Pagination.js

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
11
import propTypes from "prop-types";
22

3-
const Pagination = ({ currentPage, numberOfPages, onClick }) => {
3+
const Pagination = ({ currentPage, numberOfPages, onClick, limit }) => {
4+
const currentSet = Math.ceil(currentPage/limit);
5+
const lastSet = Math.ceil(numberOfPages/limit);
6+
const startPage = limit * (currentSet - 1) + 1;
7+
const numberOfPageForSet = currentSet === lastSet ? numberOfPages%limit : limit
48
return (
59
<nav aria-label="Page navigation example">
610
<ul className="pagination justify-content-center">
7-
<li className="page-item disabled">
8-
<a className="page-link" href="#">
11+
{currentSet !== 1 && <li className="page-item">
12+
<div
13+
className="page-link cursor-pointer" href="#"
14+
onClick={() => onClick(startPage - limit)}
15+
>
916
Previous
10-
</a>
11-
</li>
12-
{Array(numberOfPages).fill(1).map((value, index) => value + index)
17+
</div>
18+
</li>}
19+
{Array(numberOfPageForSet).fill(startPage)
20+
.map((value, index) => value + index)
1321
.map((pageNumber) => {
1422
return <li
1523
key={pageNumber}
@@ -25,11 +33,14 @@ const Pagination = ({ currentPage, numberOfPages, onClick }) => {
2533
</div>
2634
</li>
2735
})}
28-
<li className="page-item">
29-
<a className="page-link" href="#">
36+
{currentSet !== lastSet && <li className="page-item">
37+
<div
38+
className="page-link cursor-pointer" href="#"
39+
onClick={() => onClick(startPage + limit)}
40+
>
3041
Next
31-
</a>
32-
</li>
42+
</div>
43+
</li>}
3344
</ul>
3445
</nav>
3546
)
@@ -38,11 +49,13 @@ const Pagination = ({ currentPage, numberOfPages, onClick }) => {
3849
Pagination.propTypes = {
3950
currentPage: propTypes.number,
4051
numberOfPages: propTypes.number.isRequired,
41-
onClick: propTypes.func.isRequired
52+
onClick: propTypes.func.isRequired,
53+
limit: propTypes.number
4254
}
4355

4456
Pagination.defaultProps = {
45-
currentPage: 1
57+
currentPage: 1,
58+
limit: 5
4659
}
4760

4861
export default Pagination;

0 commit comments

Comments
 (0)