diff --git a/client/ios/DivKit/Extensions/DivContainer/DivCollectionItemsBuilderExtensions.swift b/client/ios/DivKit/Extensions/DivContainer/DivCollectionItemsBuilderExtensions.swift index c9c0dc4cf..0af527bb2 100644 --- a/client/ios/DivKit/Extensions/DivContainer/DivCollectionItemsBuilderExtensions.swift +++ b/client/ios/DivKit/Extensions/DivContainer/DivCollectionItemsBuilderExtensions.swift @@ -7,12 +7,13 @@ extension DivCollectionItemBuilder { mappedBy modificator: (Div, Block, DivBlockModelingContext) -> T ) -> [T] { let items = resolveData(context.expressionResolver) ?? [] - return items.enumerated().compactMap { index, item in + return items.enumerated().compactMap { index, item -> T? in + let itemDict = item as? DivDictionary ?? [:] let prototypeContext = context.modifying( prototypeParams: PrototypeParams( index: index, variableName: dataElementName, - value: (item as? DivDictionary) ?? [:] + value: itemDict ) ) let prototype = prototypes @@ -27,6 +28,10 @@ extension DivCollectionItemBuilder { overridenId: id, pathSuffix: String(index) ) + itemContext.variablesStorage.initializeIfNeeded(path: itemContext.path, variables: [ + DivVariableName(rawValue: dataElementName): .dict(itemDict), + "index": .integer(index), + ]) do { return try modifyError({ DivBlockModelingError($0.message, path: itemContext.path)