diff --git a/src/lib/components/notes/NoteEditor.svelte b/src/lib/components/notes/NoteEditor.svelte
index 5822a6b9b0..d81abcdb50 100644
--- a/src/lib/components/notes/NoteEditor.svelte
+++ b/src/lib/components/notes/NoteEditor.svelte
@@ -120,6 +120,8 @@
let enhancing = false;
let streaming = false;
+ let stopResponseFlag = false;
+
let inputElement = null;
const init = async () => {
@@ -214,6 +216,11 @@
versionIdx = null;
}
+ const stopResponseHandler = async () => {
+ stopResponseFlag = true;
+ console.log('stopResponse', stopResponseFlag);
+ };
+
function setContentByVersion(versionIdx) {
if (!note.data.versions?.length) return;
let idx = versionIdx;
@@ -578,7 +585,13 @@ Provide the enhanced notes in markdown format. Use markdown syntax for headings,
while (true) {
const { value, done } = await reader.read();
- if (done) {
+ if (done || stopResponseFlag) {
+ if (stopResponseFlag) {
+ controller.abort('User: Stop Response');
+ }
+
+ enhancing = false;
+ streaming = false;
break;
}
@@ -1019,22 +1032,28 @@ Provide the enhanced notes in markdown format. Use markdown syntax for headings,
-->
-
+ {/if}
{/if}
@@ -1050,8 +1069,10 @@ Provide the enhanced notes in markdown format. Use markdown syntax for headings,
bind:note
bind:enhancing
bind:streaming
+ bind:stopResponseFlag
{files}
onInsert={insertHandler}
+ onStop={stopResponseHandler}
/>
{:else if selectedPanel === 'settings'}
diff --git a/src/lib/components/notes/NoteEditor/Chat.svelte b/src/lib/components/notes/NoteEditor/Chat.svelte
index 7e20fca297..cff1d2e3ce 100644
--- a/src/lib/components/notes/NoteEditor/Chat.svelte
+++ b/src/lib/components/notes/NoteEditor/Chat.svelte
@@ -31,6 +31,7 @@
export let enhancing = false;
export let streaming = false;
+ export let stopResponseFlag = false;
export let note = null;
@@ -38,12 +39,12 @@
export let messages = [];
export let onInsert = (content) => {};
+ export let onStop = () => {};
export let scrollToBottomHandler = () => {};
let loaded = false;
let loading = false;
- let stopResponseFlag = false;
let messagesContainerElement: HTMLDivElement;
@@ -88,11 +89,6 @@ Based on the user's instruction, update and enhance the existing notes by incorp
}
};
- const stopHandler = () => {
- stopResponseFlag = true;
- console.log('stopResponse');
- };
-
const chatCompletionHandler = async () => {
if (selectedModelId === '') {
toast.error($i18n.t('Please select a model.'));
@@ -341,7 +337,7 @@ Based on the user's instruction, update and enhance the existing notes by incorp
acceptFiles={false}
inputLoading={loading}
onSubmit={submitHandler}
- onStop={stopHandler}
+ {onStop}
>