浏览代码

refac: explain button behaviour

Timothy J. Baek 7 月之前
父节点
当前提交
ed1a2ab5e8
共有 2 个文件被更改,包括 59 次插入8 次删除
  1. 54 4
      src/lib/components/chat/Chat.svelte
  2. 5 4
      src/lib/components/chat/Messages/ResponseMessage.svelte

+ 54 - 4
src/lib/components/chat/Chat.svelte

@@ -1979,9 +1979,35 @@
 									{mergeResponses}
 									{chatActionHandler}
 									bottomPadding={files.length > 0}
-									on:submit={(e) => {
+									on:submit={async (e) => {
 										if (e.detail) {
-											submitPrompt(e.detail);
+											// New user message
+											let userPrompt = e.detail.prompt;
+											let userMessageId = uuidv4();
+
+											let userMessage = {
+												id: userMessageId,
+												parentId: e.detail.parentId,
+												childrenIds: [],
+												role: 'user',
+												content: userPrompt,
+												models: selectedModels
+											};
+
+											let messageParentId = e.detail.parentId;
+
+											if (messageParentId !== null) {
+												history.messages[messageParentId].childrenIds = [
+													...history.messages[messageParentId].childrenIds,
+													userMessageId
+												];
+											}
+
+											history.messages[userMessageId] = userMessage;
+											history.currentId = userMessageId;
+
+											await tick();
+											await sendPrompt(userPrompt, userMessageId);
 										}
 									}}
 								/>
@@ -2045,9 +2071,33 @@
 							{createMessagePair}
 							on:submit={async (e) => {
 								if (e.detail) {
-									prompt = '';
+									// New user message
+									let userPrompt = e.detail.prompt;
+									let userMessageId = uuidv4();
+
+									let userMessage = {
+										id: userMessageId,
+										parentId: e.detail.parentId,
+										childrenIds: [],
+										role: 'user',
+										content: userPrompt,
+										models: selectedModels
+									};
+
+									let messageParentId = e.detail.parentId;
+
+									if (messageParentId !== null) {
+										history.messages[messageParentId].childrenIds = [
+											...history.messages[messageParentId].childrenIds,
+											userMessageId
+										];
+									}
+
+									history.messages[userMessageId] = userMessage;
+									history.currentId = userMessageId;
+
 									await tick();
-									submitPrompt(e.detail);
+									await sendPrompt(userPrompt, userMessageId);
 								}
 							}}
 						/>

+ 5 - 4
src/lib/components/chat/Messages/ResponseMessage.svelte

@@ -491,13 +491,14 @@
 											dispatch('update');
 										}}
 										on:explain={(e) => {
-											dispatch(
-												'submit',
-												`Can you explain this section to me in more detail?\n\n` +
+											dispatch('submit', {
+												parentId: message.id,
+												prompt:
+													`Can you explain this section to me in more detail?\n\n` +
 													'```\n' +
 													e.detail +
 													'\n```'
-											);
+											});
 										}}
 									/>
 								{/if}