Skip to content

Commit 1337a03

Browse files
feat: add useSearch from @genseki/ui.
1 parent c23388d commit 1337a03

6 files changed

Lines changed: 30 additions & 3 deletions

File tree

legacies/react/src/react/hooks/use-search.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ export interface UseSearchReturn {
88
search: string
99
}
1010

11+
/**
12+
* @deprecated Use `useSearch` from `@genseki/ui` instaed
13+
*/
1114
export function useSearch(options?: Options): UseSearchReturn {
1215
const [search, setSearch] = useQueryState(
1316
'search',

packages/ui/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
"clsx": "^2.1.1",
6262
"cmdk": "^1.1.1",
6363
"input-otp": "^1.4.2",
64+
"nuqs": "^2.4.3",
6465
"react": "^19.1.0",
6566
"react-day-picker": "^9.11.1",
6667
"react-dom": "^19.1.0",

packages/ui/src/hooks/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './use-search'
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
'use client'
2+
import { type Dispatch, type SetStateAction } from 'react'
3+
4+
import { type Options, parseAsString, useQueryState } from 'nuqs'
5+
6+
export interface UseSearchReturn {
7+
setSearch: Dispatch<SetStateAction<string>>
8+
search: string
9+
}
10+
11+
export function useSearch(options?: Options): UseSearchReturn {
12+
const [search, setSearch] = useQueryState(
13+
'search',
14+
parseAsString.withOptions({ clearOnDefault: true, ...(options ?? {}) }).withDefault('')
15+
)
16+
17+
return { search, setSearch }
18+
}

packages/ui/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
export * from './components/primitives'
2+
export * from './hooks'

pnpm-lock.yaml

Lines changed: 6 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)