From 485b7f2c8f9f8da6efaf3bc71ed4be28cc6268e9 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Fri, 7 Aug 2026 13:27:29 +0300 Subject: [PATCH] fix dynamic variable parse --- .../template_builder/dynamic_variables_schema.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/javascript/template_builder/dynamic_variables_schema.js b/app/javascript/template_builder/dynamic_variables_schema.js index f085b0b4..64869bc3 100644 --- a/app/javascript/template_builder/dynamic_variables_schema.js +++ b/app/javascript/template_builder/dynamic_variables_schema.js @@ -417,10 +417,8 @@ function buildOperators (tags) { break } case 'end': { - const popped = stack.pop() - - if (popped.operator) { - popped.operator.endTag = tag + if (stack.length > 1) { + stack.pop().operator.endTag = tag } break @@ -434,7 +432,13 @@ function buildOperators (tags) { return operators } +function hasBlankKey (keyString) { + return !keyString || keyString.split('.').some((key) => !key.trim()) +} + function assignNestedSchema (propertiesHash, parentProperties, keyString, value) { + if (hasBlankKey(keyString)) return + const keys = keyString.split('.') const lastKey = keys.pop() @@ -460,6 +464,8 @@ function assignNestedSchema (propertiesHash, parentProperties, keyString, value) } function assignNestedSchemaWithPriority (propertiesHash, parentProperties, keyString, newType) { + if (hasBlankKey(keyString)) return + const keys = keyString.split('.') const lastKey = keys.pop() @@ -523,6 +529,8 @@ function processOperators (operators, propertiesHash = {}, parentProperties = {} processOperators(op.elseChildren, propertiesHash, parentProperties) break case 'for': { + if (hasBlankKey(op.variableName)) break + const parts = op.variableName.split('.') const singularKey = singularize(parts[parts.length - 1])