diff --git a/src/lib/components/chat/Messages/Citations.svelte b/src/lib/components/chat/Messages/Citations.svelte index b24d1fe89..a40830bf9 100644 --- a/src/lib/components/chat/Messages/Citations.svelte +++ b/src/lib/components/chat/Messages/Citations.svelte @@ -121,7 +121,7 @@ {/each} {:else} - +
diff --git a/src/lib/components/chat/Messages/ResponseMessage.svelte b/src/lib/components/chat/Messages/ResponseMessage.svelte index f6a4b0bc0..f957c7445 100644 --- a/src/lib/components/chat/Messages/ResponseMessage.svelte +++ b/src/lib/components/chat/Messages/ResponseMessage.svelte @@ -679,12 +679,27 @@ floatingButtons={message?.done} save={!readOnly} {model} - onSourceClick={(e) => { + onSourceClick={async (e) => { console.log(e); - const sourceButton = document.getElementById(`source-${e}`); + let sourceButton = document.getElementById(`source-${e}`); + const sourcesCollapsible = document.getElementById(`collapsible-sources`); if (sourceButton) { sourceButton.click(); + } else if (sourcesCollapsible) { + // Open sources collapsible so we can click the source button + sourcesCollapsible.querySelector("div:first-child").dispatchEvent(new PointerEvent('pointerup', {})) + + // Wait for next frame to ensure DOM updates + await new Promise(resolve => { + requestAnimationFrame(() => { + requestAnimationFrame(resolve); + }); + }); + + // Try clicking the source button again + sourceButton = document.getElementById(`source-${e}`); + sourceButton && sourceButton.click(); } }} onAddMessages={({ modelId, parentId, messages }) => { diff --git a/src/lib/components/common/Collapsible.svelte b/src/lib/components/common/Collapsible.svelte index 4f6b1ea95..d437e9840 100644 --- a/src/lib/components/common/Collapsible.svelte +++ b/src/lib/components/common/Collapsible.svelte @@ -34,6 +34,7 @@ import Spinner from './Spinner.svelte'; export let open = false; + export let id = ''; export let className = ''; export let buttonClassName = 'w-fit text-gray-500 hover:text-gray-700 dark:hover:text-gray-300 transition'; @@ -46,7 +47,7 @@ export let hide = false; -
+
{#if title !== null}