AutorÃa | Ultima modificación | Ver Log |
//// CustomAsyncImageProfile.swift// twogetskills//// Created by Efrain Yanez Recanatini on 5/5/22.//import Foundationimport SwiftUIstruct CustomAsyncImageProfile<Placeholder: View>: View {@StateObject private var loader: ImageLoaderprivate let placeholder: Placeholderprivate let image: (UIImage) -> Imageinit(url: URL,@ViewBuilder placeholder: () -> Placeholder,@ViewBuilder image: @escaping (UIImage) -> Image = Image.init(uiImage:)) {self.placeholder = placeholder()self.image = image_loader = StateObject(wrappedValue: ImageLoader(url: url, cache: Environment(\.imageCache).wrappedValue))}var body: some View {content.onAppear(perform: loader.load)}private var content: some View {Group {if loader.image != nil {image(loader.image!).resizable().aspectRatio(contentMode: .fit).frame(height: Config.PROFILE_IMAGE_SIZE).clipShape(Circle()).overlay(Circle().stroke(Color.white, lineWidth: 4)).shadow(radius: 10)} else {placeholder}}}}