import SwiftUI
import Vision

struct ImageView: View {
   @State private var levelMessage: String = "Calculating..."
   @State private var isMemorable: String = "..."
   let imageName: String
   
   var body: some View {
      VStack {
         Image(uiImage: UIImage(named: imageName)!)
            .resizable()
            .scaledToFit()
         Text(levelMessage)
         Text(isMemorable)
         Spacer()
      }
      .padding()
      .task {
         let imageURL = Bundle.main.url(forResource: imageName, withExtension: "png")
         if let imageURL = imageURL {
            do {
               let request = CalculateImageAestheticsScoresRequest()
               let results = try await request.perform(on: imageURL)
               levelMessage = String(results.overallScore)
               isMemorable = results.isUtility ? "No" : "Yes"
            } catch {
               print("Error performing the request: \(error)")
            }
         }
      }
   }
}