// // AsyncImageView.swift // Jel // // Created by zerocool on 12/19/23. // import SwiftUI import JellyfinKit struct AsyncImageView: View { @EnvironmentObject var jellyfinClient: JellyfinClientController @State var imageId: String @State var blurhash: String @State var imageType: String @State var loading = true @State var uiImage: UIImage = UIImage() var body: some View { VStack { if loading { Image(uiImage: uiImage) .resizable() } else { Image(uiImage: uiImage) .resizable() } } .onAppear { uiImage = UIImage(blurHash: blurhash, size: CGSize(width: 16, height: 16)) ?? UIImage() Task { let request = Paths.getItemImage(itemID: imageId, imageType: imageType) do { let res = try await jellyfinClient.send(request) if let image = UIImage(data: res.value) { uiImage = image loading = false } else { } } } } } } //#Preview { // AsyncImageView(imageId: "", blurhash: "", imageType: "") //}