diff --git a/web/src/lib/blocks/ChatBlock.svelte b/web/src/lib/blocks/ChatBlock.svelte index 8f14ac2..84efa40 100644 --- a/web/src/lib/blocks/ChatBlock.svelte +++ b/web/src/lib/blocks/ChatBlock.svelte @@ -63,16 +63,21 @@ }); if (!res.ok) return; const { job_id } = await res.json(); - // Sett lokal processing-state umiddelbart - const msg = chat?.messages.find(m => m.id === messageId); - if (msg) msg.metadata = { ...msg.metadata, ai_processing: true }; + // Sett lokal processing-state umiddelbart (via array-reassign for reaktivitet) + if (chat) { + const msgs = chat.messages; + const idx = msgs.findIndex(m => m.id === messageId); + if (idx >= 0) { + msgs[idx] = { ...msgs[idx], metadata: { ...msgs[idx].metadata, ai_processing: true } }; + } + } // Poll jobb-status - pollJob(job_id); + pollJob(job_id, messageId); } catch { /* stille feil */ } } }; - function pollJob(jobId: string) { + function pollJob(jobId: string, messageId?: string) { const interval = setInterval(async () => { try { const res = await fetch(`/api/jobs/${jobId}`); diff --git a/web/src/lib/components/MessageBox.svelte b/web/src/lib/components/MessageBox.svelte index 9e12ff3..ffa478c 100644 --- a/web/src/lib/components/MessageBox.svelte +++ b/web/src/lib/components/MessageBox.svelte @@ -203,6 +203,18 @@ let isAiProcessing = $derived(message.metadata?.ai_processing === true); + // Når AI-prosessering fullføres, invalider revisjonscache og vis nåværende versjon + let prevAiProcessing = $state(false); + $effect(() => { + const wasProcessing = prevAiProcessing; + prevAiProcessing = isAiProcessing; + if (wasProcessing && !isAiProcessing) { + // AI ferdig — invalider cache så neste klikk henter oppdaterte revisjoner + revisionsLoaded = false; + revisionIndex = -1; + } + }); + // --- Revisjonshistorikk (generell — gjelder alle redigerte meldinger) --- interface Revision { @@ -217,7 +229,6 @@ let revisionsLoaded = $state(false); async function loadRevisions() { - if (revisionsLoaded) return; loadingRevisions = true; try { const res = await fetch(`/api/messages/${message.id}/revisions`); @@ -238,9 +249,10 @@ revisionIndex = -1; return; } + // Alltid hent på nytt når bruker klikker (kan ha kommet nye revisjoner) await loadRevisions(); if (revisions.length > 0) { - revisionIndex = 0; // Vis nyeste revisjon (original) + revisionIndex = 0; // Vis nyeste revisjon } }