@@ -7,11 +7,11 @@ interface Link {
7
7
locked ?: boolean
8
8
active ?: boolean
9
9
page ?: number
10
+ pageQueryParam ?: string
10
11
}
11
12
12
13
export const Pagination : FC < models . Pagination > = ( props ) => {
13
- const { page, pageCount } = props
14
-
14
+ const { page, pageCount, pageQueryParam } = props
15
15
if ( pageCount === 1 ) return null
16
16
17
17
const links : Link [ ] = [
@@ -20,17 +20,19 @@ export const Pagination: FC<models.Pagination> = (props) => {
20
20
ariaLabel : 'Previous' ,
21
21
locked : page === 1 ,
22
22
page : page - 1 ,
23
+ pageQueryParam,
23
24
} ,
24
25
{
25
26
Display : ( ) => < > 1</ > ,
26
27
locked : page === 1 ,
27
28
active : page === 1 ,
28
29
page : 1 ,
30
+ pageQueryParam,
29
31
} ,
30
32
]
31
33
32
34
if ( page > 4 ) {
33
- links . push ( { Display : ( ) => < > ...</ > } )
35
+ links . push ( { Display : ( ) => < > ...</ > , pageQueryParam } )
34
36
}
35
37
36
38
for ( let p = page - 2 ; p <= page + 2 ; p ++ ) {
@@ -40,24 +42,27 @@ export const Pagination: FC<models.Pagination> = (props) => {
40
42
locked : page === p ,
41
43
active : page === p ,
42
44
page : p ,
45
+ pageQueryParam,
43
46
} )
44
47
}
45
48
46
49
if ( page < pageCount - 3 ) {
47
- links . push ( { Display : ( ) => < > ...</ > } )
50
+ links . push ( { Display : ( ) => < > ...</ > , pageQueryParam } )
48
51
}
49
52
50
53
links . push ( {
51
54
Display : ( ) => < > { pageCount } </ > ,
52
55
locked : page === pageCount ,
53
56
page : pageCount ,
57
+ pageQueryParam,
54
58
} )
55
59
56
60
links . push ( {
57
61
Display : ( ) => < span aria-hidden = "true" > »</ span > ,
58
62
ariaLabel : 'Next' ,
59
63
locked : page === pageCount ,
60
64
page : page + 1 ,
65
+ pageQueryParam,
61
66
} )
62
67
63
68
return (
@@ -71,7 +76,7 @@ export const Pagination: FC<models.Pagination> = (props) => {
71
76
)
72
77
}
73
78
74
- const PaginationLink : FC < Link > = ( { Display, ariaLabel, locked, active, page } ) => {
79
+ const PaginationLink : FC < Link > = ( { Display, ariaLabel, locked, active, page, pageQueryParam } ) => {
75
80
if ( ! page ) {
76
81
return (
77
82
< li className = "page-item" >
@@ -82,7 +87,10 @@ const PaginationLink: FC<Link> = ({ Display, ariaLabel, locked, active, page })
82
87
)
83
88
}
84
89
const className = renderClassName ( { 'page-link' : true , disabled : locked && ! active , active } as models . ClassName )
85
- const onClick : models . GoToEvent = { type : 'go-to' , query : { page } }
90
+ const onClick : models . GoToEvent = {
91
+ type : 'go-to' ,
92
+ query : { [ pageQueryParam !== undefined ? pageQueryParam : 'page' ] : page } ,
93
+ }
86
94
return (
87
95
< li className = "page-item" >
88
96
< components . LinkRender onClick = { onClick } className = { className } locked = { locked || active } ariaLabel = { ariaLabel } >
0 commit comments