mirror of
https://github.com/divkit/divkit.git
synced 2026-06-06 20:07:59 +00:00
52ccd56888
Прогнал форматтер на всех файлах.
40 lines
921 B
Swift
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)
|
|
}
|
|
}
|
|
}
|