fix: mark-as-read for items from orphan channels

Items from channels with userId: null (created during earlier setup)
appeared in the unified timeline but had no _channelUid, causing the
mark-read JS handler to silently abort. Fall back to channelId (MongoDB
ObjectId) when channelUid is unavailable, and resolve it server-side
via getChannelById.

Confab-Link: http://localhost:8080/sessions/4d40ef89-a713-48c1-b4ed-0ffafca25677
This commit is contained in:
Ricardo
2026-03-05 20:25:30 +01:00
parent 90b47627e2
commit d1f0fffe35
3 changed files with 15 additions and 5 deletions

View File

@@ -108,7 +108,8 @@
const itemId = button.dataset.itemId;
const channelUid = button.dataset.channelUid;
if (!itemId || !channelUid) return;
const channelId = button.dataset.channelId;
if (!itemId || (!channelUid && !channelId)) return;
button.disabled = true;
@@ -116,7 +117,7 @@
const formData = new URLSearchParams();
formData.append('action', 'timeline');
formData.append('method', 'mark_read');
formData.append('channel', channelUid);
formData.append('channel', channelUid || channelId);
formData.append('entry', itemId);
const response = await fetch(microsubApiUrl, {