Skip to content

Commit 9d83f34

Browse files
author
devgioele
committed
make remaining routers reference stable
1 parent bdd9dbc commit 9d83f34

2 files changed

Lines changed: 36 additions & 10 deletions

File tree

src/routers/inMemory.ts

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useState } from 'react'
1+
import { useCallback, useMemo, useState } from 'react'
22
import {
33
AbstractQuery,
44
AbstractQueryOptions,
@@ -13,11 +13,15 @@ import {
1313
const useInMemoryRouter = (): Router => {
1414
const [inMemoryQuery, setInMemoryQuery] = useState<Query>({})
1515

16-
return {
17-
getQuery: (defaultQuery) => {
16+
const getQuery = useCallback(
17+
(defaultQuery: Query) => {
1818
return { ...defaultQuery, ...inMemoryQuery }
1919
},
20-
setQuery: (query) => {
20+
[inMemoryQuery],
21+
)
22+
23+
const setQuery = useCallback(
24+
(query: Partial<Query>) => {
2125
const sanitizedQuery: Query = {}
2226
for (const [key, value] of Object.entries(query)) {
2327
if (value !== undefined) {
@@ -26,7 +30,16 @@ const useInMemoryRouter = (): Router => {
2630
}
2731
setInMemoryQuery({ ...inMemoryQuery, ...sanitizedQuery })
2832
},
29-
}
33+
[inMemoryQuery],
34+
)
35+
36+
return useMemo(
37+
() => ({
38+
getQuery,
39+
setQuery,
40+
}),
41+
[getQuery, setQuery],
42+
)
3043
}
3144

3245
export const useQuery = <

src/routers/reactRouter.ts

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useLocation, useNavigate } from 'react-router-dom'
2-
import { useMemo } from 'react'
2+
import { useCallback, useMemo } from 'react'
33
import {
44
Query,
55
AbstractQuery,
@@ -27,8 +27,8 @@ const useReactRouter = (
2727
[options],
2828
)
2929

30-
return {
31-
getQuery: (defaultQuery) => {
30+
const getQuery = useCallback(
31+
(defaultQuery: Query) => {
3232
const query: Query = {}
3333
for (const [key, value] of new URLSearchParams(search).entries()) {
3434
const decodedValues = value
@@ -41,7 +41,11 @@ const useReactRouter = (
4141
}
4242
return { ...defaultQuery, ...query }
4343
},
44-
setQuery: (query, defaultQuery) => {
44+
[search],
45+
)
46+
47+
const setQuery = useCallback(
48+
(query: Partial<Query>, defaultQuery: Query) => {
4549
const urlSearchParams = new URLSearchParams(search)
4650
for (const [key, value] of Object.entries(query)) {
4751
if (value === defaultQuery[key]) {
@@ -64,7 +68,16 @@ const useReactRouter = (
6468
{ replace: mergedOptions.setQueryMethod === 'replace' },
6569
)
6670
},
67-
}
71+
[mergedOptions.setQueryMethod, navigate, pathname, search],
72+
)
73+
74+
return useMemo(
75+
() => ({
76+
getQuery,
77+
setQuery,
78+
}),
79+
[getQuery, setQuery],
80+
)
6881
}
6982

7083
export const useQuery = <

0 commit comments

Comments
 (0)