Skip to content

Commit 5cd3d20

Browse files
authored
Merge pull request #4 from aboutbits/update-packages-and-configs
Update packages and configs
2 parents ca6ac4a + d51d0e6 commit 5cd3d20

6 files changed

Lines changed: 50 additions & 34 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",

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
prerelease: false
1919
- uses: actions/setup-node@v1
2020
with:
21-
node-version: '12.x'
21+
node-version: '16.x'
2222
registry-url: 'https://registry.npmjs.org'
2323
- run: npm install
2424
- run: npm publish

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ jobs:
77
- uses: actions/checkout@v2
88
- uses: actions/setup-node@v1
99
with:
10-
node-version: '12.x'
10+
node-version: '16.x'
1111
registry-url: 'https://registry.npmjs.org'
1212
- run: npm install
1313
- run: npm run lint

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: 36 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
"version": "0.0.10",
44
"description": "Pagination hooks for React",
55
"sideEffects": false,
6+
"engines": {
7+
"npm": "^8",
8+
"node": "^16"
9+
},
610
"scripts": {
711
"build": "npm run build:node && npm run build:esm",
812
"build:node": "tsc",
@@ -39,30 +43,41 @@
3943
"access": "public"
4044
},
4145
"devDependencies": {
42-
"@testing-library/jest-dom": "^5.11.10",
43-
"@testing-library/react": "^11.2.6",
44-
"@testing-library/react-hooks": "^5.1.3",
45-
"@types/jest": "^26.0.22",
46-
"@types/react": "^17.0.3",
47-
"@types/react-router-dom": "^5.1.8",
48-
"@typescript-eslint/eslint-plugin": "^4.21.0",
49-
"@typescript-eslint/parser": "^4.21.0",
50-
"eslint": "^7.23.0",
51-
"eslint-config-prettier": "^8.1.0",
52-
"eslint-plugin-import": "^2.22.1",
53-
"eslint-plugin-jest": "^24.3.4",
54-
"eslint-plugin-prettier": "^3.3.1",
55-
"jest": "^26.6.3",
56-
"next": "^11.0.1",
57-
"next-router-mock": "^0.6.1",
58-
"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",
5964
"react": "^17.0.2",
6065
"react-dom": "^17.0.2",
61-
"react-router-dom": "^5.2.0",
62-
"ts-jest": "^26.5.4",
63-
"typescript": "^4.2.4"
66+
"react-router-dom": "^6.3.0",
67+
"ts-jest": "^28.0.5",
68+
"typescript": "^4.7.4"
6469
},
6570
"peerDependencies": {
66-
"react": "^16.0.0 || ^17.0.0"
71+
"next": "^12.0.0",
72+
"react": "^16.0.0 || ^17.0.0",
73+
"react-router-dom": "^6.0.0"
74+
},
75+
"peerDependenciesMeta": {
76+
"next": {
77+
"optional": true
78+
},
79+
"react-router-dom": {
80+
"optional": true
81+
}
6782
}
6883
}

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)