mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-06 12:28:29 +00:00
Knock Requests navigation flows (#3555)
* implemented navigations * better naming for the enum * removed list to banned users navigation * polished the code * avatarURL
This commit is contained in:
@@ -316,10 +316,8 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
||||
case (.roomMembersList, .dismissRoomMembersList):
|
||||
return .roomDetails(isRoot: false)
|
||||
|
||||
case (.room, .presentRoomMemberDetails(userID: let userID)):
|
||||
return .roomMemberDetails(userID: userID, previousState: .room)
|
||||
case (.roomMembersList, .presentRoomMemberDetails(userID: let userID)):
|
||||
return .roomMemberDetails(userID: userID, previousState: .roomMembersList)
|
||||
case (_, .presentRoomMemberDetails(userID: let userID)):
|
||||
return .roomMemberDetails(userID: userID, previousState: fromState)
|
||||
case (.roomMemberDetails(_, let previousState), .dismissRoomMemberDetails):
|
||||
return previousState
|
||||
|
||||
@@ -328,12 +326,10 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
||||
case (.userProfile(_, let previousState), .dismissUserProfile):
|
||||
return previousState
|
||||
|
||||
case (.roomDetails, .presentInviteUsersScreen):
|
||||
return .inviteUsersScreen(fromRoomMembersList: false)
|
||||
case (.roomMembersList, .presentInviteUsersScreen):
|
||||
return .inviteUsersScreen(fromRoomMembersList: true)
|
||||
case (.inviteUsersScreen(let fromRoomMembersList), .dismissInviteUsersScreen):
|
||||
return fromRoomMembersList ? .roomMembersList : .roomDetails(isRoot: false)
|
||||
case (_, .presentInviteUsersScreen):
|
||||
return .inviteUsersScreen(previousState: fromState)
|
||||
case (.inviteUsersScreen(let previousState), .dismissInviteUsersScreen):
|
||||
return previousState
|
||||
|
||||
case (.room, .presentReportContent(let itemID, let senderID)):
|
||||
return .reportContent(itemID: itemID, senderID: senderID)
|
||||
@@ -398,9 +394,6 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
||||
return .rolesAndPermissions
|
||||
case (.rolesAndPermissions, .dismissRolesAndPermissionsScreen):
|
||||
return .roomDetails(isRoot: false)
|
||||
|
||||
case (.roomDetails, .presentRoomMemberDetails(let userID)):
|
||||
return .roomMemberDetails(userID: userID, previousState: fromState)
|
||||
|
||||
case (.room, .presentResolveSendFailure):
|
||||
return .resolveSendFailure
|
||||
@@ -414,10 +407,10 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
||||
case (.presentingChild(_, let previousState), .dismissChildFlow):
|
||||
return previousState
|
||||
|
||||
case (.roomDetails, .presentKnockRequestsListScreen):
|
||||
return .knockRequestsList
|
||||
case (.knockRequestsList, .dismissKnockRequestsListScreen):
|
||||
return .roomDetails(isRoot: false)
|
||||
case (_, .presentKnockRequestsListScreen):
|
||||
return .knockRequestsList(previousState: fromState)
|
||||
case (.knockRequestsList(let previousState), .dismissKnockRequestsListScreen):
|
||||
return previousState
|
||||
|
||||
default:
|
||||
return nil
|
||||
@@ -575,6 +568,10 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
||||
presentKnockRequestsList()
|
||||
case (.knockRequestsList, .dismissKnockRequestsListScreen, .roomDetails):
|
||||
break
|
||||
case (.room, .presentKnockRequestsListScreen, .knockRequestsList):
|
||||
presentKnockRequestsList()
|
||||
case (.knockRequestsList, .dismissKnockRequestsListScreen, .room):
|
||||
break
|
||||
|
||||
// Child flow
|
||||
case (_, .startChildFlow(let roomID, let via, let entryPoint), .presentingChild):
|
||||
@@ -735,6 +732,8 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
||||
stateMachine.tryEvent(.presentPinnedEventsTimeline)
|
||||
case .presentResolveSendFailure(failure: let failure, sendHandle: let sendHandle):
|
||||
stateMachine.tryEvent(.presentResolveSendFailure(failure: failure, sendHandle: sendHandle))
|
||||
case .presentKnockRequestsList:
|
||||
stateMachine.tryEvent(.presentKnockRequestsListScreen)
|
||||
}
|
||||
}
|
||||
.store(in: &cancellables)
|
||||
@@ -899,11 +898,6 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
||||
let parameters = KnockRequestsListScreenCoordinatorParameters(roomProxy: roomProxy, mediaProvider: userSession.mediaProvider)
|
||||
let coordinator = KnockRequestsListScreenCoordinator(parameters: parameters)
|
||||
|
||||
coordinator.actionsPublisher
|
||||
.sink { [weak self] _ in
|
||||
}
|
||||
.store(in: &cancellables)
|
||||
|
||||
navigationStackCoordinator.push(coordinator) { [weak self] in
|
||||
self?.stateMachine.tryEvent(.dismissKnockRequestsListScreen)
|
||||
}
|
||||
@@ -1559,7 +1553,7 @@ private extension RoomFlowCoordinator {
|
||||
case roomMembersList
|
||||
case roomMemberDetails(userID: String, previousState: State)
|
||||
case userProfile(userID: String, previousState: State)
|
||||
case inviteUsersScreen(fromRoomMembersList: Bool)
|
||||
case inviteUsersScreen(previousState: State)
|
||||
case mediaUploadPicker(source: MediaPickerScreenSource)
|
||||
case mediaUploadPreview(fileURL: URL)
|
||||
case emojiPicker(itemID: TimelineItemIdentifier, selectedEmojis: Set<String>)
|
||||
@@ -1572,7 +1566,7 @@ private extension RoomFlowCoordinator {
|
||||
case rolesAndPermissions
|
||||
case pinnedEventsTimeline(previousState: PinnedEventsTimelineSource)
|
||||
case resolveSendFailure
|
||||
case knockRequestsList
|
||||
case knockRequestsList(previousState: State)
|
||||
|
||||
/// A child flow is in progress.
|
||||
case presentingChild(childRoomID: String, previousState: State)
|
||||
|
||||
Reference in New Issue
Block a user