Skip to content

Commit 4bad1a6

Browse files
authored
Update script.js
1 parent e473a9f commit 4bad1a6

File tree

1 file changed

+44
-9
lines changed

1 file changed

+44
-9
lines changed

script.js

Lines changed: 44 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,25 @@ const input = document.getElementById("user-input");
44

55
let threadId = null;
66

7-
// Toon openingsbericht bij het laden van de pagina
7+
// Openingsbericht bij het laden van de pagina
88
window.onload = () => {
9-
const welkomstekst = `Welkom bij de AI Indicatiehulp! Ik ben jouw digitale adviseur voor het stellen van de juiste indicatie en het opstellen van een conceptadvies voor de zorgexpert (Kim Brand).\n\nKies een optie om te starten:\n1. In kaart brengen cliëntsituatie\n2. Bekijk richtlijnen\n3. Contact opnemen met de zorgexpert\n\nWil je direct een indicatieadvies laten opstellen? Dan heb ik meer informatie nodig over de cliënt. Geef bij voorkeur ook je naam en een e-mail of telefoonnummer, zodat we het conceptadvies voor beoordeling kunnen indienen.\n\nMet welke optie wil je verder?`;
10-
streamMessage("agent-message", welkomstekst);
9+
const welkomstHTML = `
10+
Welkom bij de <strong>AI Indicatiehulp</strong>!<br>
11+
Ik ben jouw digitale adviseur voor:<br>
12+
het stellen van de juiste indicatie en het opstellen van een conceptadvies voor de zorgexpert (Kim Brand).<br><br>
13+
14+
<strong>Kies een optie om te starten:</strong><br>
15+
1. In kaart brengen cliëntsituatie<br>
16+
2. Bekijk richtlijnen<br>
17+
3. Contact opnemen met de zorgexpert<br><br>
18+
19+
Wil je direct een indicatieadvies laten opstellen? Dan heb ik meer informatie nodig over de cliënt.<br>
20+
Geef bij voorkeur ook je naam en een e-mailadres of telefoonnummer,<br>
21+
zodat we het conceptadvies voor beoordeling kunnen indienen.<br><br>
22+
23+
<em>Met welke optie wil je verder?</em>
24+
`;
25+
appendFormattedMessage("agent-message", welkomstHTML);
1126
};
1227

1328
form.addEventListener("submit", async (e) => {
@@ -43,23 +58,43 @@ form.addEventListener("submit", async (e) => {
4358
function appendMessage(cssClass, text) {
4459
const msg = document.createElement("div");
4560
msg.classList.add("message", cssClass);
46-
msg.innerHTML = text.replace(/\n/g, "<br>");
61+
msg.textContent = text;
62+
chat.appendChild(msg);
63+
chat.scrollTop = chat.scrollHeight;
64+
}
65+
66+
function appendFormattedMessage(cssClass, htmlContent) {
67+
const msg = document.createElement("div");
68+
msg.classList.add("message", cssClass);
69+
msg.innerHTML = htmlContent;
4770
chat.appendChild(msg);
4871
chat.scrollTop = chat.scrollHeight;
4972
}
5073

5174
function streamMessage(cssClass, text) {
5275
const msg = document.createElement("div");
5376
msg.classList.add("message", cssClass);
54-
msg.innerHTML = "";
5577
chat.appendChild(msg);
5678

57-
const chars = text.replace(/\n/g, "<br>").split("");
58-
let index = 0;
79+
const lines = text.split("\n");
80+
const isNumberedList = lines.every(line => /^\d+\.\s+/.test(line.trim())) && lines.length > 1;
5981

82+
if (isNumberedList) {
83+
const ol = document.createElement("ol");
84+
lines.forEach(line => {
85+
const li = document.createElement("li");
86+
li.textContent = line.replace(/^\d+\.\s+/, "").trim();
87+
ol.appendChild(li);
88+
});
89+
msg.appendChild(ol);
90+
chat.scrollTop = chat.scrollHeight;
91+
return;
92+
}
93+
94+
let index = 0;
6095
const interval = setInterval(() => {
61-
if (index < chars.length) {
62-
msg.innerHTML += chars[index++];
96+
if (index < text.length) {
97+
msg.textContent += text.charAt(index++);
6398
chat.scrollTop = chat.scrollHeight;
6499
} else {
65100
clearInterval(interval);

0 commit comments

Comments
 (0)