// // CheckNumber.swift // AutoCat2SUI // // Created by Selim Mustafaev on 28.08.2022. // import SwiftUI import AutoCatCore struct CheckNumber: View { @Environment(\.presentationMode) var presentation @State var plateNumber: String = "" @State var showProgress = false @State private var alert: AlertMessage? = nil var body: some View { VStack(alignment: .center, spacing: 8) { Text("Check new plate number") TextField("qwe", text: $plateNumber, prompt: Text("Plate number")) .disabled(showProgress) ProgressView() .progressViewStyle(CircularProgressViewStyle()) .hidden(!showProgress) HStack { Button("Cancel") { self.presentation.wrappedValue.dismiss() } .disabled(showProgress) Button("Check") { Task { @MainActor in showProgress = true do { try await VehicleService.shared.check(plateNumber: plateNumber.uppercased(), force: false) self.presentation.wrappedValue.dismiss() } catch { alert = .error(error: error) } showProgress = false } } .alert(item: $alert, content: Alert.init) .disabled(showProgress) } } .padding() .frame(minWidth: 300) } } struct CheckNumber_Previews: PreviewProvider { static var previews: some View { CheckNumber() } }