Skip to content

Commit 14d049b

Browse files
committed
fix(core): bug corrigé pour l'affichage des actions de clic sur des boutons avec calcul de variables
1 parent 15bd279 commit 14d049b

4 files changed

Lines changed: 19 additions & 5 deletions

File tree

app/js/core/chatbot/helpers/actions.mjs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,13 @@ export async function processActions(chatbot, yaml, hasActions) {
9898
// Si on a trouvé un bouton de réponse qui correspond
9999
if (selectedChoiceOption) {
100100
// On récupère le message à afficher
101-
const messageToDisplay = selectedChoiceOption.innerHTML;
101+
// Le message peut contenir une assignation de valeur à une variable
102+
// On récupère le code de cette assignation pour qu'il soit traité
103+
// lors de la création du message
104+
const messageToDisplay = selectedChoiceOption.innerHTML.replace(
105+
/<span class="hidden">(.*?)<\/span>/,
106+
" $1",
107+
);
102108
// Et le message à envoyer au chatbot
103109
let messageToChatbot = selectedChoiceOption
104110
.getAttribute("href")

app/js/markdown/custom/variablesDynamic/handleBotMessage.mjs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,21 @@ export function handleBotMessage(message, dynamicVariables, getLastMessage) {
2121
message = output;
2222

2323
// Au lieu de récupérer l'input, on peut récupérer le contenu d'un bouton qui a été cliqué et on assigne alors ce contenu à une variable : pour cela on intègre la variable dans le bouton, et on la masque avec la classe "hidden"
24+
25+
// On masque l'assignation de la variable dans le bouton
2426
message = message.replaceAll(
2527
/ (@[^\s]*?=.*?)</g,
2628
'<span class="hidden">$1</span><',
2729
);
30+
31+
// On masque aussi, dans le message qui s'est affiché suite au clic sur le bouton, l'assignation de la variable qui a été transmise à ce message
2832
message = message.replaceAll(
29-
/>(@[^\s]*?=)/g,
30-
'><span class="hidden">$1</span>',
33+
/class="(.*)?">(@[^\s]*?=)/g,
34+
(match, beforeVariable, variable) => {
35+
return beforeVariable.includes("hidden")
36+
? `class="${beforeVariable}">${variable}`
37+
: `class="${beforeVariable}"><span class="hidden">${variable}</span>`;
38+
},
3139
);
3240

3341
// On nettoie le message en supprimant les lignes vides en trop

app/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.

app/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)