add lookup
This commit is contained in:
@@ -87,7 +87,7 @@ export default function Component({
|
||||
loaderData: { data }
|
||||
}: Route.ComponentProps) {
|
||||
const [searchParams, setSearchParams] = useSearchParams()
|
||||
const term = searchParams.get('term') as string
|
||||
const s = searchParams.get('s') as string
|
||||
|
||||
return (
|
||||
<Container className="space-y-4">
|
||||
@@ -104,7 +104,7 @@ export default function Component({
|
||||
<div className="flex gap-2.5">
|
||||
<div className="w-full xl:w-1/3">
|
||||
<SearchForm
|
||||
defaultValue={term || ''}
|
||||
defaultValue={s || ''}
|
||||
placeholder={
|
||||
<>
|
||||
Digite <Kbd>/</Kbd> para pesquisar
|
||||
@@ -112,7 +112,7 @@ export default function Component({
|
||||
}
|
||||
onChange={(value) =>
|
||||
setSearchParams((searchParams) => {
|
||||
searchParams.set('term', String(value))
|
||||
searchParams.set('s', String(value))
|
||||
return searchParams
|
||||
})
|
||||
}
|
||||
@@ -145,14 +145,14 @@ export default function Component({
|
||||
</div>
|
||||
|
||||
<Await resolve={data}>
|
||||
{({ hits = [] }) => <List term={term} hits={hits as Enrollment[]} />}
|
||||
{({ hits = [] }) => <List s={s} hits={hits as Enrollment[]} />}
|
||||
</Await>
|
||||
</Suspense>
|
||||
</Container>
|
||||
)
|
||||
}
|
||||
|
||||
function List({ term, hits = [] }: { term: string; hits: Enrollment[] }) {
|
||||
function List({ s, hits = [] }: { s: string; hits: Enrollment[] }) {
|
||||
const fuse = useMemo(() => {
|
||||
return new Fuse(hits, {
|
||||
keys: ['course.name'],
|
||||
@@ -162,12 +162,12 @@ function List({ term, hits = [] }: { term: string; hits: Enrollment[] }) {
|
||||
}, [hits])
|
||||
|
||||
const hits_ = useMemo(() => {
|
||||
if (!term) {
|
||||
if (!s) {
|
||||
return hits
|
||||
}
|
||||
|
||||
return fuse.search(term).map(({ item }) => item)
|
||||
}, [term, fuse, hits])
|
||||
return fuse.search(s).map(({ item }) => item)
|
||||
}, [s, fuse, hits])
|
||||
|
||||
if (hits_.length === 0) {
|
||||
return (
|
||||
@@ -178,7 +178,7 @@ function List({ term, hits = [] }: { term: string; hits: Enrollment[] }) {
|
||||
</EmptyMedia>
|
||||
<EmptyTitle>Nada encontrado</EmptyTitle>
|
||||
<EmptyDescription>
|
||||
Nenhum resultado para <mark>{term}</mark>.
|
||||
Nenhum resultado para <mark>{s}</mark>.
|
||||
</EmptyDescription>
|
||||
</EmptyHeader>
|
||||
</Empty>
|
||||
|
||||
Reference in New Issue
Block a user