From 84bc3fcf89b42f44f9c19b3c516904b3ee4bfbf2 Mon Sep 17 00:00:00 2001 From: ErickHub192 Date: Wed, 26 Aug 2026 21:09:04 -0600 Subject: [PATCH] Las salas guardadas en tu cuenta muestran su nombre Co-Authored-By: Claude Opus 5 --- server/src/storage/sqlite.ts | 6 +++++- server/src/storage/types.ts | 2 ++ web/src/cuenta.ts | 6 ++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/server/src/storage/sqlite.ts b/server/src/storage/sqlite.ts index f11ef8d..159d2a0 100644 --- a/server/src/storage/sqlite.ts +++ b/server/src/storage/sqlite.ts @@ -339,7 +339,7 @@ export class SqliteStorage implements Storage { async salasDeUsuario(usuarioId: string): Promise { const rows = this.db .prepare( - `SELECT s.room_id, s.visitada_en FROM salas_de_usuario s + `SELECT s.room_id, s.visitada_en, r.nombre FROM salas_de_usuario s JOIN rooms r ON r.id = s.room_id WHERE s.usuario_id = ? ORDER BY s.visitada_en DESC`, ) @@ -347,6 +347,10 @@ export class SqliteStorage implements Storage { return rows.map((r) => ({ roomId: String(r.room_id), visitadaEn: Number(r.visitada_en), + // El nombre sale del JOIN que ya estaba ahi. Sin el, la lista de quien + // entra con cuenta pisaba la del navegador (que si los tenia) y todas las + // salas volvian a verse por su id. + nombre: r.nombre == null ? null : String(r.nombre), })); } diff --git a/server/src/storage/types.ts b/server/src/storage/types.ts index 05dfb26..bc4a313 100644 --- a/server/src/storage/types.ts +++ b/server/src/storage/types.ts @@ -77,6 +77,8 @@ export interface StoredUsuario { export interface SalaDeUsuario { roomId: string; visitadaEn: number; + /** Como le dice la gente. Null si nadie la ha nombrado: ahi se ve el id. */ + nombre?: string | null; } export interface Storage { diff --git a/web/src/cuenta.ts b/web/src/cuenta.ts index 7f02161..626f97b 100644 --- a/web/src/cuenta.ts +++ b/web/src/cuenta.ts @@ -96,8 +96,10 @@ export async function sincronizarSalas(): Promise { body: JSON.stringify({ salas: locales }), }); if (!res.ok) return locales; - const { salas } = (await res.json()) as { salas: { roomId: string; visitadaEn: number }[] }; - return salas.map((s) => ({ id: s.roomId, visitadaEn: s.visitadaEn })); + const { salas } = (await res.json()) as { + salas: { roomId: string; visitadaEn: number; nombre?: string | null }[]; + }; + return salas.map((s) => ({ id: s.roomId, visitadaEn: s.visitadaEn, nombre: s.nombre ?? null })); } catch { // Sin server, lo de este navegador sigue sirviendo. return locales;