Skip to content

Commit b64d7d1

Browse files
committed
update packages and migrate to react-router-dom v6
1 parent 8f9aea4 commit b64d7d1

4 files changed

Lines changed: 45 additions & 32 deletions

File tree

.eslintrc.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
"prettier",
1515
"plugin:prettier/recommended",
1616
"plugin:@typescript-eslint/recommended",
17-
"plugin:import/typescript"
17+
"plugin:import/typescript",
18+
"plugin:jest/recommended"
1819
],
1920
"parserOptions": {
2021
"sourceType": "module",

jest.config.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"testEnvironment": "jsdom",
23
"transform": {
34
"^.+\\.(t|j)sx?$": "ts-jest"
45
},

package.json

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -43,30 +43,42 @@
4343
"access": "public"
4444
},
4545
"devDependencies": {
46-
"@testing-library/jest-dom": "^5.11.10",
47-
"@testing-library/react": "^11.2.6",
48-
"@testing-library/react-hooks": "^5.1.3",
49-
"@types/jest": "^26.0.22",
50-
"@types/react": "^17.0.3",
51-
"@types/react-router-dom": "^5.1.8",
52-
"@typescript-eslint/eslint-plugin": "^4.21.0",
53-
"@typescript-eslint/parser": "^4.21.0",
54-
"eslint": "^7.23.0",
55-
"eslint-config-prettier": "^8.1.0",
56-
"eslint-plugin-import": "^2.22.1",
57-
"eslint-plugin-jest": "^24.3.4",
58-
"eslint-plugin-prettier": "^3.3.1",
59-
"jest": "^26.6.3",
60-
"next": "^11.0.1",
61-
"next-router-mock": "^0.6.1",
62-
"prettier": "^2.2.1",
46+
"@testing-library/jest-dom": "^5.16.4",
47+
"@testing-library/react": "^12.0.0",
48+
"@testing-library/react-hooks": "^8.0.1",
49+
"@types/jest": "^28.1.3",
50+
"@types/react": "^17.0.0",
51+
"@types/react-router-dom": "^5.3.3",
52+
"@typescript-eslint/eslint-plugin": "^5.30.0",
53+
"@typescript-eslint/parser": "^5.30.0",
54+
"eslint": "^8.18.0",
55+
"eslint-config-prettier": "^8.5.0",
56+
"eslint-plugin-import": "^2.26.0",
57+
"eslint-plugin-jest": "^26.5.3",
58+
"eslint-plugin-prettier": "^4.1.0",
59+
"jest": "^28.1.1",
60+
"jest-environment-jsdom": "^28.1.1",
61+
"next": "^12.2.0",
62+
"next-router-mock": "^0.7.4",
63+
"prettier": "^2.7.1",
6364
"react": "^17.0.2",
6465
"react-dom": "^17.0.2",
65-
"react-router-dom": "^5.2.0",
66-
"ts-jest": "^26.5.4",
67-
"typescript": "^4.2.4"
66+
"react-router-dom": "^6.3.0",
67+
"ts-jest": "^28.0.5",
68+
"typescript": "^4.7.4"
6869
},
6970
"peerDependencies": {
70-
"react": "^16.0.0 || ^17.0.0"
71+
"next": "^12.0.0",
72+
"react": "^17.0.0",
73+
"react-dom": "^17.0.2",
74+
"react-router-dom": "^6.0.0"
75+
},
76+
"peerDependenciesMeta": {
77+
"next": {
78+
"optional": true
79+
},
80+
"react-router-dom": {
81+
"optional": true
82+
}
7183
}
7284
}

src/reactRouterPagination.tsx

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useCallback, useMemo } from 'react'
2-
import { useHistory, useLocation, useRouteMatch } from 'react-router-dom'
2+
import { useNavigate, useLocation } from 'react-router-dom'
33

44
import { IndexType, IUseQueryAndPagination, QueryParameters } from './types'
55
import { convert } from './utils'
@@ -25,9 +25,8 @@ function extractCurrentQueryParameters(
2525

2626
export const useQueryAndPagination: IUseQueryAndPagination = function (config) {
2727
const { indexType = IndexType.ZERO_BASED, pageSize = 15 } = config || {}
28-
const routerHistory = useHistory()
29-
const { url: routerUrl } = useRouteMatch()
30-
const { search: routeQuery } = useLocation()
28+
const navigate = useNavigate()
29+
const { pathname: routerUrl, search: routeQuery } = useLocation()
3130

3231
const params = useMemo(() => new URLSearchParams(routeQuery), [routeQuery])
3332

@@ -48,12 +47,12 @@ export const useQueryAndPagination: IUseQueryAndPagination = function (config) {
4847
params.delete('page')
4948
params.delete('size')
5049

51-
routerHistory.push({
50+
navigate({
5251
pathname: routerUrl,
5352
search: params.toString(),
5453
})
5554
},
56-
[routerHistory, params]
55+
[navigate, params]
5756
)
5857

5958
const clear = useCallback(() => {
@@ -64,21 +63,21 @@ export const useQueryAndPagination: IUseQueryAndPagination = function (config) {
6463
params.delete('page')
6564
params.delete('size')
6665

67-
routerHistory.push({
66+
navigate({
6867
pathname: routerUrl,
6968
search: params.toString(),
7069
})
71-
}, [routerHistory, params])
70+
}, [navigate, params])
7271

7372
const setPage = useCallback(
7473
(page: number) => {
7574
params.set('page', page.toString())
76-
routerHistory.push({
75+
navigate({
7776
pathname: routerUrl,
7877
search: params.toString(),
7978
})
8079
},
81-
[routerHistory, params]
80+
[navigate, params]
8281
)
8382

8483
return {

0 commit comments

Comments
 (0)