This commit is contained in:
retoor 2025-06-29 17:39:32 +02:00
parent 006882cd6f
commit 1e6f8b9cd8

View File

@ -3,6 +3,10 @@ class STTButton extends HTMLElement {
static get observedAttributes() { return ['target']; } static get observedAttributes() { return ['target']; }
simulateTypingWithEvents(element, text, delay = 100) { simulateTypingWithEvents(element, text, delay = 100) {
let resolver = null
let promise = new Promise((resolve, reject)=>{
resolver = resolve
})
let index = 0; let index = 0;
function triggerEvent(type, key) { function triggerEvent(type, key) {
@ -39,8 +43,10 @@ class STTButton extends HTMLElement {
index++; index++;
} else { } else {
clearInterval(interval); clearInterval(interval);
resolver()
} }
}, delay); }, delay);
return promise
} }
constructor() { constructor() {
@ -102,13 +108,17 @@ this.recog.onresult = (e) => {
committed += punctuated + ' '; // add to permanent text committed += punctuated + ' '; // add to permanent text
if (this.targetEl) { if (this.targetEl) {
this.targetEl.focus() this.targetEl.focus()
punctuated = punctuated.replace(/\./g, ".\n") punctuated = punctuated.replace(/\./g, ".\n")
punctuated = punctuated.replace(/\?/g, "?\n") punctuated = punctuated.replace(/\?/g, "?\n")
punctuated = punctuated.replace(/\!/g, "!\n") punctuated = punctuated.replace(/\!/g, "!\n")
this.simulateTypingWithEvents(this.targetEl, punctuated,1) this.simulateTypingWithEvents(this.targetEl, punctuated,1).then(()=>{
const chatInput = document.querySelector('chat-input')
chatInput.finalizeMessage()
})
//triggerEvent('keydown', "Enter"); //triggerEvent('keydown', "Enter");
triggerEvent('keyup', "Enter");
//this.targetEl.value = committed + interim //this.targetEl.value = committed + interim
/*this.targetElement.dispatchEvent(new ChangeEvent('change', { /*this.targetElement.dispatchEvent(new ChangeEvent('change', {