Add setting current URI after new connection

This commit is contained in:
Ethan Pippin 2021-10-25 12:00:30 -06:00
parent 43090831cb
commit efb751f00f
2 changed files with 14 additions and 5 deletions

View File

@ -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())
}

View File

@ -28,6 +28,7 @@ final class ConnectToServerViewModel: ViewModel {
@Published var discoveredServers: Set<ServerDiscovery.ServerLookupResponse> = []
@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)
}