Browse Source

Merge pull request #335 from ollama-webui/edit-message-shortcut

feat: arrowup edit message shortcut
Timothy Jaeryang Baek 1 năm trước cách đây
mục cha
commit
6c68e473cd

+ 18 - 0
src/lib/components/chat/MessageInput.svelte

@@ -298,6 +298,24 @@
 									submitPrompt(prompt);
 									submitPrompt(prompt);
 								}
 								}
 							}}
 							}}
+							on:keydown={(e) => {
+								if (prompt === '' && e.key == 'ArrowUp') {
+									e.preventDefault();
+
+									const userMessageElement = [
+										...document.getElementsByClassName('user-message')
+									]?.at(-1);
+
+									const editButton = [
+										...document.getElementsByClassName('edit-user-message-button')
+									]?.at(-1);
+
+									console.log(userMessageElement);
+
+									userMessageElement.scrollIntoView({ block: 'center' });
+									editButton?.click();
+								}
+							}}
 							rows="1"
 							rows="1"
 							on:input={(e) => {
 							on:input={(e) => {
 								e.target.style.height = '';
 								e.target.style.height = '';

+ 6 - 2
src/lib/components/chat/Messages/UserMessage.svelte

@@ -24,6 +24,8 @@
 
 
 		editElement.style.height = '';
 		editElement.style.height = '';
 		editElement.style.height = `${editElement.scrollHeight}px`;
 		editElement.style.height = `${editElement.scrollHeight}px`;
+
+		editElement?.focus();
 	};
 	};
 
 
 	const editMessageConfirmHandler = async () => {
 	const editMessageConfirmHandler = async () => {
@@ -43,7 +45,9 @@
 	<ProfileImage src={user?.profile_image_url ?? '/user.png'} />
 	<ProfileImage src={user?.profile_image_url ?? '/user.png'} />
 
 
 	<div class="w-full overflow-hidden">
 	<div class="w-full overflow-hidden">
-		<Name>You</Name>
+		<div class="user-message">
+			<Name>You</Name>
+		</div>
 
 
 		<div
 		<div
 			class="prose chat-{message.role} w-full max-w-full dark:prose-invert prose-headings:my-0 prose-p:my-0 prose-p:-mb-4 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-img:my-0 prose-ul:-my-4 prose-ol:-my-4 prose-li:-my-3 prose-ul:-mb-6 prose-ol:-mb-6 prose-li:-mb-4 whitespace-pre-line"
 			class="prose chat-{message.role} w-full max-w-full dark:prose-invert prose-headings:my-0 prose-p:my-0 prose-p:-mb-4 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-img:my-0 prose-ul:-my-4 prose-ol:-my-4 prose-li:-my-3 prose-ul:-mb-6 prose-ol:-mb-6 prose-li:-mb-4 whitespace-pre-line"
@@ -145,7 +149,7 @@
 						{/if}
 						{/if}
 
 
 						<button
 						<button
-							class="invisible group-hover:visible p-1 rounded dark:hover:bg-gray-800 transition"
+							class="invisible group-hover:visible p-1 rounded dark:hover:bg-gray-800 transition edit-user-message-button"
 							on:click={() => {
 							on:click={() => {
 								editMessageHandler();
 								editMessageHandler();
 							}}
 							}}