Files
divkit/client/ios/DivKit/Extensions/DivCustom/DivCustomExtensions.swift
T
denlvovich e001d74afe Update to VGSL6.0
4f8b5f480ade3f347d5f0a2d01a1618069bcb846
2024-07-12 20:33:42 +03:00

41 lines
1.1 KiB
Swift

import CoreGraphics
import LayoutKit
import VGSL
extension DivCustom: DivBlockModeling {
public func makeBlock(context: DivBlockModelingContext) throws -> Block {
let children = items?.makeBlocks(
context: context
) ?? []
return try applyBaseProperties(
to: { try makeBaseBlock(context: context, children: children) },
context: context,
actionsHolder: nil
)
}
private func makeBaseBlock(
context: DivBlockModelingContext,
children: [Block]
) throws -> Block {
let contentWidthTrait = resolveContentWidthTrait(context)
let contentHeightTrait = resolveContentHeightTrait(context)
let customData = DivCustomData(
name: customType,
data: customProps ?? [:],
children: children,
widthTrait: contentWidthTrait,
heightTrait: contentHeightTrait
)
return try ContainerBlock(
layoutDirection: contentHeightTrait.isResizable ? .vertical : .horizontal,
widthTrait: contentWidthTrait,
heightTrait: contentHeightTrait,
children: [
context.divCustomBlockFactory.makeBlock(data: customData, context: context),
]
)
}
}