diff --git a/src/lib/head/Busqueda.svelte b/src/lib/head/Busqueda.svelte index f966680..3a6134d 100644 --- a/src/lib/head/Busqueda.svelte +++ b/src/lib/head/Busqueda.svelte @@ -18,12 +18,12 @@ import AvatarImage from '@/components/ui/avatar/avatar-image.svelte'; import Label from '@/components/ui/label/label.svelte'; import { resolve } from '$app/paths'; + import { busquedaHashtags } from '@/hooks/busquedaHashtags'; let search: string = $state(''); let open = $state(false); - let usuarios: UserResponseDto[] = $state([]); - let loading = $state(false); + let usuarios: Promise | undefined = $state(); let hashtags: Promise | undefined = $state(); @@ -33,18 +33,17 @@ open = !open; } } - $inspect(usuarios, loading); + // $inspect(usuarios, loading); let timeoutId: number | undefined; function buscar() { - loading = true; if (timeoutId) { clearTimeout(timeoutId); } timeoutId = setTimeout(async () => { - usuarios = await busquedaUsuarios(search); - loading = false; + usuarios = busquedaUsuarios(search); + hashtags = busquedaHashtags(search); }, 200); return () => { @@ -55,13 +54,14 @@ - + (open = true)} + class="max-w-0 transition-[max-width] duration-1000 ease-out group-hover:max-w-xs focus:max-w-xs" /> Ctrl+K @@ -75,36 +75,50 @@ oninput={buscar} /> {#if search} -
    + diff --git a/src/lib/hooks/busquedaHashtags.ts b/src/lib/hooks/busquedaHashtags.ts new file mode 100644 index 0000000..e45413e --- /dev/null +++ b/src/lib/hooks/busquedaHashtags.ts @@ -0,0 +1,18 @@ +import { apiBase } from '@/stores/url'; +import { get } from 'svelte/store'; + +export async function busquedaHashtags(htag: string) { + if (!htag) return null; + try { + const req = await fetch(`${get(apiBase)}/api/htag?q=${htag}`, { + method: 'GET' + }); + if (req.ok) { + let data = await req.json(); + return data; + } + return []; + } catch { + return null; + } +}