Fiks revisjonshistorikk: invalider cache etter AI-vask, hent alltid ferske revisjoner
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
9277fc6012
commit
c5bd0c0130
2 changed files with 24 additions and 7 deletions
|
|
@ -63,16 +63,21 @@
|
||||||
});
|
});
|
||||||
if (!res.ok) return;
|
if (!res.ok) return;
|
||||||
const { job_id } = await res.json();
|
const { job_id } = await res.json();
|
||||||
// Sett lokal processing-state umiddelbart
|
// Sett lokal processing-state umiddelbart (via array-reassign for reaktivitet)
|
||||||
const msg = chat?.messages.find(m => m.id === messageId);
|
if (chat) {
|
||||||
if (msg) msg.metadata = { ...msg.metadata, ai_processing: true };
|
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
|
// Poll jobb-status
|
||||||
pollJob(job_id);
|
pollJob(job_id, messageId);
|
||||||
} catch { /* stille feil */ }
|
} catch { /* stille feil */ }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
function pollJob(jobId: string) {
|
function pollJob(jobId: string, messageId?: string) {
|
||||||
const interval = setInterval(async () => {
|
const interval = setInterval(async () => {
|
||||||
try {
|
try {
|
||||||
const res = await fetch(`/api/jobs/${jobId}`);
|
const res = await fetch(`/api/jobs/${jobId}`);
|
||||||
|
|
|
||||||
|
|
@ -203,6 +203,18 @@
|
||||||
|
|
||||||
let isAiProcessing = $derived(message.metadata?.ai_processing === true);
|
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) ---
|
// --- Revisjonshistorikk (generell — gjelder alle redigerte meldinger) ---
|
||||||
|
|
||||||
interface Revision {
|
interface Revision {
|
||||||
|
|
@ -217,7 +229,6 @@
|
||||||
let revisionsLoaded = $state(false);
|
let revisionsLoaded = $state(false);
|
||||||
|
|
||||||
async function loadRevisions() {
|
async function loadRevisions() {
|
||||||
if (revisionsLoaded) return;
|
|
||||||
loadingRevisions = true;
|
loadingRevisions = true;
|
||||||
try {
|
try {
|
||||||
const res = await fetch(`/api/messages/${message.id}/revisions`);
|
const res = await fetch(`/api/messages/${message.id}/revisions`);
|
||||||
|
|
@ -238,9 +249,10 @@
|
||||||
revisionIndex = -1;
|
revisionIndex = -1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Alltid hent på nytt når bruker klikker (kan ha kommet nye revisjoner)
|
||||||
await loadRevisions();
|
await loadRevisions();
|
||||||
if (revisions.length > 0) {
|
if (revisions.length > 0) {
|
||||||
revisionIndex = 0; // Vis nyeste revisjon (original)
|
revisionIndex = 0; // Vis nyeste revisjon
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue