Files
divkit/client/ios/DivKitPlayground/UI/DivView/DivViewProvider.swift
T
morevsavva 52ccd56888 Format files by codestyle.
Прогнал форматтер на всех файлах.
2022-12-22 16:21:24 +03:00

40 lines
921 B
Swift

import SwiftUI
import DivKit
final class DivViewProvider {
public let jsonProvider = ObservableJsonProvider()
private var blockProvider: DivBlockProvider!
private var divKitComponents: DivKitComponents!
init() {
divKitComponents = AppComponents.makeDivKitComponents(
updateCardAction: { [weak self] _, reason in
switch reason {
case let .patch(patch):
self?.blockProvider.update(patch: patch)
case .timer:
self?.blockProvider.update(patch: nil)
}
}
)
blockProvider = DivBlockProvider(
json: jsonProvider.signal,
divKitComponents: divKitComponents,
shouldResetOnDataChange: true
)
}
func makeDivView(_ url: URL) -> some View {
DivView(
blockProvider: blockProvider,
divKitComponents: divKitComponents
)
.onAppear { [weak self] in
self?.jsonProvider.load(url: url)
}
}
}