diff --git a/src/lib/components/workspace/Knowledge/KnowledgeBase/FileViewer.svelte b/src/lib/components/workspace/Knowledge/KnowledgeBase/FileViewer.svelte
index 18fc7a732c..d88dc40e2f 100644
--- a/src/lib/components/workspace/Knowledge/KnowledgeBase/FileViewer.svelte
+++ b/src/lib/components/workspace/Knowledge/KnowledgeBase/FileViewer.svelte
@@ -74,7 +74,11 @@
try {
const content = await getFileIndexedText(localStorage.token, file.id!, signal);
if (!signal.aborted)
- state = { ...state, indexed: content, draft: state.editing ? state.draft : content };
+ state = {
+ ...state,
+ indexed: content,
+ draft: state.editing && state.indexed !== null ? state.draft : content
+ };
} catch (error) {
if (!signal.aborted) indexedError = message(error);
} finally {
@@ -184,7 +188,7 @@
}
};
const save = async () => {
- if (!writeAccess || saving || !state.editing) return;
+ if (!writeAccess || saving || !state.editing || state.indexed === null) return;
state.draft = indexedEditor?.getValue() ?? state.draft;
saving = true;
try {
@@ -230,19 +234,19 @@
aria-pressed={state.mode === 'indexed'}
on:click={() => (state.mode = 'indexed')}>{$i18n.t('Indexed text')}
- {#if state.mode === 'indexed' && state.indexed !== null && writeAccess}
+ {#if writeAccess}
{#if state.editing}