mirror of
https://github.com/emailerfacu-spec/minix-front.git
synced 2026-04-28 17:22:47 -03:00
hecho soporte para la busqueda de hashtags
This commit is contained in:
@@ -1,16 +1,43 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { page } from '$app/state';
|
import { page } from '$app/state';
|
||||||
|
import CardContent from '@/components/ui/card/card-content.svelte';
|
||||||
|
import CardHeader from '@/components/ui/card/card-header.svelte';
|
||||||
|
import CardTitle from '@/components/ui/card/card-title.svelte';
|
||||||
|
import Card from '@/components/ui/card/card.svelte';
|
||||||
|
import Separator from '@/components/ui/separator/separator.svelte';
|
||||||
import UserCard from '@/components/UserCard.svelte';
|
import UserCard from '@/components/UserCard.svelte';
|
||||||
|
import ChevronLeft from '@lucide/svelte/icons/chevron-left';
|
||||||
|
import ChevronRight from '@lucide/svelte/icons/chevron-right';
|
||||||
let { data } = $props();
|
let { data } = $props();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="flex min-h-fit w-full flex-col items-center justify-center gap-2 p-6 md:p-10">
|
<div class="flex min-h-fit w-full flex-col items-center justify-center gap-2 p-6 md:p-10">
|
||||||
<div class="flex w-full max-w-6xl flex-col gap-2">
|
<div class="flex w-full max-w-6xl flex-col gap-2">
|
||||||
|
<h1 class="text-2xl font-bold">Usuarios</h1>
|
||||||
|
<Separator></Separator>
|
||||||
{#each data.usuarios as usu}
|
{#each data.usuarios as usu}
|
||||||
<div class="w-full">
|
<div class="w-full">
|
||||||
<UserCard {usu} />
|
<UserCard {usu} />
|
||||||
</div>
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
|
|
||||||
|
<div class="mt-4">
|
||||||
|
<h2 class="mb-2 text-xl font-semibold">Hastags</h2>
|
||||||
|
</div>
|
||||||
|
<Separator />
|
||||||
|
<div class="mt-4 flex flex-col gap-2">
|
||||||
|
{#each data.htags as htag}
|
||||||
|
<a
|
||||||
|
href={`/htag/${htag}`}
|
||||||
|
class="w-full rounded-lg bg-accent p-3 text-lg font-medium text-foreground hover:bg-muted"
|
||||||
|
>
|
||||||
|
<div class="flex justify-between">
|
||||||
|
#{htag}
|
||||||
|
<ChevronRight />
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,15 @@
|
|||||||
import { busquedaUsuarios } from '@/hooks/busquedaUsuarios';
|
import { busquedaUsuarios } from '@/hooks/busquedaUsuarios';
|
||||||
import { error } from '@sveltejs/kit';
|
import { error } from '@sveltejs/kit';
|
||||||
import type { UserResponseDto } from '../../../types';
|
import type { UserResponseDto } from '../../../types';
|
||||||
|
import { busquedaHashtags } from '@/hooks/busquedaHashtags.js';
|
||||||
|
|
||||||
export async function load({ params }) {
|
export async function load({ params }) {
|
||||||
let usuarios: UserResponseDto[] = await busquedaUsuarios(params.user);
|
let req1 = busquedaUsuarios(params.user);
|
||||||
|
//usa el mismo param
|
||||||
|
let req2 = busquedaHashtags(params.user);
|
||||||
|
|
||||||
|
let [usuarios, htags] = await Promise.all([req1, req2]);
|
||||||
|
|
||||||
if (usuarios == null) {
|
if (usuarios == null) {
|
||||||
return error(500, 'No se pudo alcanzar el servidor.');
|
return error(500, 'No se pudo alcanzar el servidor.');
|
||||||
}
|
}
|
||||||
@@ -11,5 +17,5 @@ export async function load({ params }) {
|
|||||||
if (usuarios.length == 0) {
|
if (usuarios.length == 0) {
|
||||||
return error(404, 'No se encontraron usuarios que coinsidan con la busqueda.');
|
return error(404, 'No se encontraron usuarios que coinsidan con la busqueda.');
|
||||||
}
|
}
|
||||||
return { usuarios };
|
return { usuarios, htags };
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user