Skip to content

Commit eb192c7

Browse files
committed
fix: gestion du Latex dès le message initial
1 parent 0a4303e commit eb192c7

3 files changed

Lines changed: 50 additions & 24 deletions

File tree

js/chatbot/createChatbot.js

Lines changed: 48 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -140,14 +140,27 @@ export async function createChatBot(chatData) {
140140
} else {
141141
if (yaml.maths === true) {
142142
// S'il y a des maths, on doit gérer le Latex avant d'afficher le message
143-
content = convertLatexExpressions(content);
144-
setTimeout(() => {
145-
displayMessage(
146-
content,
147-
isUser,
148-
chatMessageElement,
149-
chatMessage,
150-
).then(() => resolve());
143+
let timeToDisplayMessage = false;
144+
let attempts = 0;
145+
const interval = setInterval(() => {
146+
if (window.katex) {
147+
content = convertLatexExpressions(content);
148+
timeToDisplayMessage = true;
149+
} else {
150+
attempts++;
151+
if (attempts > 10) {
152+
timeToDisplayMessage = true;
153+
}
154+
}
155+
if (timeToDisplayMessage) {
156+
clearInterval(interval);
157+
displayMessage(
158+
content,
159+
isUser,
160+
chatMessageElement,
161+
chatMessage,
162+
).then(() => resolve());
163+
}
151164
}, 100);
152165
} else {
153166
displayMessage(
@@ -211,21 +224,34 @@ export async function createChatBot(chatData) {
211224
if (yaml.maths === true) {
212225
// S'il y a des maths, on doit gérer le Latex avant d'afficher le message
213226
// Si le message est celui de l'utilisateur, on n'utilise pas les backticks (car ils ne sont utiles que pour l'effet typewriter qui n'est pas utilisé pour les messages de l'utilisateur)
214-
html = isUser
215-
? convertLatexExpressions(html, true)
216-
: convertLatexExpressions(html);
217-
setTimeout(() => {
218-
displayMessage(html, isUser, chatMessage).then(() => {
219-
if (nextMessage.selected) {
220-
chatbotResponse(nextMessage.selected);
227+
let timeToDisplayMessage = false;
228+
let attempts = 0;
229+
const interval = setInterval(() => {
230+
if (window.katex) {
231+
timeToDisplayMessage = true;
232+
html = isUser
233+
? convertLatexExpressions(html, true)
234+
: convertLatexExpressions(html);
235+
} else {
236+
attempts++;
237+
if (attempts > 10) {
238+
timeToDisplayMessage = true;
221239
}
222-
});
223-
// Gestion des éléments HTML <select> si on veut les utiliser pour gérer des variables dynamiques
224-
message = processSelectElements(
225-
message,
226-
originalMessage,
227-
chatMessage,
228-
);
240+
}
241+
if (timeToDisplayMessage) {
242+
clearInterval(interval);
243+
displayMessage(html, isUser, chatMessage).then(() => {
244+
if (nextMessage.selected) {
245+
chatbotResponse(nextMessage.selected);
246+
}
247+
});
248+
// Gestion des éléments HTML <select> si on veut les utiliser pour gérer des variables dynamiques
249+
message = processSelectElements(
250+
message,
251+
originalMessage,
252+
chatMessage,
253+
);
254+
}
229255
}, 100);
230256
} else {
231257
displayMessage(html, isUser, chatMessage).then(() => {

script.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

script.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)