From d4f948d44da6b295d10f585caad30561ac6fe8af Mon Sep 17 00:00:00 2001 From: Kyle Johnson Date: Thu, 13 Jun 2024 10:31:02 +0100 Subject: [PATCH] fix: feature state value conversion (#3946) --- frontend/common/types/responses.ts | 2 +- frontend/common/utils/utils.tsx | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/frontend/common/types/responses.ts b/frontend/common/types/responses.ts index d524670f19af..565de886a58e 100644 --- a/frontend/common/types/responses.ts +++ b/frontend/common/types/responses.ts @@ -327,7 +327,7 @@ export type FeatureStateValue = { float_value?: number | null integer_value?: boolean | null string_value: string - type: string + type: 'int' | 'unicode' | 'bool' | 'float' } export type MultivariateOption = { diff --git a/frontend/common/utils/utils.tsx b/frontend/common/utils/utils.tsx index 603e10e09199..11f4ef198554 100644 --- a/frontend/common/utils/utils.tsx +++ b/frontend/common/utils/utils.tsx @@ -117,16 +117,17 @@ const Utils = Object.assign({}, require('./base/_utils'), { return null } - if (typeof featureState.integer_value === 'number') { - return Utils.getTypedValue(featureState.integer_value) - } - if (typeof featureState.float_value === 'number') { - return Utils.getTypedValue(featureState.float_value) + //@ts-ignore value_type is the type key on core traits + switch (featureState.value_type || featureState.type) { + case 'bool': + return featureState.boolean_value + case 'float': + return featureState.float_value + case 'int': + return featureState.integer_value + default: + return featureState.string_value } - - return Utils.getTypedValue( - featureState.string_value || featureState.boolean_value, - ) }, findOperator( operator: SegmentCondition['operator'],