mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 21:33:26 +00:00
Create room: add selectable state for security, add navigation to screen
This commit is contained in:
@@ -18,6 +18,7 @@ import Combine
|
||||
import SwiftUI
|
||||
|
||||
struct InviteUsersScreenCoordinatorParameters {
|
||||
let navigationStackCoordinator: NavigationStackCoordinator?
|
||||
let userSession: UserSessionProtocol
|
||||
let userDiscoveryService: UserDiscoveryServiceProtocol
|
||||
}
|
||||
@@ -47,7 +48,10 @@ final class InviteUsersScreenCoordinator: CoordinatorProtocol {
|
||||
guard let self else { return }
|
||||
switch action {
|
||||
case .close:
|
||||
|
||||
self.actionsSubject.send(.close)
|
||||
case .proceed(let users):
|
||||
self.openCreateRoomScreenWith(users)
|
||||
}
|
||||
}
|
||||
.store(in: &cancellables)
|
||||
@@ -56,4 +60,10 @@ final class InviteUsersScreenCoordinator: CoordinatorProtocol {
|
||||
func toPresentable() -> AnyView {
|
||||
AnyView(InviteUsersScreen(context: viewModel.context))
|
||||
}
|
||||
|
||||
private func openCreateRoomScreenWith(_ users: [UserProfile]) {
|
||||
let paramenters = CreateRoomCoordinatorParameters(userSession: parameters.userSession, selectedUsers: users)
|
||||
let createRoomCoordinator = CreateRoomCoordinator(parameters: paramenters)
|
||||
parameters.navigationStackCoordinator?.push(createRoomCoordinator)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ enum InviteUsersScreenErrorType: Error {
|
||||
|
||||
enum InviteUsersScreenViewModelAction {
|
||||
case close
|
||||
case proceed(users: [UserProfile])
|
||||
}
|
||||
|
||||
struct InviteUsersScreenViewState: BindableState {
|
||||
|
||||
@@ -43,7 +43,7 @@ class InviteUsersScreenViewModel: InviteUsersScreenViewModelType, InviteUsersScr
|
||||
case .close:
|
||||
actionsSubject.send(.close)
|
||||
case .proceed:
|
||||
break
|
||||
actionsSubject.send(.proceed(users: state.selectedUsers))
|
||||
case .tapUser(let user):
|
||||
if state.isUserSelected(user) {
|
||||
deselect(user)
|
||||
|
||||
Reference in New Issue
Block a user