@@ -100,122 +100,64 @@ export const Pagination = component$<PaginationProps>(
100
100
} ) ;
101
101
102
102
return (
103
- < >
104
- < div style = { { display : 'flex' , alignItems : 'center' , gap : gap } } >
105
- { /* PREV BUTTON */ }
106
- < button
107
- type = "button"
108
- aria-label = { 'prevAriaLabel' }
109
- disabled = { selectedPage <= 1 }
110
- onClick$ = { ( ) => {
111
- if ( selectedPage > 1 ) {
112
- onPageChange$ ( selectedPage - 1 ) ;
113
- }
114
- } }
115
- >
116
- < Slot name = "prefix" />
117
- < span > PREV</ span >
118
- </ button >
119
-
120
- { visibleItems . value . map ( ( item : string | number , index : number ) => {
121
- return (
122
- < span key = { index } >
123
- { typeof item === 'string' ? (
124
- < button class = { dividerClass } > ...</ button >
125
- ) : (
126
- < button
127
- class = { [ selectedPage === item ? selectedClass : defaultClass ] }
128
- type = "button"
129
- aria-label = { `Page ${ item } of ${ totalPages } ` }
130
- aria-current = { selectedPage === item }
131
- onClick$ = { ( ) => {
132
- onPageChange$ ( item ) ;
133
- } }
134
- >
135
- { item }
136
- </ button >
137
- ) }
138
- </ span >
139
- ) ;
140
- } ) }
141
-
142
- { /* NEXT BUTTON */ }
143
- < button
144
- type = "button"
145
- aria-label = { 'nextAriaLabel' }
146
- disabled = { selectedPage >= totalPages }
147
- onClick$ = { ( ) => {
148
- if ( selectedPage < totalPages ) {
149
- onPageChange$ ( selectedPage + 1 ) ;
150
- }
151
- } }
152
- >
153
- < span > NEXT</ span >
154
- < Slot name = "suffix" />
155
- </ button >
156
- </ div >
157
-
158
- { /*
159
- PREVIOUS IMPLEMENTATION
160
- It display all items
161
- */ }
162
- { /*
163
- <nav role="navigation" aria-label="pagination" data-testid="pagination">
164
- <button
165
- type="button"
166
- aria-label={'prevAriaLabel'}
167
- disabled={selectedPage <= 1}
168
- onClick$={() => {
169
- if (selectedPage !== 1) {
170
- onPageChange$(selectedPage - 1);
171
- }
172
- }}
173
- >
174
- <Slot name="prefix" />
175
- <span>PREV</span>
176
- </button>
177
-
178
- <ul style={{ display: 'flex', gap: gap }}>
179
- {[...new Array(totalPages + 1).keys()].map((page: number) => {
180
- if (page === 0) return null;
181
- return (
182
- <li key={page}>
183
- <div>
184
- <button
185
- class={{
186
- defaultClass,
187
- [selectedClass || '']: selectedPage === page,
188
- }}
189
- type="button"
190
- aria-label={`Page ${page} of ${totalPages}`}
191
- aria-current={selectedPage === page}
192
- onClick$={() => {
193
- onPageChange$(page);
194
- }}
195
- >
196
- {page}
197
- </button>
198
- </div>
199
- </li>
200
- );
201
- }) }
202
- </ul>
203
- <button
204
- type="button"
205
- aria-label={'nextAriaLabel'}
206
- disabled={selectedPage >= totalPages}
207
- onClick$={() => {
208
- if (selectedPage < totalPages) {
209
- onPageChange$(selectedPage + 1);
210
- }
211
- }}
212
- >
213
- <span>NEXT</span>
214
- <Slot name="suffix" />
215
- </button>
216
- </nav>
217
- */ }
218
- </ >
103
+ < nav
104
+ role = "navigation"
105
+ aria-label = "pagination"
106
+ data-testid = "pagination"
107
+ style = { { display : 'flex' , alignItems : 'center' , gap : gap } }
108
+ >
109
+ { /* PREV BUTTON */ }
110
+ < button
111
+ type = "button"
112
+ aria-label = { 'prevAriaLabel' }
113
+ disabled = { selectedPage <= 1 }
114
+ onClick$ = { ( ) => {
115
+ if ( selectedPage > 1 ) {
116
+ onPageChange$ ( selectedPage - 1 ) ;
117
+ }
118
+ } }
119
+ >
120
+ < Slot name = "prefix" />
121
+ < span > PREV</ span >
122
+ </ button >
123
+
124
+ { visibleItems . value . map ( ( item : string | number , index : number ) => {
125
+ return (
126
+ < span key = { index } >
127
+ { typeof item === 'string' ? (
128
+ < button class = { dividerClass } > ...</ button >
129
+ ) : (
130
+ < button
131
+ class = { [ selectedPage === item ? selectedClass : defaultClass ] }
132
+ type = "button"
133
+ aria-label = { `Page ${ item } of ${ totalPages } ` }
134
+ aria-current = { selectedPage === item }
135
+ onClick$ = { ( ) => {
136
+ onPageChange$ ( item ) ;
137
+ } }
138
+ >
139
+ { item }
140
+ </ button >
141
+ ) }
142
+ </ span >
143
+ ) ;
144
+ } ) }
145
+
146
+ { /* NEXT BUTTON */ }
147
+ < button
148
+ type = "button"
149
+ aria-label = { 'nextAriaLabel' }
150
+ disabled = { selectedPage >= totalPages }
151
+ onClick$ = { ( ) => {
152
+ if ( selectedPage < totalPages ) {
153
+ onPageChange$ ( selectedPage + 1 ) ;
154
+ }
155
+ } }
156
+ >
157
+ < span > NEXT</ span >
158
+ < Slot name = "suffix" />
159
+ </ button >
160
+ </ nav >
219
161
) ;
220
162
} ,
221
163
) ;
0 commit comments