Files
divkit/client/ios/DivKitExtensions/ExtensionHandlers/CustomImagePreviewExtensionHandler.swift
T
pkurchatov 27a3472171 Enabled blankLinesBetweenImports swiftformat rule
commit_hash:84ea24cbdf21ef89741080f38ec5e583172a2458
2024-12-20 12:41:02 +03:00

36 lines
839 B
Swift

import DivKit
import Foundation
import LayoutKit
import VGSL
public final class CustomImagePreviewExtensionHandler: DivExtensionHandler {
public let id: String
private let viewProvider: ViewProvider
public init(id: String, viewProvider: ViewProvider) {
self.id = id
self.viewProvider = viewProvider
}
public func applyBeforeBaseProperties(
to block: Block,
div: DivBase,
context: DivBlockModelingContext
) -> Block {
guard
let block = block as? ImageBlock,
let div = div as? DivImage
else {
return block
}
let imageHolder = context.imageHolderFactory.make(
div.resolveImageUrl(context.expressionResolver) ?? defaultImageURL,
.view(viewProvider)
)
return block.makeCopy(with: imageHolder)
}
}
private let defaultImageURL = URL(string: "empty://")