summaryrefslogtreecommitdiff
path: root/Jel/Views/AddServerView.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Jel/Views/AddServerView.swift')
-rw-r--r--Jel/Views/AddServerView.swift109
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())
-}