Skip to content

Commit d3f2cf7

Browse files
committed
refac
1 parent 62750b8 commit d3f2cf7

2 files changed

Lines changed: 42 additions & 15 deletions

File tree

src/lib/components/chat/Chat.svelte

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1653,21 +1653,27 @@
16531653
16541654
// Check if there are pending tasks (more reliable than lastMessage.done)
16551655
if (taskIds !== null && taskIds.length > 0) {
1656-
// Tasks pending - queue the message instead of blocking
1657-
const _files = JSON.parse(JSON.stringify(files));
1658-
messageQueue = [
1659-
...messageQueue,
1660-
{
1661-
id: uuidv4(),
1662-
prompt: userPrompt,
1663-
files: _files
1664-
}
1665-
];
1666-
// Clear input
1667-
messageInput?.setText('');
1668-
prompt = '';
1669-
files = [];
1670-
return;
1656+
if ($settings?.enableMessageQueue ?? true) {
1657+
// Queue the message
1658+
const _files = JSON.parse(JSON.stringify(files));
1659+
messageQueue = [
1660+
...messageQueue,
1661+
{
1662+
id: uuidv4(),
1663+
prompt: userPrompt,
1664+
files: _files
1665+
}
1666+
];
1667+
// Clear input
1668+
messageInput?.setText('');
1669+
prompt = '';
1670+
files = [];
1671+
return;
1672+
} else {
1673+
// Interrupt: stop current generation and proceed
1674+
await stopResponse();
1675+
await tick();
1676+
}
16711677
}
16721678
16731679
if (history?.currentId) {

src/lib/components/chat/Settings/Interface.svelte

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
let insertFollowUpPrompt = false;
5959
6060
let regenerateMenu = true;
61+
let enableMessageQueue = true;
6162
6263
let landingPageMode = '';
6364
let chatBubble = true;
@@ -224,6 +225,7 @@
224225
insertFollowUpPrompt = $settings?.insertFollowUpPrompt ?? false;
225226
226227
regenerateMenu = $settings?.regenerateMenu ?? true;
228+
enableMessageQueue = $settings?.enableMessageQueue ?? true;
227229
228230
largeTextAsFile = $settings?.largeTextAsFile ?? false;
229231
copyFormatted = $settings?.copyFormatted ?? false;
@@ -584,6 +586,25 @@
584586

585587
<div class=" my-2 text-sm font-medium">{$i18n.t('Chat')}</div>
586588

589+
<div>
590+
<div class=" py-0.5 flex w-full justify-between">
591+
<div id="enable-message-queue-label" class=" self-center text-xs">
592+
{$i18n.t('Enable Message Queue')}
593+
</div>
594+
595+
<div class="flex items-center gap-2 p-1">
596+
<Switch
597+
ariaLabelledbyId="enable-message-queue-label"
598+
tooltip={true}
599+
bind:state={enableMessageQueue}
600+
on:change={() => {
601+
saveSettings({ enableMessageQueue });
602+
}}
603+
/>
604+
</div>
605+
</div>
606+
</div>
607+
587608
<div>
588609
<div class=" py-0.5 flex w-full justify-between">
589610
<div id="chat-direction-label" class=" self-center text-xs">

0 commit comments

Comments
 (0)