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
+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}