diff options
Diffstat (limited to 'Jel/Views/AddServerView.swift')
-rw-r--r-- | Jel/Views/AddServerView.swift | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/Jel/Views/AddServerView.swift b/Jel/Views/AddServerView.swift deleted file mode 100644 index beab5e7..0000000 --- a/Jel/Views/AddServerView.swift +++ /dev/null @@ -1,109 +0,0 @@ -// -// AddServerView.swift -// Jel -// -// Created by zerocool on 12/11/23. -// - -import SwiftUI - -struct AddServerView: View { - @ObservedObject var authState: AuthStateController - - @State var serverUrlString: String = "" - @State var urlHasError: Bool = false - @State var currentErrorMessage: String = "" - @State var loading: Bool = false - - @FocusState var serverUrlIsFocused: Bool - - var body: some View { - VStack { - Text("Connect to a server") - .font(.title) - HStack { - - TextField(text: $serverUrlString) { - Text("http://jellyfin.example.com") - .foregroundStyle(.placeholder) - } - .keyboardType(.URL) - .textContentType(.URL) - .textFieldStyle(.roundedBorder) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .focused($serverUrlIsFocused) - .onChange(of: serverUrlIsFocused) { - if serverUrlIsFocused { - urlHasError = false - } - } - .onSubmit { - Task { - await checkServerUrl() - } - } - - - if !loading { - Button(action: { - Task { - await checkServerUrl() - } - }) { - Label("Connect", systemImage: "arrow.right") - .labelStyle(.iconOnly) - } - .buttonStyle(.bordered) - .disabled(urlHasError) - } else { - ProgressView() - .progressViewStyle(.circular) - .padding() - } - } - .padding() - - if urlHasError { - Text(currentErrorMessage) - .font(.callout) - .foregroundStyle(.red) - } - } - } - - func checkServerUrl() async { - loading = true - serverUrlIsFocused = false - if isValidUrl(data: serverUrlString) { - let url = URL(string: serverUrlString)! - if await JellyfinClientController(serverUrl: url).isJellyfinServer() { - authState.serverUrl = url - urlHasError = false - } else { - urlHasError = true - currentErrorMessage = "Server not responding" - } - - } else { - urlHasError = true - currentErrorMessage = "Invalid url" - } - - loading = false - } - - func isValidUrl(data: String) -> Bool { - if let url = URL(string: data) { - if UIApplication.shared.canOpenURL(url) { - return true - } - } - return false - } - -} - -#Preview { - AddServerView(authState: AuthStateController()) -} |