import SwiftUI
import Vision

struct ContentView: View {
   @State private var barcode: String = "Reading..."
   @State private var codeType: String = ""

   var body: some View {
      VStack {
         Image(uiImage: UIImage(named: "magazineqr")!)
            .resizable()
            .scaledToFit()
            .padding()
         Text(barcode)
         Text(codeType)
         Spacer()
      }
      .padding()
      .task {
         let imageURL = Bundle.main.url(forResource: "magazineqr", withExtension: "png")
         if let imageURL = imageURL {
            do {
               let request = DetectBarcodesRequest()
               let result = try await request.perform(on: imageURL)
               if let code = result.first {
                  barcode = code.payloadString ?? "Not Found"
                  codeType = "Type: \(code.symbology)"
               }
            } catch {
               print("Error performing the request: \(error)")
            }
         }
      }
   }
}