Skip to content

Commit 44cfe88

Browse files
committed
Update pagination UI
1 parent ed30051 commit 44cfe88

File tree

2 files changed

+8
-55
lines changed

2 files changed

+8
-55
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,6 @@ build {
5555
}
5656

5757
halo {
58-
version = "2.21"
58+
version = "2.21.6"
5959
debug = true
6060
}

packages/comment-widget/src/comment-pagination.ts

Lines changed: 7 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -15,58 +15,6 @@ export class CommentPagination extends LitElement {
1515
return Math.ceil(this.total / this.size);
1616
}
1717

18-
renderPageNumbers() {
19-
const pageNumbers = [];
20-
const currentPage = this.page;
21-
const totalPageNumbersToShow = 3;
22-
let startPage: number;
23-
let endPage: number;
24-
25-
if (this.totalPages <= totalPageNumbersToShow) {
26-
startPage = 1;
27-
endPage = this.totalPages;
28-
} else {
29-
if (currentPage <= 3) {
30-
startPage = 1;
31-
endPage = totalPageNumbersToShow;
32-
} else if (currentPage + 2 >= this.totalPages) {
33-
startPage = this.totalPages - (totalPageNumbersToShow - 1);
34-
endPage = this.totalPages;
35-
} else {
36-
startPage = currentPage - 2;
37-
endPage = currentPage + 2;
38-
}
39-
}
40-
41-
if (startPage > 1) {
42-
pageNumbers.push(1);
43-
if (startPage > 2) pageNumbers.push('...');
44-
}
45-
46-
for (let i = startPage; i <= endPage; i++) {
47-
pageNumbers.push(i);
48-
}
49-
50-
if (endPage < this.totalPages) {
51-
if (endPage < this.totalPages - 1) pageNumbers.push('...');
52-
pageNumbers.push(this.totalPages);
53-
}
54-
55-
return pageNumbers.map((number) => {
56-
if (number === '...') {
57-
return html`<li class="px-3.5 inline-flex items-center justify-center">
58-
<i class="i-tabler:dots size-4" aria-hidden="true"></i>
59-
</li>`;
60-
} else {
61-
return html`<li>
62-
<button class="pagination-button px-3.5 ${this.page === number ? 'bg-muted-3' : ''}" @click=${() => this.gotoPage(number)} ?disabled=${number === this.page}>
63-
${number}
64-
</button>
65-
</li>`;
66-
}
67-
});
68-
}
69-
7018
gotoPage(page: number | string) {
7119
if (page !== this.page) {
7220
this.dispatchEvent(
@@ -81,7 +29,7 @@ export class CommentPagination extends LitElement {
8129

8230
override render() {
8331
return html`
84-
<ul class="pagination flex items-center gap-2" role="navigation">
32+
<ul class="pagination flex items-center gap-4" role="navigation">
8533
<li>
8634
<button
8735
rel="prev"
@@ -94,7 +42,12 @@ export class CommentPagination extends LitElement {
9442
${msg('Previous')}
9543
</button>
9644
</li>
97-
${this.renderPageNumbers()}
45+
<li class="inline-flex items-center gap-1 text-sm text-text-3 hover:text-text-1 transition-all">
46+
<select name="pagination-value" id="pagination-value" class="pagination-select appearance-none outline-none bg-transparent" @change=${(e: Event) => this.gotoPage((e.target as HTMLSelectElement).value)}>
47+
${Array.from({ length: this.totalPages }, (_, i) => i + 1).map((page) => html`<option .selected=${page === this.page} value=${page}>${page} / ${this.totalPages}</option>`)}
48+
</select>
49+
<i class="i-tabler:chevron-down size-4" aria-hidden="true"></i>
50+
</li>
9851
<li>
9952
<button
10053
rel="next"

0 commit comments

Comments
 (0)