From 40a8c07b0db15aea93a1328071d96b4d0e40cb04 Mon Sep 17 00:00:00 2001 From: fede Date: Mon, 5 Jan 2026 16:21:54 -0300 Subject: [PATCH 1/5] ahora login usa la store directamente --- src/lib/hooks/login.ts | 64 ++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 36 deletions(-) diff --git a/src/lib/hooks/login.ts b/src/lib/hooks/login.ts index 7d9dc2d..2de7926 100644 --- a/src/lib/hooks/login.ts +++ b/src/lib/hooks/login.ts @@ -1,38 +1,30 @@ -import { apiBase } from "@/stores/url"; -import type { LoginDto } from "../../types"; -import { sesionStore } from "@/stores/usuario"; -import { goto } from "$app/navigation"; +import { apiBase } from '@/stores/url'; +import type { LoginDto } from '../../types'; +import { sesionStore } from '@/stores/usuario'; +import { goto } from '$app/navigation'; +import { get } from 'svelte/store'; -export async function login(e:SubmitEvent, dto: LoginDto, callbackfn:()=>void){ - e.preventDefault(); - if (dto.password == "" || dto.username == "") return; - try { - - const { subscribe } = apiBase; - let baseUrl: string = ''; - - subscribe((value) => { - baseUrl = value; - })(); - const req = await fetch(baseUrl + "/api/auth/login", { - method: "POST", - headers:{ - "Content-Type": "application/json" - }, - credentials: 'include', - body: JSON.stringify(dto) - }); - if (req.ok) { - const token = await req.json(); - sesionStore.set(token); - goto("/") - } else { - callbackfn(); - } - - } catch { - callbackfn(); - console.error("fallo al intentar alcanzar el servidor") - - } +export async function login(e: SubmitEvent, dto: LoginDto, callbackfn: () => void) { + e.preventDefault(); + if (dto.password == '' || dto.username == '') return; + try { + const req = await fetch(get(apiBase) + '/api/auth/login', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + credentials: 'include', + body: JSON.stringify(dto) + }); + if (req.ok) { + const token = await req.json(); + sesionStore.set(token); + goto('/'); + } else { + callbackfn(); + } + } catch { + callbackfn(); + console.error('fallo al intentar alcanzar el servidor'); + } } From f57c7809100d5458bff5d0ca21785e54f7985177 Mon Sep 17 00:00:00 2001 From: fede Date: Mon, 5 Jan 2026 16:48:42 -0300 Subject: [PATCH 2/5] =?UTF-8?q?a=C3=B1adida=20pagina=20de=20posts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/components/PostCard.svelte | 21 +++++-- src/lib/components/crear-post.svelte | 8 ++- src/lib/hooks/obtenerPostPorId.ts | 30 ++++++++++ src/lib/hooks/obtenerRespuestasPorId.ts | 28 +++++++++ src/routes/post/[idpost]/+page.svelte | 79 +++++++++++++++++++++++++ src/routes/post/[idpost]/+page.ts | 18 ++++++ 6 files changed, 176 insertions(+), 8 deletions(-) create mode 100644 src/lib/hooks/obtenerPostPorId.ts create mode 100644 src/lib/hooks/obtenerRespuestasPorId.ts create mode 100644 src/routes/post/[idpost]/+page.svelte create mode 100644 src/routes/post/[idpost]/+page.ts diff --git a/src/lib/components/PostCard.svelte b/src/lib/components/PostCard.svelte index bf7cb96..4cacc46 100644 --- a/src/lib/components/PostCard.svelte +++ b/src/lib/components/PostCard.svelte @@ -30,13 +30,16 @@ import DialogDescription from './ui/dialog/dialog-description.svelte'; import { sesionStore } from '@/stores/usuario'; import { likePost } from '@/hooks/likePost'; + import { goto } from '$app/navigation'; + import { resolve } from '$app/paths'; interface postProp { post: Post; postAModificar: Post | null; + update?: Function; } - let { post, postAModificar = $bindable() }: postProp = $props(); + let { post, postAModificar = $bindable(), update }: postProp = $props(); let cargandoBorrar = $state(false); let mensajeError = $state(''); @@ -82,7 +85,7 @@ likePost(post), new Promise((resolve) => setTimeout(resolve, 300)) ]); - console.log(1); + // console.log(1); if (ok) { if (post.isLiked) { post.likesCount--; @@ -94,9 +97,10 @@ errorLike = true; mensajeError = message; } - console.log(1); - updatePostStore(post.id, post); - console.log(1); + // console.log(2); + if (update) update(); + else updatePostStore(post.id, post); + // console.log(3); cargandoLike = false; } @@ -179,7 +183,12 @@ {/if} - + + + + +{/snippet} diff --git a/src/routes/post/[idpost]/TamañoPantalla.svelte.ts b/src/routes/post/[idpost]/TamañoPantalla.svelte.ts new file mode 100644 index 0000000..d56e0c0 --- /dev/null +++ b/src/routes/post/[idpost]/TamañoPantalla.svelte.ts @@ -0,0 +1,5 @@ +import { innerWidth } from 'svelte/reactivity/window'; +export class TamañoPantalla { + width = $derived(() => innerWidth.current || 1080); + isMobile = $derived(this.width() < 768); +} From 48b8a620f0fadb27edbd2440070444afcc53345a Mon Sep 17 00:00:00 2001 From: fede Date: Mon, 5 Jan 2026 18:05:42 -0300 Subject: [PATCH 4/5] =?UTF-8?q?a=C3=B1adido=20limite=20a=20la=20imagen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/post/[idpost]/+page.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/post/[idpost]/+page.svelte b/src/routes/post/[idpost]/+page.svelte index bf01622..4a25a05 100644 --- a/src/routes/post/[idpost]/+page.svelte +++ b/src/routes/post/[idpost]/+page.svelte @@ -132,7 +132,7 @@ {post.content}

{#if post.imageUrl} - Imagen de respuesta + Imagen de respuesta {/if}