diff --git a/src/routes/VerticalLayout/Header.svelte b/src/routes/VerticalLayout/Header.svelte index 98da8d1f..a9892047 100644 --- a/src/routes/VerticalLayout/Header.svelte +++ b/src/routes/VerticalLayout/Header.svelte @@ -78,7 +78,7 @@
diff --git a/src/routes/VerticalLayout/Sidebar.svelte b/src/routes/VerticalLayout/Sidebar.svelte index b32c5f74..9cc3e981 100644 --- a/src/routes/VerticalLayout/Sidebar.svelte +++ b/src/routes/VerticalLayout/Sidebar.svelte @@ -277,7 +277,7 @@
diff --git a/src/routes/chat/[agentId]/[conversationId]/chat-box.svelte b/src/routes/chat/[agentId]/[conversationId]/chat-box.svelte index 24ec15fd..506fbd0d 100644 --- a/src/routes/chat/[agentId]/[conversationId]/chat-box.svelte +++ b/src/routes/chat/[agentId]/[conversationId]/chat-box.svelte @@ -216,7 +216,7 @@ let isHandlingQueue = $state(false); let isStopStreamClicked = $state(false); - let isWaiting = $derived(isSendingMsg || isThinking || messageQueue.length > 0); + let isWaiting = $derived(isSendingMsg || isThinking || isStreaming || messageQueue.length > 0); let loadEditor = true; let disableAction = $derived(!ADMIN_ROLES.includes(currentUser?.role || '') && currentUser?.id !== conversationUser?.id @@ -916,7 +916,7 @@ return; } - if ((e.key === 'Enter' && (!!e.shiftKey || !!e.ctrlKey)) || e.key !== 'Enter' || !_.trim(text) || isSendingMsg || isThinking) { + if ((e.key === 'Enter' && (!!e.shiftKey || !!e.ctrlKey)) || e.key !== 'Enter' || !_.trim(text) || isWaiting) { return; } @@ -962,7 +962,7 @@ * @param {string} payload */ async function confirmSelectedOption(title, payload) { - if (isSendingMsg || isThinking) return; + if (isWaiting) return; const postback = buildPostbackMessage(dialogs, payload || title, null);; await sendChatMessage(title, { postback: postback }); @@ -1137,6 +1137,7 @@ * @param {string} messageId */ function deleteMessage(e, messageId) { + if (isWaiting || disableAction) return; handleDeleteMessage(messageId); } @@ -1153,6 +1154,7 @@ * @param {import('$conversationTypes').ChatResponseModel} message */ async function editMessage(message) { + if (isWaiting || disableAction) return; truncateMsgId = message?.message_id; editText = message?.text || ''; await tick(); @@ -1192,7 +1194,7 @@ /** @param {import('$conversationTypes').ChatResponseModel} message */ async function resendMessage(message) { - if (isSendingMsg || isThinking || disableAction) return; + if (isWaiting || disableAction) return; const msgId = message?.message_id; const msgText = message?.text || ''; if (!msgId || !msgText) return; @@ -1387,6 +1389,7 @@ /** @param {import('$conversationTypes').ChatResponseModel} message */ async function openBotMsgEditor(message) { + if (isWaiting || disableAction) return; let source = "text"; if (message.rich_content?.message?.text === message.text) { source = "both"; @@ -1975,6 +1978,7 @@ data-bs-toggle="tooltip" data-bs-placement="top" title="Edit" + aria-disabled={isWaiting || disableAction} onclick={() => editMessage(message)} > @@ -1988,7 +1992,7 @@ data-bs-toggle="tooltip" data-bs-placement="top" title="Resend" - aria-disabled={isSendingMsg || isThinking || disableAction} + aria-disabled={isWaiting || disableAction} onclick={() => resendMessage(message)} > @@ -2021,11 +2025,8 @@ data-bs-toggle="tooltip" data-bs-placement="top" title="Delete" - aria-disabled={isSendingMsg || isThinking || disableAction} - onclick={(e) => { - if (isSendingMsg || isThinking || disableAction) return; - deleteMessage(e, message.message_id); - }} + aria-disabled={isWaiting || disableAction} + onclick={(e) => deleteMessage(e, message.message_id)} >
@@ -2129,6 +2130,7 @@ data-bs-toggle="tooltip" data-bs-placement="top" title="Edit" + aria-disabled={isWaiting || disableAction} onclick={() => openBotMsgEditor(message)} > @@ -2209,11 +2211,11 @@ {/if} - + {#if !!lastBotMsg && !isSendingMsg && !isThinking} confirmSelectedOption(title, payload)} /> {/if} @@ -2229,7 +2231,7 @@ class={`cb-btn cb-btn-round ${mode === TRAINING_MODE ? 'cb-btn-danger' : 'cb-btn-primary'} ${isListening ? 'cb-btn-listening' : ''}`} aria-label="Start/stop listening" aria-pressed={isListening} - disabled={isSendingMsg || isThinking || disableAction} + disabled={isWaiting || disableAction} onclick={() => startListen()} > @@ -2242,7 +2244,7 @@ id={'chat-textarea'} className={`${!isLite ? 'cb-textarea-more-util' : ''}`} maxLength={maxTextLength} - disabled={isSendingMsg || isThinking || disableAction} + disabled={isWaiting || disableAction} bind:text={text} bind:loadUtils={loadChatUtils} bind:options={chatUtilOptions} @@ -2254,7 +2256,7 @@ refresh()} > @@ -2268,7 +2270,7 @@ refresh()} > @@ -2282,7 +2284,7 @@ refresh()} > @@ -2296,12 +2298,12 @@