Merge branch 'main' into quickconnect
This commit is contained in:
commit
b8a0af5b28
|
@ -22,6 +22,7 @@ final class UserSignInViewModel: ViewModel {
|
|||
|
||||
init(server: SwiftfinStore.State.Server) {
|
||||
self.server = server
|
||||
JellyfinAPIAPI.basePath = server.currentURI
|
||||
}
|
||||
|
||||
var alertTitle: String {
|
||||
|
@ -54,7 +55,6 @@ final class UserSignInViewModel: ViewModel {
|
|||
}
|
||||
|
||||
func loadUsers() {
|
||||
JellyfinAPIAPI.basePath = server.currentURI
|
||||
UserAPI.getPublicUsers()
|
||||
.trackActivity(loading)
|
||||
.sink(receiveCompletion: { completion in
|
||||
|
@ -72,4 +72,9 @@ final class UserSignInViewModel: ViewModel {
|
|||
quality: 90).URLString
|
||||
return URL(string: urlString)
|
||||
}
|
||||
|
||||
func getSplashscreenUrl() -> URL? {
|
||||
let urlString = ImageAPI.getSplashscreenWithRequestBuilder().URLString
|
||||
return URL(string: urlString)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,39 +19,47 @@ struct UserSignInView: View {
|
|||
private var password: String = ""
|
||||
|
||||
var body: some View {
|
||||
Form {
|
||||
ZStack {
|
||||
ImageView(viewModel.getSplashscreenUrl())
|
||||
.ignoresSafeArea()
|
||||
|
||||
Section {
|
||||
TextField(L10n.username, text: $username)
|
||||
.disableAutocorrection(true)
|
||||
.autocapitalization(.none)
|
||||
Color.black
|
||||
.opacity(0.9)
|
||||
.ignoresSafeArea()
|
||||
|
||||
SecureField(L10n.password, text: $password)
|
||||
.disableAutocorrection(true)
|
||||
.autocapitalization(.none)
|
||||
Form {
|
||||
Section {
|
||||
TextField(L10n.username, text: $username)
|
||||
.disableAutocorrection(true)
|
||||
.autocapitalization(.none)
|
||||
|
||||
Button {
|
||||
viewModel.login(username: username, password: password)
|
||||
} label: {
|
||||
HStack {
|
||||
L10n.connect.text
|
||||
Spacer()
|
||||
if viewModel.isLoading {
|
||||
ProgressView()
|
||||
SecureField(L10n.password, text: $password)
|
||||
.disableAutocorrection(true)
|
||||
.autocapitalization(.none)
|
||||
|
||||
Button {
|
||||
viewModel.login(username: username, password: password)
|
||||
} label: {
|
||||
HStack {
|
||||
L10n.connect.text
|
||||
Spacer()
|
||||
if viewModel.isLoading {
|
||||
ProgressView()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.disabled(viewModel.isLoading || username.isEmpty)
|
||||
.disabled(viewModel.isLoading || username.isEmpty)
|
||||
|
||||
} header: {
|
||||
L10n.signInToServer(viewModel.server.name).text
|
||||
} header: {
|
||||
L10n.signInToServer(viewModel.server.name).text
|
||||
}
|
||||
}
|
||||
.alert(item: $viewModel.errorMessage) { _ in
|
||||
Alert(title: Text(viewModel.alertTitle),
|
||||
message: Text(viewModel.errorMessage?.message ?? L10n.unknownError),
|
||||
dismissButton: .cancel())
|
||||
}
|
||||
.navigationTitle(L10n.signIn)
|
||||
}
|
||||
.alert(item: $viewModel.errorMessage) { _ in
|
||||
Alert(title: Text(viewModel.alertTitle),
|
||||
message: Text(viewModel.errorMessage?.message ?? L10n.unknownError),
|
||||
dismissButton: .cancel())
|
||||
}
|
||||
.navigationTitle(L10n.signIn)
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue