From 9cc9df301836cb9a10781dbae80f194839a2632e Mon Sep 17 00:00:00 2001 From: Perry Li Date: Thu, 6 Mar 2025 10:10:53 +0000 Subject: [PATCH] fix(chat): resolve duplicate collapsible IDs causing citation modal failures Fix an issue where clicking inline citations in subsequent chat messages failed to open the citation modal when multiple collapsible sections are present. The root cause was duplicate "collapsible-sources" IDs assigned to all Collapsible components. This led document.getElementById() to always return the first instance, preventing subsequent messages from opening their CitationModal. Changes: - Modify Collapsible ID generation in Citations.svelte to use unique IDs with "collapsible-${message.id}" pattern - Update ResponseMessage.svelte's onSourceClick handler to reference the dynamic collapsible IDs - Ensure proper citation modal binding for each chat message's sources Affected components: - Collapsible (expandable content sections) - CitationsModal (citation detail popup) This ensures each chat message's sources are independently collapsible and maintains proper citation modal binding throughout message history. --- src/lib/components/chat/Messages/Citations.svelte | 2 +- src/lib/components/chat/Messages/ResponseMessage.svelte | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/components/chat/Messages/Citations.svelte b/src/lib/components/chat/Messages/Citations.svelte index 893a64608..4a8361338 100644 --- a/src/lib/components/chat/Messages/Citations.svelte +++ b/src/lib/components/chat/Messages/Citations.svelte @@ -124,7 +124,7 @@ {:else} { console.log(id, idx); let sourceButton = document.getElementById(`source-${message.id}-${idx}`); - const sourcesCollapsible = document.getElementById(`collapsible-sources`); + const sourcesCollapsible = document.getElementById(`collapsible-${message.id}`); if (sourceButton) { sourceButton.click();