feat: version 2.10.2 -- icono de compartida + buscador en tarjetas de Notas

Tarjetas de Notas: icono junto a la fecha cuando la nota esta compartida (propia compartida
con alguien, via share_count nuevo en la consulta; o recibida de otro usuario). Buscador
junto al titulo que filtra las tarjetas en vivo por contenido (client-side, sin ida y vuelta
al backend ya que el contenido no esta cifrado como en Contraseñas).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Milton Gonzalez
2026-10-12 15:37:31 -05:00
parent da4d83e7cc
commit 98d9196791
7 changed files with 31 additions and 9 deletions
+3 -2
View File
@@ -5,14 +5,15 @@ import { pool } from '../../config/db.js';
export async function findVisibleToUser(userId) {
const [rows] = await pool.query(
`SELECT n.id, n.user_id, n.content, n.created_at, n.updated_at,
(n.user_id = ?) AS is_owner, u.name AS owner_name
(n.user_id = ?) AS is_owner, u.name AS owner_name,
(SELECT COUNT(*) FROM note_shares ns WHERE ns.note_id = n.id) AS share_count
FROM notes n
JOIN users u ON u.id = n.user_id
WHERE n.user_id = ? OR n.id IN (SELECT note_id FROM note_shares WHERE user_id = ?)
ORDER BY n.updated_at DESC`,
[userId, userId, userId]
);
return rows.map((r) => ({ ...r, is_owner: !!r.is_owner }));
return rows.map((r) => ({ ...r, is_owner: !!r.is_owner, share_count: Number(r.share_count) }));
}
export async function findById(id) {