diff options
Diffstat (limited to 'Jel/Views/SignIn')
-rw-r--r-- | Jel/Views/SignIn/AddServerView.swift | 6 | ||||
-rw-r--r-- | Jel/Views/SignIn/SignInToServerView.swift | 20 | ||||
-rw-r--r-- | Jel/Views/SignIn/SignInView.swift | 13 |
3 files changed, 26 insertions, 13 deletions
diff --git a/Jel/Views/SignIn/AddServerView.swift b/Jel/Views/SignIn/AddServerView.swift index 516b982..40c2312 100644 --- a/Jel/Views/SignIn/AddServerView.swift +++ b/Jel/Views/SignIn/AddServerView.swift @@ -9,7 +9,7 @@ import SwiftUI struct AddServerView: View { @EnvironmentObject var jellyfinClient: JellyfinClientController - @ObservedObject var authState: AuthStateController + @ObservedObject var authState: AuthStateController = AuthStateController.shared @Binding var serverUrlIsValid: Bool @State var serverUrlString: String = "http://" @@ -73,7 +73,7 @@ struct AddServerView: View { if isValidUrl(data: serverUrlString) { let url = URL(string: serverUrlString)! jellyfinClient.setUrl(url: url) - if await jellyfinClient.isJellyfinServer() { + if await jellyfinClient.getPublicServerInfo() != nil { authState.serverUrl = url authState.save() urlHasError = false @@ -103,6 +103,6 @@ struct AddServerView: View { } #Preview { - AddServerView(authState: AuthStateController(), serverUrlIsValid: .constant(false)) + AddServerView(serverUrlIsValid: .constant(false)) } diff --git a/Jel/Views/SignIn/SignInToServerView.swift b/Jel/Views/SignIn/SignInToServerView.swift index ae8d82d..259e54d 100644 --- a/Jel/Views/SignIn/SignInToServerView.swift +++ b/Jel/Views/SignIn/SignInToServerView.swift @@ -9,17 +9,19 @@ import SwiftUI struct SignInToServerView: View { @EnvironmentObject var jellyfinClient: JellyfinClientController - @ObservedObject var authState: AuthStateController + @StateObject var authState: AuthStateController = AuthStateController.shared @State var username: String = "" @State var password: String = "" @State var isLoading: Bool = false @State var hasError: Bool = false + @State var serverName: String = "" + var body: some View { VStack { - Text("Sign in") + Text("Sign in to \(serverName)") .font(.title) TextField(text: $username) { Text("Username") @@ -60,6 +62,13 @@ struct SignInToServerView: View { .textFieldStyle(.roundedBorder) .textInputAutocapitalization(.never) .disabled(isLoading) + .onAppear { + Task { + if let serverInfo = await jellyfinClient.getPublicServerInfo() { + serverName = serverInfo.serverName ?? "Unknown" + } + } + } } func logInToServer() async { @@ -74,6 +83,7 @@ struct SignInToServerView: View { } } -#Preview { - SignInToServerView(authState: AuthStateController()) -} +// FIXME: Preview broken for this view +//#Preview { +// SignInToServerView() +//} diff --git a/Jel/Views/SignIn/SignInView.swift b/Jel/Views/SignIn/SignInView.swift index c06788d..729b34b 100644 --- a/Jel/Views/SignIn/SignInView.swift +++ b/Jel/Views/SignIn/SignInView.swift @@ -6,17 +6,20 @@ // import SwiftUI +import PulseUI struct SignInView: View { @EnvironmentObject var jellyfinClient: JellyfinClientController - @ObservedObject var authState: AuthStateController + + @StateObject var authState: AuthStateController = AuthStateController.shared @State var serverUrlIsValid: Bool = false + @State var showingConsoleSheet: Bool = false var body: some View { NavigationStack { - AddServerView(authState: authState, serverUrlIsValid: $serverUrlIsValid) + AddServerView(serverUrlIsValid: $serverUrlIsValid) .navigationDestination(isPresented: $serverUrlIsValid) { - SignInToServerView(authState: authState) + SignInToServerView() } } .onAppear { @@ -31,12 +34,12 @@ struct SignInView: View { return } - if await jellyfinClient.isJellyfinServer() { + if await jellyfinClient.getPublicServerInfo() != nil { serverUrlIsValid = true } } } #Preview { - SignInView(authState: AuthStateController()) + SignInView() } |