diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-03-26 00:37:41 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-03-26 00:37:41 +0000 |
| commit | e0dfb55c5457aec489fc084c4567e791b4c65eb1 (patch) | |
| tree | 68543a65d88f5afb3a0202925804103daa91bc6f /hooks/use-query-string.ts | |
3/25 까지의 대표님 작업사항
Diffstat (limited to 'hooks/use-query-string.ts')
| -rw-r--r-- | hooks/use-query-string.ts | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/hooks/use-query-string.ts b/hooks/use-query-string.ts new file mode 100644 index 00000000..5f523230 --- /dev/null +++ b/hooks/use-query-string.ts @@ -0,0 +1,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 } +} |
