refac: select action model behaviour

This commit is contained in:
Timothy Jaeryang Baek 2025-06-27 16:29:04 +04:00
parent 90257442e3
commit 3ff864eb63
5 changed files with 24 additions and 6 deletions

View file

@ -438,6 +438,7 @@
<Message <Message
{chatId} {chatId}
bind:history bind:history
{selectedModels}
messageId={message.id} messageId={message.id}
idx={messageIdx} idx={messageIdx}
{user} {user}

View file

@ -18,6 +18,8 @@
export let id; export let id;
export let content; export let content;
export let history; export let history;
export let selectedModels = [];
export let model = null; export let model = null;
export let sources = null; export let sources = null;
@ -25,11 +27,10 @@
export let preview = false; export let preview = false;
export let floatingButtons = true; export let floatingButtons = true;
export let onSave = () => {}; export let onSave = (e) => {};
export let onSourceClick = () => {}; export let onSourceClick = (e) => {};
export let onTaskClick = () => {}; export let onTaskClick = (e) => {};
export let onAddMessages = (e) => {};
export let onAddMessages = () => {};
let contentContainerElement; let contentContainerElement;
@ -125,6 +126,11 @@
}); });
</script> </script>
{(selectedModels ?? []).includes(model?.id)
? model?.id
: (selectedModels ?? []).length > 0
? selectedModels.at(0)
: model?.id}
<div bind:this={contentContainerElement}> <div bind:this={contentContainerElement}>
<Markdown <Markdown
{id} {id}
@ -192,7 +198,11 @@
<FloatingButtons <FloatingButtons
bind:this={floatingButtonsElement} bind:this={floatingButtonsElement}
{id} {id}
model={model?.id} model={(selectedModels ?? []).includes(model?.id)
? model?.id
: (selectedModels ?? []).length > 0
? selectedModels.at(0)
: model?.id}
messages={createMessagesList(history, id)} messages={createMessagesList(history, id)}
onAdd={({ modelId, parentId, messages }) => { onAdd={({ modelId, parentId, messages }) => {
console.log(modelId, parentId, messages); console.log(modelId, parentId, messages);

View file

@ -13,6 +13,7 @@
import UserMessage from './UserMessage.svelte'; import UserMessage from './UserMessage.svelte';
export let chatId; export let chatId;
export let selectedModels = [];
export let idx = 0; export let idx = 0;
export let history; export let history;
@ -70,6 +71,7 @@
{chatId} {chatId}
{history} {history}
{messageId} {messageId}
{selectedModels}
isLastMessage={messageId === history.currentId} isLastMessage={messageId === history.currentId}
siblings={history.messages[history.messages[messageId].parentId]?.childrenIds ?? []} siblings={history.messages[history.messages[messageId].parentId]?.childrenIds ?? []}
{gotoMessage} {gotoMessage}
@ -92,6 +94,7 @@
bind:history bind:history
{chatId} {chatId}
{messageId} {messageId}
{selectedModels}
isLastMessage={messageId === history?.currentId} isLastMessage={messageId === history?.currentId}
{updateChat} {updateChat}
{editMessage} {editMessage}

View file

@ -23,6 +23,7 @@
export let chatId; export let chatId;
export let history; export let history;
export let messageId; export let messageId;
export let selectedModels = [];
export let isLastMessage; export let isLastMessage;
export let readOnly = false; export let readOnly = false;
@ -252,6 +253,7 @@
{chatId} {chatId}
{history} {history}
messageId={_messageId} messageId={_messageId}
{selectedModels}
isLastMessage={true} isLastMessage={true}
siblings={groupedMessageIds[modelIdx].messageIds} siblings={groupedMessageIds[modelIdx].messageIds}
gotoMessage={(message, messageIdx) => gotoMessage(modelIdx, messageIdx)} gotoMessage={(message, messageIdx) => gotoMessage(modelIdx, messageIdx)}

View file

@ -106,6 +106,7 @@
export let chatId = ''; export let chatId = '';
export let history; export let history;
export let messageId; export let messageId;
export let selectedModels = [];
let message: MessageType = JSON.parse(JSON.stringify(history.messages[messageId])); let message: MessageType = JSON.parse(JSON.stringify(history.messages[messageId]));
$: if (history.messages) { $: if (history.messages) {
@ -795,6 +796,7 @@
<ContentRenderer <ContentRenderer
id={message.id} id={message.id}
{history} {history}
{selectedModels}
content={message.content} content={message.content}
sources={message.sources} sources={message.sources}
floatingButtons={message?.done && !readOnly} floatingButtons={message?.done && !readOnly}