persisting create room parameter in volatile memory

This commit is contained in:
Flavio Alescio
2023-05-03 16:26:35 +02:00
committed by Flescio
parent 4eb8906b6b
commit 7ad302e5e7
6 changed files with 65 additions and 17 deletions
@@ -21,6 +21,7 @@ struct InviteUsersScreenCoordinatorParameters {
let navigationStackCoordinator: NavigationStackCoordinator?
let userSession: UserSessionProtocol
let userDiscoveryService: UserDiscoveryServiceProtocol
let createRoomParameters: CreateRoomVolatileParameters?
}
enum InviteUsersScreenCoordinatorAction {
@@ -62,8 +63,19 @@ final class InviteUsersScreenCoordinator: CoordinatorProtocol {
}
private func openCreateRoomScreenWith(_ users: [UserProfile]) {
let paramenters = CreateRoomCoordinatorParameters(userSession: parameters.userSession, selectedUsers: users)
let createRoomCoordinator = CreateRoomCoordinator(parameters: paramenters)
parameters.navigationStackCoordinator?.push(createRoomCoordinator)
guard let createRoomParameters = parameters.createRoomParameters else { return }
createRoomParameters.selectedUsers = users
let paramenters = CreateRoomCoordinatorParameters(userSession: parameters.userSession, createRoomParameters: createRoomParameters)
let coordinator = CreateRoomCoordinator(parameters: paramenters)
coordinator.actions.sink { [weak self] result in
switch result {
case .deselectUser(let user):
self?.viewModel.context.send(viewAction: .deselectUser(user))
default:
break
}
}
.store(in: &cancellables)
parameters.navigationStackCoordinator?.push(coordinator)
}
}