6
6
Input ,
7
7
Layout ,
8
8
message ,
9
+ Pagination ,
10
+ PaginationProps ,
9
11
Row ,
10
12
Select ,
11
13
Table ,
@@ -32,6 +34,10 @@ import {
32
34
export default function Home ( ) {
33
35
// Table States
34
36
const [ questions , setQuestions ] = useState < Question [ ] | undefined > ( undefined ) ; // Store the questions
37
+ const [ totalCount , setTotalCount ] = useState < number | undefined > ( undefined ) ; // Store the total count of questions
38
+ const [ totalPages , setTotalPages ] = useState < number | undefined > ( undefined ) ; // Store the total number of pages
39
+ const [ currentPage , setCurrentPage ] = useState < number | undefined > ( undefined ) ; // Store the current page
40
+ const [ limit , setLimit ] = useState < number | undefined > ( undefined ) ; // Store the quantity of questions to be displayed
35
41
const [ isLoading , setIsLoading ] = useState < boolean > ( true ) ; // Store the states related to table's loading
36
42
37
43
// Filtering States
@@ -73,7 +79,11 @@ export default function Home() {
73
79
}
74
80
75
81
GetQuestions ( ) . then ( ( data ) => {
76
- setQuestions ( data ) ;
82
+ setQuestions ( data . questions ) ;
83
+ setTotalCount ( data . totalCount ) ;
84
+ setTotalPages ( data . totalPages ) ;
85
+ setCurrentPage ( data . currentPage ) ;
86
+ setLimit ( data . limit ) ;
77
87
setIsLoading ( false ) ;
78
88
} ) ;
79
89
} , [ ] ) ;
@@ -152,6 +162,20 @@ export default function Home() {
152
162
success ( "Filtered Successfully!" ) ;
153
163
} ;
154
164
165
+ // Handler for show size change for pagination
166
+ const onShowSizeChange : PaginationProps [ "onShowSizeChange" ] = (
167
+ current ,
168
+ pageSize
169
+ ) => {
170
+ setCurrentPage ( current ) ;
171
+ setLimit ( pageSize ) ;
172
+ } ;
173
+
174
+ // Handler for change in page jumper
175
+ const onPageJump : PaginationProps [ "onChange" ] = ( pageNumber ) => {
176
+ setCurrentPage ( pageNumber ) ;
177
+ } ;
178
+
155
179
return (
156
180
< div >
157
181
{ contextHolder }
@@ -228,6 +252,13 @@ export default function Home() {
228
252
dataSource = { questions }
229
253
columns = { columns }
230
254
loading = { isLoading }
255
+ pagination = { {
256
+ total : totalCount ,
257
+ showSizeChanger : true ,
258
+ onShowSizeChange : onShowSizeChange ,
259
+ showQuickJumper : true ,
260
+ onChange : onPageJump ,
261
+ } }
231
262
/>
232
263
</ div >
233
264
</ div >
0 commit comments