enh: follow up prompts behaviour

This commit is contained in:
Timothy Jaeryang Baek
2025-07-18 17:49:24 +04:00
parent 5e4e1cf662
commit c414f0c3ce
7 changed files with 86 additions and 2 deletions
@@ -21,6 +21,7 @@
export let user;
export let setInputText: Function = () => {};
export let gotoMessage;
export let showPreviousMessage;
export let showNextMessage;
@@ -74,6 +75,7 @@
{selectedModels}
isLastMessage={messageId === history.currentId}
siblings={history.messages[history.messages[messageId].parentId]?.childrenIds ?? []}
{setInputText}
{gotoMessage}
{showPreviousMessage}
{showNextMessage}
@@ -96,6 +98,7 @@
{messageId}
{selectedModels}
isLastMessage={messageId === history?.currentId}
{setInputText}
{updateChat}
{editMessage}
{saveMessage}
@@ -28,6 +28,7 @@
export let isLastMessage;
export let readOnly = false;
export let setInputText: Function = () => {};
export let updateChat: Function;
export let editMessage: Function;
export let saveMessage: Function;
@@ -259,6 +260,7 @@
gotoMessage={(message, messageIdx) => gotoMessage(modelIdx, messageIdx)}
showPreviousMessage={() => showPreviousMessage(modelIdx)}
showNextMessage={() => showNextMessage(modelIdx)}
{setInputText}
{updateChat}
{editMessage}
{saveMessage}
@@ -117,6 +117,7 @@
export let siblings;
export let setInputText: Function = () => {};
export let gotoMessage: Function = () => {};
export let showPreviousMessage: Function;
export let showNextMessage: Function;
@@ -1464,12 +1465,18 @@
/>
{/if}
{#if isLastMessage && message.done && !readOnly && (message?.followUps ?? []).length > 0}
{#if (isLastMessage || ($settings?.keepFollowUpPrompts ?? false)) && message.done && !readOnly && (message?.followUps ?? []).length > 0}
<div class="mt-2.5" in:fade={{ duration: 100 }}>
<FollowUps
followUps={message?.followUps}
onClick={(prompt) => {
submitMessage(message?.id, prompt);
if ($settings?.insertFollowUpPrompt ?? false) {
// Insert the follow-up prompt into the input box
setInputText(prompt);
} else {
// Submit the follow-up prompt directly
submitMessage(message?.id, prompt);
}
}}
/>
</div>