From e6dceca9f3124774f03a69cd90477f07a8796144 Mon Sep 17 00:00:00 2001 From: Baptiste Arnaud Date: Tue, 22 Nov 2022 18:03:41 +0100 Subject: [PATCH] :ambulance: (results) Fix results display when variable has null value --- .../features/editor/components/EditorSettingsModal.tsx | 9 ++++++--- apps/builder/src/features/results/utils.tsx | 1 + apps/viewer/src/components/TypebotPage.tsx | 8 +------- packages/bot-engine/src/features/variables/utils.ts | 2 +- packages/models/src/features/typebot/variable.ts | 2 +- packages/utils/results.ts | 3 +-- 6 files changed, 11 insertions(+), 14 deletions(-) diff --git a/apps/builder/src/features/editor/components/EditorSettingsModal.tsx b/apps/builder/src/features/editor/components/EditorSettingsModal.tsx index 5e44bec4d0..d5513ea33e 100644 --- a/apps/builder/src/features/editor/components/EditorSettingsModal.tsx +++ b/apps/builder/src/features/editor/components/EditorSettingsModal.tsx @@ -6,6 +6,7 @@ import { ModalContent, ModalOverlay, } from '@chakra-ui/react' +import { GraphNavigation } from 'db' import React from 'react' import { EditorSettingsForm } from './EditorSettingsForm' @@ -23,9 +24,11 @@ export const EditorSettingsModal = ({ isOpen, onClose }: Props) => { - {user?.graphNavigation && ( - - )} + diff --git a/apps/builder/src/features/results/utils.tsx b/apps/builder/src/features/results/utils.tsx index f57ff0ab33..ab1974516e 100644 --- a/apps/builder/src/features/results/utils.tsx +++ b/apps/builder/src/features/results/utils.tsx @@ -75,6 +75,7 @@ export const convertResultsToTableData = ( } } const variable = answerOrVariable as VariableWithValue + if (variable.value === null) return o const key = headerCells.find((headerCell) => headerCell.variableIds?.includes(variable.id) )?.label diff --git a/apps/viewer/src/components/TypebotPage.tsx b/apps/viewer/src/components/TypebotPage.tsx index 2f84556b73..f4592bc041 100644 --- a/apps/viewer/src/components/TypebotPage.tsx +++ b/apps/viewer/src/components/TypebotPage.tsx @@ -1,11 +1,5 @@ import { TypebotViewer } from 'bot-engine' -import { - Answer, - AnswerInput, - PublicTypebot, - Typebot, - VariableWithValue, -} from 'models' +import { AnswerInput, PublicTypebot, Typebot, VariableWithValue } from 'models' import { useRouter } from 'next/router' import React, { useEffect, useState } from 'react' import { isDefined, isNotDefined } from 'utils' diff --git a/packages/bot-engine/src/features/variables/utils.ts b/packages/bot-engine/src/features/variables/utils.ts index 99b37eca7b..e476771b43 100644 --- a/packages/bot-engine/src/features/variables/utils.ts +++ b/packages/bot-engine/src/features/variables/utils.ts @@ -19,7 +19,7 @@ export const parseVariables = const variable = variables.find((v) => { return matchedVarName === v.name && isDefined(v.value) }) as VariableWithValue | undefined - if (!variable) return '' + if (!variable || variable.value === null) return '' if (options.fieldToParse === 'id') return variable.id const { value } = variable if (options.escapeForJson) return jsonParse(value) diff --git a/packages/models/src/features/typebot/variable.ts b/packages/models/src/features/typebot/variable.ts index 7d397db9ce..16cdf26290 100644 --- a/packages/models/src/features/typebot/variable.ts +++ b/packages/models/src/features/typebot/variable.ts @@ -12,7 +12,7 @@ export const variableSchema = z.object({ export const variableWithValueSchema = z.object({ id: z.string(), name: z.string(), - value: z.string(), + value: z.string().nullable(), }) /** diff --git a/packages/utils/results.ts b/packages/utils/results.ts index c9714ba0c8..e7a104fdeb 100644 --- a/packages/utils/results.ts +++ b/packages/utils/results.ts @@ -3,7 +3,6 @@ import { Variable, InputBlock, ResultHeaderCell, - ResultWithAnswers, Answer, VariableWithValue, Typebot, @@ -209,7 +208,7 @@ export const parseAnswers = } } const variable = answerOrVariable as VariableWithValue - if (isDefined(o[variable.name])) return o + if (isDefined(o[variable.name]) || variable.value === null) return o return { ...o, [variable.name]: variable.value } }, {}), }