AutoCat2/Shared/Views/AuthView.swift
2021-07-14 20:17:55 +03:00

54 lines
1.6 KiB
Swift

import SwiftUI
struct AuthView: View {
@ObservedObject var viewModel = AuthVM()
@State private var login: String = ""
@State private var password: String = ""
@State private var showProgress: Bool = false
@State private var alert: AlertMessage? = nil
var body: some View {
ZStack {
VStack(alignment: .center, spacing: 16) {
Spacer()
TextField("Login", text: $login)
SecureField("Password", text: $password)
Button("Login") {
async {
do {
self.showProgress = true
try await self.viewModel.login(user: self.login, password: self.password)
self.showProgress = false
} catch {
self.showProgress = false
self.alert = .error(error: error)
}
}
}
.alert(item: $alert, content: Alert.init)
Spacer()
}
.buttonStyle(.bordered)
.textFieldStyle(.roundedBorder)
.padding(20)
if self.showProgress {
ACProgressView()
}
}
}
}
struct AuthView_Previews: PreviewProvider {
static var previews: some View {
Group {
AuthView()
.previewDevice("iPhone 8")
AuthView()
.preferredColorScheme(.dark)
.previewDevice("iPhone 8")
}
}
}