Files
CoreStore/Demo/Sources/Helpers/NetworkImageView.swift
2020-08-29 20:02:05 +09:00

52 lines
976 B
Swift

//
// Demo
// Copyright © 2020 John Rommel Estropia, Inc. All rights reserved.
import Combine
import SwiftUI
// MARK: - NetworkImageView
struct NetworkImageView: View {
// MARK: Internal
init(url: URL?) {
self.imageDownloader = .init(url: url)
}
// MARK: View
var body: some View {
if let image = self.imageDownloader.image {
return AnyView(
Image(uiImage: image)
.resizable()
.aspectRatio(contentMode: .fit)
)
}
else {
return AnyView(
Circle()
.colorMultiply(Color(UIColor.placeholderText))
.onAppear {
self.imageDownloader.fetchImage()
}
)
}
}
// MARK: Private
@ObservedObject
private var imageDownloader: ImageDownloader
}