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, --> - + {:else} + + + {/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} >