// // GeneratedImageView.swift // Diffusion // // Created by Pedro Cuenca on 18/1/23. // import SwiftUI struct GeneratedImageView: View { @EnvironmentObject var generation: GenerationContext var body: some View { switch generation.state { case .startup: return AnyView(Image("placeholder").resizable()) case .running(let progress): guard let progress = progress, progress.stepCount > 0 else { // The first time it takes a little bit before generation starts return AnyView(ProgressView()) } let step = Int(progress.step) + 1 let fraction = Double(step) / Double(progress.stepCount) let label = "Step \(step) of \(progress.stepCount)" return AnyView(ProgressView(label, value: fraction, total: 1).padding()) case .complete(let lastPrompt, let image, let interval): guard let theImage = image else { return AnyView(Image(systemName: "exclamationmark.triangle").resizable()) } let imageView = Image(theImage, scale: 1, label: Text("generated")) return AnyView( VStack { imageView.resizable().clipShape(RoundedRectangle(cornerRadius: 20)) // HStack { // let intervalString = String(format: "Time: %.1fs", interval ?? 0) // Rectangle().fill(.clear).overlay(Text(intervalString).frame(maxWidth: .infinity, alignment: .leading).padding(.leading)) // Rectangle().fill(.clear).overlay( // HStack { // Spacer() // ShareButtons(image: theImage, name: lastPrompt).padding(.trailing) // } // ) // }.frame(maxHeight: 25) }) } } }