This commit is contained in:
2025-12-10 14:48:42 -03:00
parent 64ca0c7e81
commit 12f558233b
3 changed files with 76 additions and 55 deletions

View File

@@ -87,7 +87,7 @@ export default function Component({
loaderData: { data }
}: Route.ComponentProps) {
const [searchParams, setSearchParams] = useSearchParams()
const s = searchParams.get('s') as string
const search = searchParams.get('s') as string
return (
<Container className="space-y-4">
@@ -145,14 +145,16 @@ export default function Component({
</div>
<Await resolve={data}>
{({ hits = [] }) => <List s={s} hits={hits as Enrollment[]} />}
{({ hits = [] }) => (
<List search={search} hits={hits as Enrollment[]} />
)}
</Await>
</Suspense>
</Container>
)
}
function List({ s, hits = [] }: { s: string; hits: Enrollment[] }) {
function List({ search, hits = [] }: { search: string; hits: Enrollment[] }) {
const fuse = useMemo(() => {
return new Fuse(hits, {
keys: ['course.name'],
@@ -162,12 +164,12 @@ function List({ s, hits = [] }: { s: string; hits: Enrollment[] }) {
}, [hits])
const filtered = useMemo(() => {
if (!s) {
if (!search) {
return hits
}
return fuse.search(s).map(({ item }) => item)
}, [s, fuse, hits])
return fuse.search(search).map(({ item }) => item)
}, [search, fuse, hits])
if (filtered.length === 0) {
return (
@@ -176,7 +178,7 @@ function List({ s, hits = [] }: { s: string; hits: Enrollment[] }) {
<EmptyMedia variant="icon">
<BanIcon />
</EmptyMedia>
{s ? (
{search ? (
<>
<EmptyTitle>Nada encontrado</EmptyTitle>
<EmptyDescription>