From d6b5568e033473beffec86df05e15c5bca26bda6 Mon Sep 17 00:00:00 2001 From: Baptiste Arnaud Date: Fri, 27 May 2022 11:14:02 -0700 Subject: [PATCH] =?UTF-8?q?fix(engine):=20=F0=9F=90=9B=20Number=20var?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/bot-engine/src/contexts/TypebotContext.tsx | 9 ++++++--- packages/bot-engine/src/services/variable.ts | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/bot-engine/src/contexts/TypebotContext.tsx b/packages/bot-engine/src/contexts/TypebotContext.tsx index 4928c34f1..acb972ffe 100644 --- a/packages/bot-engine/src/contexts/TypebotContext.tsx +++ b/packages/bot-engine/src/contexts/TypebotContext.tsx @@ -66,7 +66,7 @@ export const TypebotContext = ({ // eslint-disable-next-line react-hooks/exhaustive-deps }, [typebot.theme, typebot.settings]) - const updateVariableValue = (variableId: string, value: string) => { + const updateVariableValue = (variableId: string, value: string | number) => { const formattedValue = formatIncomingVariableValue(value) setLocalTypebot((typebot) => ({ ...typebot, @@ -134,9 +134,12 @@ export const TypebotContext = ({ ) } -const formatIncomingVariableValue = (value: string): string | number => { +const formatIncomingVariableValue = ( + value: string | number +): string | number => { // This first check avoid to parse 004 as the number 4. - if (value.startsWith('0') && value.length > 1) return value + if (typeof value === 'string' && value.startsWith('0') && value.length > 1) + return value return isNaN(Number(value)) ? value : Number(value) } diff --git a/packages/bot-engine/src/services/variable.ts b/packages/bot-engine/src/services/variable.ts index 365226ae1..ae13add7e 100644 --- a/packages/bot-engine/src/services/variable.ts +++ b/packages/bot-engine/src/services/variable.ts @@ -22,7 +22,7 @@ export const parseVariables = if (!variable) return '' if (options.fieldToParse === 'id') return variable.id const { value } = variable - if (!value) return '' + if (isNotDefined(value)) return '' if (options.escapeLineBreaks) return value.toString().replace(/\n/g, '\\n') return value.toString()