blob: 5f52323017a37967683c8fbb7319b08c10784487 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import * as React from "react"
type QueryParams = Record<string, string | number | null>
export function useQueryString(searchParams: URLSearchParams) {
const createQueryString = React.useCallback(
(params: QueryParams) => {
const newSearchParams = new URLSearchParams(searchParams?.toString())
for (const [key, value] of Object.entries(params)) {
if (value === null) {
newSearchParams.delete(key)
} else {
newSearchParams.set(key, String(value))
}
}
return newSearchParams.toString()
},
[searchParams]
)
return { createQueryString }
}
|