fix: version 2.11.3 -- badges de Comentarios/Documentos de actividad no se actualizaban en vivo

CommentsPanel/AttachmentsPanel ya soportaban un onChanged opcional (agregado en 2.11.1 para
el nivel de proyecto), pero ActivityDetailPanel.jsx no se lo pasaba -- el badge de su propia
pestaña se quedaba con el numero viejo hasta cambiar de pestaña y volver (que es lo unico que
dispara el refetch de comments/attachments ahi). Se conecta reloadComments/reloadAttachments
como onChanged.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Milton Gonzalez
2026-10-14 12:12:03 -05:00
parent 47fe36a64e
commit e5dfc2feff
5 changed files with 17 additions and 9 deletions
+7
View File
@@ -1,5 +1,12 @@
# Changelog - project.linkedcorp.net
## [2.11.3] - 2026-10-14
### Fixed
- Popup de actividad: los badges de "Comentarios" y "Documentos" se quedaban pegados en el
número viejo al agregar/borrar algo estando parado en esa misma pestaña (recién se
actualizaban al cambiar de pestaña y volver). Mismo fix que ya se había aplicado al nivel de
proyecto, pendiente de aplicar aquí también.
## [2.11.2] - 2026-10-14
### Changed
- Badge "Tareas" del popup de actividad: pasa de mostrar pendientes/total (ej. "3/4") a
+1 -1
View File
@@ -1 +1 @@
2.11.2
2.11.3
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "project-linkedcorp-backend",
"version": "2.11.2",
"version": "2.11.3",
"private": true,
"type": "module",
"main": "src/server.js",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "project-linkedcorp-frontend",
"private": true,
"version": "2.11.2",
"version": "2.11.3",
"type": "module",
"scripts": {
"dev": "vite",
@@ -43,10 +43,11 @@ export default function ActivityDetailPanel({ activity, projectId, siblingActivi
});
const [tab, setTab] = useState(initialTab || 'detail');
// Recargadas al cambiar de pestaña (listas livianas) para que los contadores de las pestañas
// se mantengan al dia sin necesidad de que CommentsPanel/AttachmentsPanel avisen al padre.
const { data: comments } = useAsync(() => listComments('activity', activity.id), [activity.id, tab]);
const { data: attachments } = useAsync(() => listAttachments('activity', activity.id), [activity.id, tab]);
// Se recargan al cambiar de pestaña, y ademas CommentsPanel/AttachmentsPanel avisan via
// onChanged cuando se agrega/borra algo estando ya parado en esa pestaña (si no, el badge se
// quedaba pegado en el numero viejo hasta cambiar de pestaña y volver).
const { data: comments, reload: reloadComments } = useAsync(() => listComments('activity', activity.id), [activity.id, tab]);
const { data: attachments, reload: reloadAttachments } = useAsync(() => listAttachments('activity', activity.id), [activity.id, tab]);
const [editing, setEditing] = useState(false);
const [form, setForm] = useState(() => toForm(activity));
const [newTask, setNewTask] = useState('');
@@ -305,8 +306,8 @@ export default function ActivityDetailPanel({ activity, projectId, siblingActivi
</div>
)}
{tab === 'comments' && <CommentsPanel entityType="activity" entityId={activity.id} />}
{tab === 'documents' && <AttachmentsPanel entityType="activity" entityId={activity.id} />}
{tab === 'comments' && <CommentsPanel entityType="activity" entityId={activity.id} onChanged={reloadComments} />}
{tab === 'documents' && <AttachmentsPanel entityType="activity" entityId={activity.id} onChanged={reloadAttachments} />}
<DetailPopup
open={!!promoting}