diff --git a/index.php b/index.php
index 9d224f3..735e443 100644
--- a/index.php
+++ b/index.php
@@ -53,30 +53,34 @@
const citation = document.createElement('blockquote');
citation.innerText = formulaireData.get('question');
conversation.appendChild(citation);
-
formulaire.reset();
- const requete = await fetch(formulaire.action, {
- method: formulaire.method,
- body: formulaireData
- });
const paragraphe = document.createElement('p');
paragraphe.setAttribute('aria-busy', 'true');
conversation.appendChild(paragraphe);
- const reponse = await requete.text();
- paragraphe.setAttribute('aria-busy', 'false');
- Array.from(reponse).forEach((lettre, i) => {
- setTimeout(() => {
- if (lettre == "\n") paragraphe.innerHTML += "
";
- else paragraphe.innerHTML += lettre;
- }, i * 40);
+
+ const requete = await fetch(formulaire.action, {
+ method: formulaire.method,
+ body: formulaireData
});
- setTimeout(() => {
- conversation.innerHTML += "
😸 Voulez-vous que je réponde à une autre question ?
"; - conversation.scrollTop = conversation.scrollHeight; - bouton.disabled = false; - bouton.setAttribute("aria-busy", false); - }, reponse.length * 40); + paragraphe.setAttribute('aria-busy', 'false'); + + const reader = requete.body.getReader(); + const decoder = new TextDecoder("utf-8"); + + while (true) { + const { value, done } = await reader.read(); + if (done) break; + const lettre = decoder.decode(value, { stream: true }); + if (lettre == "\n") paragraphe.innerHTML += "😸 Voulez-vous que je réponde à une autre question ?
"; + conversation.scrollTop = conversation.scrollHeight; + bouton.disabled = false; + bouton.setAttribute("aria-busy", false); });