Skip to content

Commit 8dc90a7

Browse files
committed
fix(pagination): Replace hardcoded params with enum
1 parent 9c88372 commit 8dc90a7

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

packages/module/src/Hooks/pagination.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
import { useState, useEffect } from "react";
22

3+
export enum PaginationParams {
4+
PAGE = 'page',
5+
PER_PAGE = 'perPage'
6+
}
7+
38
export interface UseDataViewPaginationProps {
49
/** Initial page */
510
page?: number;
@@ -23,33 +28,33 @@ export const useDataViewPagination = ({
2328
setSearchParams,
2429
}: UseDataViewPaginationProps) => {
2530
const [ state, setState ] = useState({
26-
page: parseInt(searchParams?.get('page') || `${page}`),
27-
perPage: parseInt(searchParams?.get('perPage') || `${perPage}`),
31+
page: parseInt(searchParams?.get(PaginationParams.PAGE) || `${page}`),
32+
perPage: parseInt(searchParams?.get(PaginationParams.PER_PAGE) || `${perPage}`),
2833
});
2934

3035
const updateSearchParams = (page: number, perPage: number) => {
3136
if (searchParams && setSearchParams) {
3237
const params = new URLSearchParams(searchParams);
33-
params.set('page', `${page}`);
34-
params.set('perPage', `${perPage}`);
38+
params.set(PaginationParams.PAGE, `${page}`);
39+
params.set(PaginationParams.PER_PAGE, `${perPage}`);
3540
setSearchParams(params);
3641
}
3742
};
3843

3944
useEffect(() => {
40-
// make sure search params are loaded or set if not present on mount
45+
// Make sure search params are loaded or set if not present on mount
4146
updateSearchParams(state.page, state.perPage);
42-
// eslint-disable-next-line react-hooks/exhaustive-deps
47+
// eslint-disable-next-line react-hooks/exhaustive-deps
4348
}, []);
4449

4550
useEffect(() => {
46-
// listen on URL params changes
47-
const currentPage = parseInt(searchParams?.get('page') || `${state.page}`);
48-
const currentPerPage = parseInt(searchParams?.get('perPage') || `${state.perPage}`);
51+
// Listen on URL params changes
52+
const currentPage = parseInt(searchParams?.get(PaginationParams.PAGE) || `${state.page}`);
53+
const currentPerPage = parseInt(searchParams?.get(PaginationParams.PER_PAGE) || `${state.perPage}`);
4954
if (currentPage !== state.page || currentPerPage !== state.perPage) {
5055
setState({ page: currentPage, perPage: currentPerPage });
5156
}
52-
// eslint-disable-next-line react-hooks/exhaustive-deps
57+
// eslint-disable-next-line react-hooks/exhaustive-deps
5358
}, [ searchParams ]);
5459

5560
const onPerPageSelect = (

0 commit comments

Comments
 (0)