Преглед на файлове

rf: dom queries in ChatCompletion component

Carlos Daniel Vilaseca преди 1 година
родител
ревизия
0def6f8724
променени са 1 файла, в които са добавени 6 реда и са изтрити 6 реда
  1. 6 6
      src/lib/components/playground/ChatCompletion.svelte

+ 6 - 6
src/lib/components/playground/ChatCompletion.svelte

@@ -2,10 +2,9 @@
 	import { onMount } from 'svelte';
 	import { onMount } from 'svelte';
 
 
 	export let messages = [];
 	export let messages = [];
-
+	let textareaElement: HTMLTextAreaElement;
 	onMount(() => {
 	onMount(() => {
 		messages.forEach((message, idx) => {
 		messages.forEach((message, idx) => {
-			let textareaElement = document.getElementById(`${message.role}-${idx}-textarea`);
 			textareaElement.style.height = '';
 			textareaElement.style.height = '';
 			textareaElement.style.height = textareaElement.scrollHeight + 'px';
 			textareaElement.style.height = textareaElement.scrollHeight + 'px';
 		});
 		});
@@ -27,16 +26,17 @@
 			<div class="flex-1">
 			<div class="flex-1">
 				<textarea
 				<textarea
 					id="{message.role}-{idx}-textarea"
 					id="{message.role}-{idx}-textarea"
+					bind:this={textareaElement}
 					class="w-full bg-transparent outline-none rounded-lg p-2 text-sm resize-none overflow-hidden"
 					class="w-full bg-transparent outline-none rounded-lg p-2 text-sm resize-none overflow-hidden"
 					placeholder="Enter {message.role === 'user' ? 'a user' : 'an assistant'} message here"
 					placeholder="Enter {message.role === 'user' ? 'a user' : 'an assistant'} message here"
 					rows="1"
 					rows="1"
 					on:input={(e) => {
 					on:input={(e) => {
-						e.target.style.height = '';
-						e.target.style.height = e.target.scrollHeight + 'px';
+						textareaElement.style.height = '';
+						textareaElement.style.height = textareaElement.scrollHeight + 'px';
 					}}
 					}}
 					on:focus={(e) => {
 					on:focus={(e) => {
-						e.target.style.height = '';
-						e.target.style.height = e.target.scrollHeight + 'px';
+						textareaElement.style.height = '';
+						textareaElement.style.height = textareaElement.scrollHeight + 'px';
 
 
 						// e.target.style.height = Math.min(e.target.scrollHeight, 200) + 'px';
 						// e.target.style.height = Math.min(e.target.scrollHeight, 200) + 'px';
 					}}
 					}}