Skip to content

Commit bdd9dbc

Browse files
author
devgioele
committed
make next router reference stable
1 parent 0e03367 commit bdd9dbc

1 file changed

Lines changed: 18 additions & 5 deletions

File tree

src/routers/nextRouter.ts

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useRouter } from 'next/router'
2-
import { useMemo } from 'react'
2+
import { useCallback, useMemo } from 'react'
33
import {
44
Query,
55
ParseQuery,
@@ -28,8 +28,8 @@ const useNextRouter = (
2828
[options],
2929
)
3030

31-
return {
32-
getQuery: (defaultQuery) => {
31+
const getQuery = useCallback(
32+
(defaultQuery: Query) => {
3333
const query: Query = {}
3434
for (const [key, value] of Object.entries(nextRouter.query)) {
3535
if (value !== undefined) {
@@ -38,7 +38,11 @@ const useNextRouter = (
3838
}
3939
return { ...defaultQuery, ...query }
4040
},
41-
setQuery: (query, defaultQuery) => {
41+
[nextRouter.query],
42+
)
43+
44+
const setQuery = useCallback(
45+
(query: Partial<Query>, defaultQuery: Query) => {
4246
const newQuery = { ...nextRouter.query, ...query }
4347
const newQueryWithoutDefaults = Object.fromEntries(
4448
Object.entries(newQuery).filter(
@@ -55,7 +59,16 @@ const useNextRouter = (
5559
})
5660
}
5761
},
58-
}
62+
[nextRouter, mergedOptions],
63+
)
64+
65+
return useMemo(
66+
() => ({
67+
getQuery,
68+
setQuery,
69+
}),
70+
[getQuery, setQuery],
71+
)
5972
}
6073

6174
export const useQuery = <

0 commit comments

Comments
 (0)