import SwiftUI
import Vision
import DataDetection

struct DocumentView: View {
   @State private var textFound: String = "Recognizing..."

   var body: some View {
      VStack {
         ScrollView {
            Text(textFound)
               .padding()
         }
         Spacer()
      }
      .task {
         let imageURL = Bundle.main.url(forResource: "letter", withExtension: "png")
         if let imageURL = imageURL {
            do {
               let request = RecognizeDocumentsRequest()
               let result = try await request.perform(on: imageURL)

               var text = ""
               if let document = result.first?.document {
                  for data in document.text.detectedData {
                     switch data.match.details {
                     case .emailAddress(let value):
                        text += "Email: \(value.emailAddress)\n"
                     case .phoneNumber(let value):
                        text += "Phone: \(value.phoneNumber)\n"
                     default:
                        break
                     }
                  }
                  textFound = text
               }
            } catch {
               print("Error performing the request: \(error)")
            }
         }
      }
   }
}