import {q} from "./basic.js" import {store} from "./store/store.js" import * as lsm from "./lsm.js" import {chat} from "./chat.js" let sentIndex = 0 const input = q("#c-chat-textarea") store.activeRoom.subscribe("changeSelf", () => { if (store.activeRoom.exists()) { input.focus() } }) input.addEventListener("keydown", event => { if (event.key === "Enter" && !event.shiftKey && !event.ctrlKey) { event.preventDefault() const body = input.value send(input.value) input.value = "" fixHeight() } }) input.addEventListener("input", () => { fixHeight() }) function fixHeight() { input.style.height = "0px" // console.log(input.clientHeight, input.scrollHeight) input.style.height = (input.scrollHeight + 1) + "px" } function getTxnId() { return Date.now() + (sentIndex++) } function send(body) { if (!store.activeRoom.exists()) return const id = store.activeRoom.value().id return fetch(`${lsm.get("domain")}/_matrix/client/r0/rooms/${id}/send/m.room.message/${getTxnId()}?access_token=${lsm.get("access_token")}`, { method: "PUT", body: JSON.stringify({ msgtype: "m.text", body }), headers: { "Content-Type": "application/json" } }) }