1
0
Fork 0
mirror of https://github.com/zigzap/zap.git synced 2025-10-20 15:14:08 +00:00
zap/examples/websockets/frontend/index.js
2023-05-07 16:14:28 +02:00

79 lines
2.1 KiB
JavaScript

// import { show_welcome } from "./screens/welcome_screen.js?version=0";
var chatContainer = document.getElementById("chat-container");
var promptInput = document.getElementById("prompt-input");
var sendButton = document.getElementById("send-button");
var statusBar = document.getElementById("statusBar");
// var ws;
function addBotMessage(message) {
var msg = document.createElement("DIV");
msg.classList.add("message");
msg.classList.add("bot");
let converter = new showdown.Converter();
msg.innerHTML = converter.makeHtml(message);
chatContainer.appendChild(msg);
chatContainer.scrollTop = chatContainer.scrollHeight;
}
function addUserMessage(message) {
var msg = document.createElement("DIV");
msg.classList.add("message");
msg.classList.add("user");
let converter = new showdown.Converter();
msg.innerHTML = converter.makeHtml(message);
chatContainer.appendChild(msg);
chatContainer.scrollTop = chatContainer.scrollHeight;
}
function onSend() {
let prompt = promptInput.value;
console.log(prompt);
// addUserMessage(prompt);
promptInput.value = "";
ws.send(prompt);
promptInput.focus();
}
function show_markdown_body(container, task, body) {
let converter = new showdown.Converter();
let m = document.createElement("DIV");
m.innerHTML = converter.makeHtml(body);
m.classList.add("message");
container.appendChild(m);
}
function init() {
sendButton.onclick = onSend;
promptInput.addEventListener("keypress", function(event) {
if(event.key === "Enter") {
event.preventDefault();
sendButton.click();
}
});
promptInput.focus();
}
init();
var ws = new WebSocket("ws://localhost:3010/chat");
ws.onmessage = function(e) { addBotMessage(e.data); return false;};
ws.onclose = function(e) {
statusBar.className = "status-bar";
statusBar.classList.add("status-busy");
statusBar.innerHTML = "Disconnected";
};
ws.onopen = function(e) {
statusBar.className = "status-bar";
statusBar.classList.add("status-thinking");
statusBar.innerHTML = "Connected";
};