Kordophone client for iOS and macOS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.4 KiB

import SwiftUI
import KordophoneKit
struct LoginView : View {
@AppStorage("serverAddress") var serverAddress: String = ""
@AppStorage("username") var username: String = ""
@AppStorage("password") var password: String = ""
@State private var loggingIn = false
var onLogin: (ConnectionInfo) -> Void = { _ in }
private func login() {
loggingIn = true
onLogin(ConnectionInfo(serverAddress: serverAddress,
credentials: Credentials(username: username,
password: password)))
}
var body: some View {
VStack {
TextField("server", text: $serverAddress)
.onSubmit {
login()
}
TextField("username", text: $username)
.onSubmit {
login()
}
SecureField("password", text: $password)
.onSubmit {
login()
}
Button("Login") {
login()
}
.keyboardShortcut(.return)
}
.disabled(loggingIn)
.animation(.spring(), value: loggingIn)
.padding()
}
}
struct LoginView_Previews : PreviewProvider {
static var previews: some View {
Group {
LoginView()
}
}
}