diff --git a/JellyfinPlayer/Views/ConnectToServerView.swift b/JellyfinPlayer/Views/ConnectToServerView.swift index 25189eaa..5f65ab3a 100644 --- a/JellyfinPlayer/Views/ConnectToServerView.swift +++ b/JellyfinPlayer/Views/ConnectToServerView.swift @@ -100,9 +100,9 @@ struct ConnectToServerView: View { } .alert(item: $viewModel.addServerURIPayload) { _ in Alert(title: Text("Existing Server"), - message: Text("Server \(viewModel.addServerURIPayload?.server.name ?? "") already exists. Add new URI?"), - primaryButton: .default(Text("Existing Server"), action: { - viewModel.addURIToServer(addServerURIPayload: viewModel.addServerURIPayload!) + message: Text("Server \(viewModel.addServerURIPayload?.server.name ?? "") already exists. Add new URL?"), + primaryButton: .default(Text("Add URL"), action: { + viewModel.addURIToServer(addServerURIPayload: viewModel.backAddServerURIPayload!) }), secondaryButton: .cancel()) } diff --git a/Shared/ViewModels/ConnectToServerViewModel.swift b/Shared/ViewModels/ConnectToServerViewModel.swift index ad9ee7e2..fca80514 100644 --- a/Shared/ViewModels/ConnectToServerViewModel.swift +++ b/Shared/ViewModels/ConnectToServerViewModel.swift @@ -28,6 +28,7 @@ final class ConnectToServerViewModel: ViewModel { @Published var discoveredServers: Set = [] @Published var searching = false @Published var addServerURIPayload: AddServerURIPayload? + var backAddServerURIPayload: AddServerURIPayload? private let discovery = ServerDiscovery() @@ -62,6 +63,7 @@ final class ConnectToServerViewModel: ViewModel { switch swiftfinError { case .existingServer(let server): self.addServerURIPayload = AddServerURIPayload(server: server, uri: uri) + self.backAddServerURIPayload = AddServerURIPayload(server: server, uri: uri) default: self.handleAPIRequestError(displayMessage: "Unable to connect to server.", logLevel: .critical, tag: "connectToServer", completion: completion) @@ -99,8 +101,15 @@ final class ConnectToServerViewModel: ViewModel { .sink { completion in self.handleAPIRequestError(displayMessage: "Unable to connect to server.", logLevel: .critical, tag: "connectToServer", completion: completion) - } receiveValue: { _ in - print("Here") + } receiveValue: { server in + SessionManager.main.setServerCurrentURI(server: server, uri: addServerURIPayload.uri) + .sink { completion in + self.handleAPIRequestError(displayMessage: "Unable to connect to server.", logLevel: .critical, tag: "connectToServer", + completion: completion) + } receiveValue: { server in + self.router?.dismissCoordinator() + } + .store(in: &self.cancellables) } .store(in: &cancellables) }