in frontend/src/common/components/pagination/pagination.tsx [56:149]
buildPages() {
const pages = [];
const {
itemsCountPerPage,
pageRangeDisplayed,
activePage,
prevPageText,
nextPageText,
firstPageText,
lastPageText,
totalItemsCount,
onChange,
hideFirstLastPages,
} = this.props;
const paginationInfo : any = new paginator(
itemsCountPerPage,
pageRangeDisplayed
).build(totalItemsCount, activePage);
const buttonStyles = {
root: style.button,
raisedPrimary: style.primary,
};
for (
let i = paginationInfo.first_page;
i <= paginationInfo.last_page;
i++
) {
pages.push(
<Page
classes={buttonStyles}
isActive={i === activePage}
key={i}
pageNumber={i}
pageText={i + ""}
onClick={onChange}
/>
);
}
this.isPrevPageVisible(paginationInfo.has_previous_page) &&
pages.unshift(
<Page
classes={buttonStyles}
key={"prev" + paginationInfo.previous_page}
pageNumber={paginationInfo.previous_page}
onClick={onChange}
pageText={prevPageText}
isDisabled={!paginationInfo.has_previous_page}
/>
);
this.isFirstPageVisible(paginationInfo.has_previous_page) &&
pages.unshift(
<Page
classes={buttonStyles}
key={"first"}
pageNumber={1}
onClick={onChange}
pageText={firstPageText}
isDisabled={!paginationInfo.has_previous_page}
/>
);
this.isNextPageVisible(paginationInfo.has_next_page) &&
pages.push(
<Page
classes={buttonStyles}
key={"next" + paginationInfo.next_page}
pageNumber={paginationInfo.next_page}
onClick={onChange}
pageText={nextPageText}
isDisabled={!paginationInfo.has_next_page}
/>
);
this.isLastPageVisible(paginationInfo.has_next_page) &&
pages.push(
<Page
classes={buttonStyles}
key={"last"}
pageNumber={paginationInfo.total_pages}
onClick={onChange}
pageText={lastPageText}
isDisabled={
paginationInfo.current_page === paginationInfo.total_pages
}
/>
);
return pages;
}