gh-XcodesOrg-XcodesApp/Xcodes/Frontend/SignIn/SignInCredentialsView.swift
2020-12-27 16:13:36 -07:00

54 lines
1.8 KiB
Swift

import SwiftUI
struct SignInCredentialsView: View {
@EnvironmentObject var appState: AppState
@Binding var isPresented: Bool
@State private var username: String = ""
@State private var password: String = ""
var body: some View {
VStack(alignment: .leading) {
Text("Sign in with your Apple ID.")
.bold()
.padding(.vertical)
HStack {
Text("Apple ID:")
.frame(minWidth: 100, alignment: .trailing)
TextField("example@icloud.com", text: $username)
.frame(width: 250)
}
HStack {
Text("Password:")
.frame(minWidth: 100, alignment: .trailing)
SecureField("Required", text: $password)
.frame(width: 250)
}
HStack {
Spacer()
Button("Cancel") { isPresented = false }
.keyboardShortcut(.cancelAction)
ProgressButton(isInProgress: appState.isProcessingAuthRequest,
action: { appState.signIn(username: username, password: password) }) {
Text("Next")
}
.disabled(username.isEmpty || password.isEmpty)
.keyboardShortcut(.defaultAction)
}
.frame(height: 25)
}
.padding()
.alert(item: $appState.authError) { error in
Alert(title: Text(error.title),
message: Text(verbatim: error.message),
dismissButton: .default(Text("OK")))
}
}
}
struct SignInCredentialsView_Previews: PreviewProvider {
static var previews: some View {
SignInCredentialsView(isPresented: .constant(true))
.environmentObject(AppState())
}
}