From 5b78933de774fcf9291ba40e74dd928925699b0c Mon Sep 17 00:00:00 2001 From: Shav Kinderlehrer Date: Fri, 22 Dec 2023 17:14:21 -0500 Subject: Start implementing dashboard view + async image loader --- Jel/Views/Utility/AsyncImageView.swift | 50 ++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Jel/Views/Utility/AsyncImageView.swift (limited to 'Jel/Views/Utility') diff --git a/Jel/Views/Utility/AsyncImageView.swift b/Jel/Views/Utility/AsyncImageView.swift new file mode 100644 index 0000000..bed5687 --- /dev/null +++ b/Jel/Views/Utility/AsyncImageView.swift @@ -0,0 +1,50 @@ +// +// AsyncImageView.swift +// Jel +// +// Created by zerocool on 12/19/23. +// + +import SwiftUI +import BlurHashKit +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 { + BlurHashView(blurHash: blurhash) + } else { + Image(uiImage: uiImage) + } + } + .onAppear { + 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: "") +//} -- cgit v1.2.3