@@ -15,58 +15,6 @@ export class CommentPagination extends LitElement {
15
15
return Math . ceil ( this . total / this . size ) ;
16
16
}
17
17
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
- <butto n class= "pagination-button px-3.5 ${ this . page === number ? 'bg-muted-3' : '' } " @click = ${ ( ) => this . gotoPage ( number ) } ?dis abled= ${ number === this . page } >
63
- ${ number }
64
- </ butto n>
65
- </ li> ` ;
66
- }
67
- } ) ;
68
- }
69
-
70
18
gotoPage ( page : number | string ) {
71
19
if ( page !== this . page ) {
72
20
this . dispatchEvent (
@@ -81,7 +29,7 @@ export class CommentPagination extends LitElement {
81
29
82
30
override render ( ) {
83
31
return html `
84
- <ul class= "pagination flex items-center gap-2 " role = "navigation">
32
+ <ul class= "pagination flex items-center gap-4 " role = "navigation" >
85
33
<li>
86
34
<butto n
87
35
rel= "prev"
@@ -94,7 +42,12 @@ export class CommentPagination extends LitElement {
94
42
${ msg ( 'Previous' ) }
95
43
</ butto n>
96
44
</ 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>
98
51
<li>
99
52
<butto n
100
53
rel= "next"
0 commit comments